Sign in
abstract agent · partners · 1 process · plugin 1.0.0

Partner scout

partner-scout v1

Finds candidate partners against a gap that has already been written down, and against the test that says when the gap is closed. Reads the partners, customers and suppliers already on the books before it reads the market, so a partner we already have is not missed in favour of a new name. Reads what each candidate sells, to whom and where, and scores every survivor against the closing test with the evidence line behind each score and the date that evidence was read. The search is answerable to the written gap, which is what keeps a list of interesting companies from becoming a list of candidates.

The abstract agent

What it is granted, and what it hands to a person

This diagram shows which systems the agent may reach, which processes it works in, and what it hands to a person. Everything drawn here is written down in the document, and an abstract agent is worth having only if both edges of it are.

WORKS INref/prt/find-a-partnerGRANTEDthe CRMread — the partners, customers and suppliers amarket sourcesread — cap: reads per day, set by the adoptingthe partner recordwrite — candidates, scores, refusals and silenthe outreach channelwrite — first contact goes out on the approachthe contact recordwrite — who replied, who declined, who never aTHE ABSTRACT AGENTpartner-scoutv1finds candidate partners…HANDS TO A PERSONtoo few candidates left…to the partner lead, with…a candidate that wants a…to the partner lead as a…silence from the whole…to the partner lead with the…a candidate that asks for…to the partner lead, because…MUST FOLLOWcollect-and-reportassessment

Works alone for most of its activities. Runs collect-and-report over the known book and over the market search, and assessment when it scores candidates against the closing test. Takes the reading of each candidate from the researcher agent and the removals from the supplier-check agent, hands its scored list to the partner-manager agent for the cut, and hands the confirmed short list on to the partner-qualifier agent.

The plugin

What is in the package

5 skills and the systems they need, written to version 1.1.0 of the Agent Plugins standard. Nothing in these files names a product. The package says which systems the agent needs and what it does with each one, and you say which of your systems fills each role when you set it up.

partner-scout · 10 files · 1.0.0
com.agentcatalog.agent/NOT.mdWhat the agent does not do, and when it asks a person.
# Where this abstract agent stops

Does not write the gap or the test for closing it, and does not cut the
short list or confirm it. Does not prove what a candidate can actually
deliver, which is the partner-qualifier agent. Does not rule on overlap
with our own sellers, which is the sales leader, and does not make first
contact until that ruling exists.

## What always goes to a person

- too few candidates left after screening - to the partner lead, with
  the removals and the reason for each, rather than widening the bounds
  quietly to fill a quota
- a candidate that wants a different arrangement than the gap calls for
  - to the partner lead as a separate idea, while the run keeps scoring
  against the gap it was opened for
- silence from the whole short list - to the partner lead with the dated
  replies and refusals, rather than approaching the same names again in
  warmer language
- a candidate that asks for anything the confidentiality rule covers -
  to the partner lead, because nothing covered is said before an
  agreement covers it
com.agentcatalog.agent/RECORDS.mdThe records the agent must leave behind.
# The records this abstract agent must leave

This is the contract. An agent implementing `partner-scout` leaves the
following behind, on every run.

The search bounds it was given, including the companies it may not
touch. Every candidate with the source it came from and the date it was
read. Every removal with the reason it was removed. Every score against
the closing test with the evidence line behind it and the date that
evidence was read, so a second person scoring the same candidate can get
the same answer or say where they differ. The approach as sent, the
date, and what each candidate was told. The replies, the refusals and
the silences, each dated.

An agent that leaves less than this does not implement `partner-scout`,
whatever else it does well.
com.agentcatalog.agent/SERVERS.mdThe systems the agent needs, by role rather than by product.
# The systems this abstract agent needs

Five systems, named by role rather than by product. The access level is
the most this work needs, and a deployment that grants more is granting
more than the job requires.

| Role | Access | What the access is for |
|---|---|---|
| the CRM | read | The partners, customers and suppliers already on the books are read before the market is. |
| market sources | read | Cap: reads per day, set by the adopting organization. |
| the partner record | write | Candidates, scores, refusals and silences are kept where the next search will read them. |
| the outreach channel | write | First contact goes out on the approach a person set, and only after the conflict check. |
| the contact record | write | Who replied, who declined, who never answered, and the reason each one gave. |

Whoever builds an agent from this plugin writes the `mcp.json` that
points these roles at their own systems. Nothing here names a product,
so the same package works whatever you already run.
plugin.jsonThe manifest. It lists the skills and the systems the agent needs.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
  "name": "partner-scout",
  "version": "1.0.0",
  "description": "The partner-scout abstract agent. Finds candidate partners against a gap that has already been written down, and against the test that says when the gap is closed.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/partner-scout",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "partners",
    "find-a-partner",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "partner-scout",
      "agentVersion": 1,
      "department": "partners",
      "abstract": true,
      "works": "Works alone for most of its activities. Runs collect-and-report over the known book and over the market search, and assessment when it scores candidates against the closing test. Takes the reading of each candidate from the researcher agent and the removals from the supplier-check agent, hands its scored list to the partner-manager agent for the cut, and hands the confirmed short list on to the partner-qualifier agent.",
      "servers": [
        {
          "name": "the CRM",
          "role": "crm",
          "access": "read",
          "needs": "The partners, customers and suppliers already on the books are read before the market is."
        },
        {
          "name": "market sources",
          "role": "market-sources",
          "access": "read",
          "needs": "Cap: reads per day, set by the adopting organization."
        },
        {
          "name": "the partner record",
          "role": "partner-record",
          "access": "write",
          "needs": "Candidates, scores, refusals and silences are kept where the next search will read them."
        },
        {
          "name": "the outreach channel",
          "role": "outreach-channel",
          "access": "write",
          "needs": "First contact goes out on the approach a person set, and only after the conflict check."
        },
        {
          "name": "the contact record",
          "role": "contact-record",
          "access": "write",
          "needs": "Who replied, who declined, who never answered, and the reason each one gave."
        }
      ],
      "records": [
        "The search bounds it was given, including the companies it may not touch.",
        "Every candidate with the source it came from and the date it was read.",
        "Every removal with the reason it was removed.",
        "Every score against the closing test with the evidence line behind it and the date that evidence was read, so a second person scoring the same candidate can get the same answer or say where they differ.",
        "The approach as sent, the date, and what each candidate was told.",
        "The replies, the refusals and the silences, each dated."
      ],
      "escalates": [
        "too few candidates left after screening - to the partner lead, with the removals and the reason for each, rather than widening the bounds quietly to fill a quota",
        "a candidate that wants a different arrangement than the gap calls for - to the partner lead as a separate idea, while the run keeps scoring against the gap it was opened for",
        "silence from the whole short list - to the partner lead with the dated replies and refusals, rather than approaching the same names again in warmer language",
        "a candidate that asks for anything the confidentiality rule covers - to the partner lead, because nothing covered is said before an agreement covers it"
      ],
      "not": [
        "Does not write the gap or the test for closing it, and does not cut the short list or confirm it.",
        "Does not prove what a candidate can actually deliver, which is the partner-qualifier agent.",
        "Does not rule on overlap with our own sellers, which is the sales leader, and does not make first contact until that ruling exists."
      ],
      "processes": [
        {
          "process": "ref/prt/find-a-partner",
          "activities": [
            "Set the Search Bounds",
            "Look at Who We Already Know",
            "Search the Market",
            "Read Each Candidate",
            "Screen Out the Impossible",
            "Score the Candidates",
            "Make First Contact",
            "Record Interest and Refusal"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# partner-scout

This is an abstract agent, published as an Agent Plugin. An abstract
agent is a job description rather than an implementation. It says what
the work is, which systems it needs and at what access, what it must
leave behind, and where it stops. Any agent that leaves the records can
implement it.

The plugin carries five skills, no `mcp.json`, and everything the
abstract agent owes under `com.agentcatalog.agent/`.

## Why there is no mcp.json

A conformant server entry in `mcp.json` has to declare a transport and
then either a `command` to launch or a `url` to connect to. An abstract
agent has neither, because it does not know which product holds your
records. Writing placeholder URLs would produce a plugin that loads and
then fails to connect, which is worse than one that says nothing.

Section 6.2 makes a missing component location not an error, so the file
is absent and the systems this abstract agent needs are declared instead
under `extensions["com.agentcatalog.agent"].servers`, as a role, an
access level and what the access is for. Whoever builds an agent from
this plugin writes the `mcp.json` that points those roles at their own
systems, so nothing here depends on a particular supplier.

## Why the obligations are in an extension

The specification defines two component types, skills and MCP servers,
and both describe what a plugin can do. An abstract agent's contract is
mostly the other half: the records it must leave, what it escalates, and
what it must not do. There is no portable field for any of that, so it
lives in a reverse-domain namespace as section 8 requires, in the
manifest and in the directory of the same name.

## Where this abstract agent is used

`ref/prt/find-a-partner`. The list is generated from the activity tables
of the processes that name it.

https://agentcatalog.com/abstract-agents/partner-scout
skills/approach-a-candidate-and-record-the-answer/SKILL.md"Makes first contact on the approach a person set, then keeps what came back: who replied, who declined, who never answered, and the reason each one gave. Use it when running `ref/prt/find-a-partner`."
---
name: approach-a-candidate-and-record-the-answer
description: "Makes first contact on the approach a person set, then keeps what came back: who replied, who declined, who never answered, and the reason each one gave. Use it when running `ref/prt/find-a-partner`."
license: CC-BY-4.0
metadata:
  agent: partner-scout
  agent-version: "1"
---

# Approach a candidate and record the answer

## What it does

Makes first contact on the approach a person set, then keeps what came
back: who replied, who declined, who never answered, and the reason each
one gave.

## Where it happens

The agent does this in two activities across one reference process. Each
one names the activity as that process words it.

- **Make First Contact**
  - `ref/prt/find-a-partner`, activity 13 -
    [Find a Partner](../../../../processes/partners/find-a-partner.md)
- **Record Interest and Refusal**
  - `ref/prt/find-a-partner`, activity 14 -
    [Find a Partner](../../../../processes/partners/find-a-partner.md)

## What to record

The search bounds it was given, including the companies it may not
touch. Every candidate with the source it came from and the date it was
read. Every removal with the reason it was removed. Every score against
the closing test with the evidence line behind it and the date that
evidence was read, so a second person scoring the same candidate can get
the same answer or say where they differ. The approach as sent, the
date, and what each candidate was told. The replies, the refusals and
the silences, each dated.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/look-for-candidates/SKILL.mdLooks for companies that could close the gap. Use it when running `ref/prt/find-a-partner`.
---
name: look-for-candidates
description: Looks for companies that could close the gap. Use it when running `ref/prt/find-a-partner`.
license: CC-BY-4.0
metadata:
  agent: partner-scout
  agent-version: "1"
---

# Look for candidates

## What it does

Looks for companies that could close the gap. Reads the partners,
customers and suppliers already on the books first and goes out to the
market only after that, so a partner we already have is not missed in
favour of a new name.

## Where it happens

The agent does this in two activities across one reference process. Each
one names the activity as that process words it.

- **Look at Who We Already Know**
  - `ref/prt/find-a-partner`, activity 6 -
    [Find a Partner](../../../../processes/partners/find-a-partner.md)
- **Search the Market**
  - `ref/prt/find-a-partner`, activity 7 -
    [Find a Partner](../../../../processes/partners/find-a-partner.md)

## What to record

The search bounds it was given, including the companies it may not
touch. Every candidate with the source it came from and the date it was
read. Every removal with the reason it was removed. Every score against
the closing test with the evidence line behind it and the date that
evidence was read, so a second person scoring the same candidate can get
the same answer or say where they differ. The approach as sent, the
date, and what each candidate was told. The replies, the refusals and
the silences, each dated.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/read-and-screen-each-candidate/SKILL.mdReads what each candidate sells, to whom and where, then takes out the ones that cannot work and writes the reason against every removal. Use it when running `ref/prt/find-a-partner`.
---
name: read-and-screen-each-candidate
description: Reads what each candidate sells, to whom and where, then takes out the ones that cannot work and writes the reason against every removal. Use it when running `ref/prt/find-a-partner`.
license: CC-BY-4.0
metadata:
  agent: partner-scout
  agent-version: "1"
---

# Read and screen each candidate

## What it does

Reads what each candidate sells, to whom and where, then takes out the
ones that cannot work and writes the reason against every removal.

## Where it happens

The agent does this in two activities across one reference process. Each
one names the activity as that process words it.

- **Read Each Candidate**
  - `ref/prt/find-a-partner`, activity 8 -
    [Find a Partner](../../../../processes/partners/find-a-partner.md)
- **Screen Out the Impossible**
  - `ref/prt/find-a-partner`, activity 9 -
    [Find a Partner](../../../../processes/partners/find-a-partner.md)

## What to record

The search bounds it was given, including the companies it may not
touch. Every candidate with the source it came from and the date it was
read. Every removal with the reason it was removed. Every score against
the closing test with the evidence line behind it and the date that
evidence was read, so a second person scoring the same candidate can get
the same answer or say where they differ. The approach as sent, the
date, and what each candidate was told. The replies, the refusals and
the silences, each dated.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/score-the-survivors-against-the-closing-test/SKILL.mdScores every candidate that survives screening against the test the gap set, with the evidence line behind each score and the date that evidence was read. Use it when running `ref/prt/find-a-partner`.
---
name: score-the-survivors-against-the-closing-test
description: Scores every candidate that survives screening against the test the gap set, with the evidence line behind each score and the date that evidence was read. Use it when running `ref/prt/find-a-partner`.
license: CC-BY-4.0
metadata:
  agent: partner-scout
  agent-version: "1"
---

# Score the survivors against the closing test

## What it does

Scores every candidate that survives screening against the test the gap
set, with the evidence line behind each score and the date that evidence
was read.

## Where it happens

The agent does this in one activity across one reference process. Each
one names the activity as that process words it.

- **Score the Candidates**
  - `ref/prt/find-a-partner`, activity 10 -
    [Find a Partner](../../../../processes/partners/find-a-partner.md)

## What to record

The search bounds it was given, including the companies it may not
touch. Every candidate with the source it came from and the date it was
read. Every removal with the reason it was removed. Every score against
the closing test with the evidence line behind it and the date that
evidence was read, so a second person scoring the same candidate can get
the same answer or say where they differ. The approach as sent, the
date, and what each candidate was told. The replies, the refusals and
the silences, each dated.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/set-the-bounds-of-a-search/SKILL.mdReads the written gap and the test that says when the gap is closed, and turns them into the bounds the search runs inside, including the companies it may not touch. Use it when running `ref/prt/find-a-partner`.
---
name: set-the-bounds-of-a-search
description: Reads the written gap and the test that says when the gap is closed, and turns them into the bounds the search runs inside, including the companies it may not touch. Use it when running `ref/prt/find-a-partner`.
license: CC-BY-4.0
metadata:
  agent: partner-scout
  agent-version: "1"
---

# Set the bounds of a search

## What it does

Reads the written gap and the test that says when the gap is closed, and
turns them into the bounds the search runs inside, including the
companies it may not touch.

## Where it happens

The agent does this in one activity across one reference process. Each
one names the activity as that process words it.

- **Set the Search Bounds**
  - `ref/prt/find-a-partner`, activity 5 -
    [Find a Partner](../../../../processes/partners/find-a-partner.md)

## What to record

The search bounds it was given, including the companies it may not
touch. Every candidate with the source it came from and the date it was
read. Every removal with the reason it was removed. Every score against
the closing test with the evidence line behind it and the date that
evidence was read, so a second person scoring the same candidate can get
the same answer or say where they differ. The approach as sent, the
date, and what each candidate was told. The replies, the refusals and
the silences, each dated.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
mcp.jsonNot in the package.

Every server entry in an mcp.json needs either a command to run or a url to connect to, and the package cannot know either of those until somebody points it at their own systems. So the file is left out, the systems the agent needs are named by role in plugin.json, and you write the mcp.json when you set it up.

Setting it up

Point it at your systems

To run an agent built from this package, write an mcp.json that says which of your systems fills each role. The package names these 5 roles, and the access level beside each one is the most the work needs.

crm · readmarket-sources · readpartner-record · writeoutreach-channel · writecontact-record · write
mcp.json You write this file. It is not part of the package.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
  "mcpServers": {
    "crm": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm"
    },
    "market-sources": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/market-sources"
    },
    "partner-record": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/partner-record"
    },
    "outreach-channel": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/outreach-channel"
    },
    "contact-record": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/contact-record"
    }
  }
}

The hostnames here are a placeholder for your own. Whichever product holds each of these systems, the agent you build is yours and nobody else has to be involved in running it.

Where it works

One process, 8 activities

The highlighted activities are the ones this abstract agent does. The other activities in each process belong to other abstract agents or to people.

Find a Partnerref/prt/find-a-partner · 16 activities
12345678910111213141516

Set the Search Bounds · Look at Who We Already Know · Search the Market · Read Each Candidate · Screen Out the Impossible · Score the Candidates · Make First Contact · Record Interest and Refusal

The records it leaves

What it writes down

The search bounds it was given, including the companies it may not touch. Every candidate with the source it came from and the date it was read. Every removal with the reason it was removed. Every score against the closing test with the evidence line behind it and the date that evidence was read, so a second person scoring the same candidate can get the same answer or say where they differ. The approach as sent, the date, and what each candidate was told. The replies, the refusals and the silences, each dated.

Where it stops

What it will not do

Does not write the gap or the test for closing it, and does not cut the short list or confirm it. Does not prove what a candidate can actually deliver, which is the partner-qualifier agent. Does not rule on overlap with our own sellers, which is the sales leader, and does not make first contact until that ruling exists.

These limits are written into the job on purpose, so that everyone adopting the process knows which decisions stay with a person.

Agents built from this plugin

Who has built one, and how far each one got

Nobody has built one yet. The catalog says so rather than leaving the section off, because an empty list is a fact about the document.

declare it implements: partner-scout v1 One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
A guess, not a claim

The closest things in the catalog, by description

Nobody above has claimed any of these. This is the nearest match by wording between the job written above and what publishers wrote about their own listings, closest first, and wording is not evidence: some of these will be wrong, and a job with nothing suitable still gets whatever was nearest. The publishers have never heard of this abstract agent and have promised nothing about it. What a claim looks like is in the table above, and it is signed.

Might do the job

Things that could be the worker: an agent, a packaged product, a plugin.

  • The Website Specification — A2A agent Agent · specification.website Read-only A2A agent that answers natural-language questions about The Website Specification and returns matching topics with status, canonical URL,…
Might be reached for

Not workers. These are capability that whatever does the job would use, which is a different relationship and kept in its own column for that reason.

  • gapbase-mcp MCP server · thevibepreneur.github.io · run it yourself · mirrored from the MCP registry Search 474 validated startup gaps by industry, role, or keyword. Works offline.
  • patent-gap MCP server · dropwatchhq.com · hosted · mirrored from the MCP registry Off-patent opportunity feed: expiring design patents, recall + supplier screened, for sellers.
  • Scout Intel MCP — The Google for AI Agents MCP server · omniologynow-rgb.github.io · hosted · run it yourself · mirrored from the MCP registry The Google for AI agents — company intel, competitor tracking, market research via MCP. JSON output