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

Reference finder

reference-finder v1

Finds an existing customer who matches and has already agreed to speak, holds the cool-down clock so nobody is worn out, and sets the conversation up. Writes down what the prospect actually has to hear before anybody is searched for, then searches only the customers whose written agreement is current. Checks when each was last asked, shortlists a few names with a reason for each, and briefs both sides on what may be discussed and what is off limits. Records the ask, thanks the reference, and resets the clock so the same handful of customers is not asked again next month.

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/sls/provide-a-referenceGRANTEDthe reference registerwrite — the agreements, the asks and the clockthe CRMwritethe calendar and the meeting toolwritethe support history, the renewal record and the contract storeread — to check an ask is welcome before it isTHE ABSTRACT AGENTreference-finderv1finds an existing…HANDS TO A PERSONevery matching customer…to the account owner, with…an account with an open…not asked at all, and the…bounds so narrow that…to the account owner before…a prospect who asks for…a person decidesan ask that was never…a person decidesMUST FOLLOWcollect-and-reportbriefingassessmentdebrief

Convenes briefing twice, once for the reference customer and once for the prospect, and the debrief that feeds back what the prospect heard. Runs collect-and-report over the reference pool and over how much load each customer is carrying, and assessment on account health. Takes the request from the account owner, takes the health reading from the researcher agent and the customer success role, works with the legal reviewer who sets the bounds, and hands the feedback to the analytics 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.

reference-finder · 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 make the ask itself; the person who owns the relationship asks,
and a no ends it for this opportunity. Does not agree what may be said,
which the legal reviewer and the customer settle, and does not add to it
during the call. Does not hold the conversation, answer for the
reference customer, or record the call unless both customers have agreed
in writing.

## What always goes to a person

- every matching customer inside cool-down - to the account owner, with
  the choice to wait or go without, and no customer asked early
- an account with an open dispute, a live support crisis or renewal risk
  - not asked at all, and the account owner is told why
- bounds so narrow that nothing useful may be discussed - to the account
  owner before the conversation is set up
- a prospect who asks for something out of bounds during the call
- an ask that was never recorded, because an unrecorded ask leaves the
  clock unreset and the same customer exposed again
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 `reference-finder` leaves
the following behind, on every run.

What the prospect must hear, written down before the search: the
industry, the size, the deployment shape and the specific worry. The
candidates found, each with the match reason and the date their written
agreement was last current. Each candidate's last ask date and count for
the period. The health check and what it ruled out. The ranked
shortlist, with a reason per name. The ask, who made it, and the answer,
with a no recorded as a no and no reason demanded. The agreed bounds on
numbers, names, terms and dates. Both briefings. The confirmed time and
how both sides joined. The thanks, timed, written against the customer's
record. The reset clock, naming the date the customer comes back on the
available list and the count for the period.

An agent that leaves less than this does not implement
`reference-finder`, 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

Four 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 reference register | write | The agreements, the asks and the clock live there. |
| the CRM | write |  |
| the calendar and the meeting tool | write |  |
| the support history, the renewal record and the contract store | read | To check an ask is welcome before it is made. |

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": "reference-finder",
  "version": "1.0.0",
  "description": "The reference-finder abstract agent. Finds an existing customer who matches and has already agreed to speak, holds the cool-down clock so nobody is worn out, and sets the conversation up.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/reference-finder",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "sales",
    "provide-a-reference",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "reference-finder",
      "agentVersion": 1,
      "department": "sales",
      "abstract": true,
      "works": "Convenes briefing twice, once for the reference customer and once for the prospect, and the debrief that feeds back what the prospect heard. Runs collect-and-report over the reference pool and over how much load each customer is carrying, and assessment on account health. Takes the request from the account owner, takes the health reading from the researcher agent and the customer success role, works with the legal reviewer who sets the bounds, and hands the feedback to the analytics agent.",
      "servers": [
        {
          "name": "the reference register",
          "role": "reference-register",
          "access": "write",
          "needs": "The agreements, the asks and the clock live there."
        },
        {
          "name": "the CRM",
          "role": "crm",
          "access": "write"
        },
        {
          "name": "the calendar and the meeting tool",
          "role": "calendar-and-the-meeting-tool",
          "access": "write"
        },
        {
          "name": "the support history, the renewal record and the contract store",
          "role": "support-history-the-renewal-record-and-the-contract-store",
          "access": "read",
          "needs": "To check an ask is welcome before it is made."
        }
      ],
      "records": [
        "What the prospect must hear, written down before the search: the industry, the size, the deployment shape and the specific worry.",
        "The candidates found, each with the match reason and the date their written agreement was last current.",
        "Each candidate's last ask date and count for the period.",
        "The health check and what it ruled out.",
        "The ranked shortlist, with a reason per name.",
        "The ask, who made it, and the answer, with a no recorded as a no and no reason demanded.",
        "The agreed bounds on numbers, names, terms and dates.",
        "Both briefings.",
        "The confirmed time and how both sides joined.",
        "The thanks, timed, written against the customer's record.",
        "The reset clock, naming the date the customer comes back on the available list and the count for the period."
      ],
      "escalates": [
        "every matching customer inside cool-down - to the account owner, with the choice to wait or go without, and no customer asked early",
        "an account with an open dispute, a live support crisis or renewal risk - not asked at all, and the account owner is told why",
        "bounds so narrow that nothing useful may be discussed - to the account owner before the conversation is set up",
        "a prospect who asks for something out of bounds during the call",
        "an ask that was never recorded, because an unrecorded ask leaves the clock unreset and the same customer exposed again"
      ],
      "not": [
        "Does not make the ask itself; the person who owns the relationship asks, and a no ends it for this opportunity.",
        "Does not agree what may be said, which the legal reviewer and the customer settle, and does not add to it during the call.",
        "Does not hold the conversation, answer for the reference customer, or record the call unless both customers have agreed in writing."
      ],
      "processes": [
        {
          "process": "ref/sls/provide-a-reference",
          "activities": [
            "Take in the Reference Request",
            "Say What the Prospect Must Hear",
            "Search the Reference Pool",
            "Check When Each Was Last Asked",
            "Shortlist the Candidates",
            "Ask the Customer",
            "Brief the Reference",
            "Brief the Prospect",
            "Set the Conversation Up",
            "Thank the Reference",
            "Reset the Cool-Down Clock",
            "Feed Back What the Prospect Heard"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# reference-finder

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/sls/provide-a-reference`. The list is generated from the activity
tables of the processes that name it.

https://agentcatalog.com/abstract-agents/reference-finder
skills/brief-both-sides-and-set-the-conversation-up/SKILL.mdTells the reference customer what will be asked and what is off limits, tells the prospect the same bounds, and books the time and the way both sides join. Use it when running `ref/sls/provide-a-reference`.
---
name: brief-both-sides-and-set-the-conversation-up
description: Tells the reference customer what will be asked and what is off limits, tells the prospect the same bounds, and books the time and the way both sides join. Use it when running `ref/sls/provide-a-reference`.
license: CC-BY-4.0
metadata:
  agent: reference-finder
  agent-version: "1"
---

# Brief both sides and set the conversation up

## What it does

Tells the reference customer what will be asked and what is off limits,
tells the prospect the same bounds, and books the time and the way both
sides join.

## Where it happens

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

- **Brief the Prospect**
  - `ref/sls/provide-a-reference`, activity 10 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)
- **Brief the Reference**
  - `ref/sls/provide-a-reference`, activity 9 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)
- **Set the Conversation Up**
  - `ref/sls/provide-a-reference`, activity 11 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)

## What to record

What the prospect must hear, written down before the search: the
industry, the size, the deployment shape and the specific worry. The
candidates found, each with the match reason and the date their written
agreement was last current. Each candidate's last ask date and count for
the period. The health check and what it ruled out. The ranked
shortlist, with a reason per name. The ask, who made it, and the answer,
with a no recorded as a no and no reason demanded. The agreed bounds on
numbers, names, terms and dates. Both briefings. The confirmed time and
how both sides joined. The thanks, timed, written against the customer's
record. The reset clock, naming the date the customer comes back on the
available list and the count for the period.

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/close-an-ask-out/SKILL.mdThanks the customer against their own record, puts them back on the clock with the date they return to the available list, and feeds back what the prospect took from the conversation. Use it when running `ref/sls/provide-a-reference`.
---
name: close-an-ask-out
description: Thanks the customer against their own record, puts them back on the clock with the date they return to the available list, and feeds back what the prospect took from the conversation. Use it when running `ref/sls/provide-a-reference`.
license: CC-BY-4.0
metadata:
  agent: reference-finder
  agent-version: "1"
---

# Close an ask out

## What it does

Thanks the customer against their own record, puts them back on the
clock with the date they return to the available list, and feeds back
what the prospect took from the conversation.

## Where it happens

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

- **Feed Back What the Prospect Heard**
  - `ref/sls/provide-a-reference`, activity 15 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)
- **Reset the Cool-Down Clock**
  - `ref/sls/provide-a-reference`, activity 14 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)
- **Thank the Reference**
  - `ref/sls/provide-a-reference`, activity 13 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)

## What to record

What the prospect must hear, written down before the search: the
industry, the size, the deployment shape and the specific worry. The
candidates found, each with the match reason and the date their written
agreement was last current. Each candidate's last ask date and count for
the period. The health check and what it ruled out. The ranked
shortlist, with a reason per name. The ask, who made it, and the answer,
with a no recorded as a no and no reason demanded. The agreed bounds on
numbers, names, terms and dates. Both briefings. The confirmed time and
how both sides joined. The thanks, timed, written against the customer's
record. The reset clock, naming the date the customer comes back on the
available list and the count for the period.

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/find-customers-who-match-and-are-free-to-ask/SKILL.mdSearches only the customers whose written agreement to speak is current, checks the cool-down clock on each one, and comes back with a short ranked list carrying a match reason for every name. Use it when running `ref/sls/provide-a-reference`.
---
name: find-customers-who-match-and-are-free-to-ask
description: Searches only the customers whose written agreement to speak is current, checks the cool-down clock on each one, and comes back with a short ranked list carrying a match reason for every name. Use it when running `ref/sls/provide-a-reference`.
license: CC-BY-4.0
metadata:
  agent: reference-finder
  agent-version: "1"
---

# Find customers who match and are free to ask

## What it does

Searches only the customers whose written agreement to speak is current,
checks the cool-down clock on each one, and comes back with a short
ranked list carrying a match reason for every name.

## Where it happens

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

- **Check When Each Was Last Asked**
  - `ref/sls/provide-a-reference`, activity 4 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)
- **Search the Reference Pool**
  - `ref/sls/provide-a-reference`, activity 3 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)
- **Shortlist the Candidates**
  - `ref/sls/provide-a-reference`, activity 6 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)

## What to record

What the prospect must hear, written down before the search: the
industry, the size, the deployment shape and the specific worry. The
candidates found, each with the match reason and the date their written
agreement was last current. Each candidate's last ask date and count for
the period. The health check and what it ruled out. The ranked
shortlist, with a reason per name. The ask, who made it, and the answer,
with a no recorded as a no and no reason demanded. The agreed bounds on
numbers, names, terms and dates. Both briefings. The confirmed time and
how both sides joined. The thanks, timed, written against the customer's
record. The reset clock, naming the date the customer comes back on the
available list and the count for the period.

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/put-the-ask-to-the-customer/SKILL.mdPuts the ask to a shortlisted customer through the person who owns that relationship, and records the answer. Use it when running `ref/sls/provide-a-reference`.
---
name: put-the-ask-to-the-customer
description: Puts the ask to a shortlisted customer through the person who owns that relationship, and records the answer. Use it when running `ref/sls/provide-a-reference`.
license: CC-BY-4.0
metadata:
  agent: reference-finder
  agent-version: "1"
---

# Put the ask to the customer

## What it does

Puts the ask to a shortlisted customer through the person who owns that
relationship, and records the answer. A no is recorded as a no, and no
reason is demanded for it.

## Where it happens

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

- **Ask the Customer**
  - `ref/sls/provide-a-reference`, activity 7 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)

## What to record

What the prospect must hear, written down before the search: the
industry, the size, the deployment shape and the specific worry. The
candidates found, each with the match reason and the date their written
agreement was last current. Each candidate's last ask date and count for
the period. The health check and what it ruled out. The ranked
shortlist, with a reason per name. The ask, who made it, and the answer,
with a no recorded as a no and no reason demanded. The agreed bounds on
numbers, names, terms and dates. Both briefings. The confirmed time and
how both sides joined. The thanks, timed, written against the customer's
record. The reset clock, naming the date the customer comes back on the
available list and the count for the period.

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/take-in-a-reference-request/SKILL.md"Reads the request that starts a run: who is asking and what the deal turns on. Use it when running `ref/sls/provide-a-reference`."
---
name: take-in-a-reference-request
description: "Reads the request that starts a run: who is asking and what the deal turns on. Use it when running `ref/sls/provide-a-reference`."
license: CC-BY-4.0
metadata:
  agent: reference-finder
  agent-version: "1"
---

# Take in a reference request

## What it does

Reads the request that starts a run: who is asking and what the deal
turns on. What the prospect actually has to hear is written down before
anybody is searched for, in terms of the industry, the size, the
deployment shape and the specific worry.

## Where it happens

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

- **Say What the Prospect Must Hear**
  - `ref/sls/provide-a-reference`, activity 2 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)
- **Take in the Reference Request**
  - `ref/sls/provide-a-reference`, activity 1 -
    [Provide a Reference](../../../../processes/sales/provide-a-reference.md)

## What to record

What the prospect must hear, written down before the search: the
industry, the size, the deployment shape and the specific worry. The
candidates found, each with the match reason and the date their written
agreement was last current. Each candidate's last ask date and count for
the period. The health check and what it ruled out. The ranked
shortlist, with a reason per name. The ask, who made it, and the answer,
with a no recorded as a no and no reason demanded. The agreed bounds on
numbers, names, terms and dates. Both briefings. The confirmed time and
how both sides joined. The thanks, timed, written against the customer's
record. The reset clock, naming the date the customer comes back on the
available list and the count for the period.

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 4 roles, and the access level beside each one is the most the work needs.

reference-register · writecrm · writecalendar-and-the-meeting-tool · writesupport-history-the-renewal-record-and-the-contract-store · read
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": {
    "reference-register": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/reference-register"
    },
    "crm": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm"
    },
    "calendar-and-the-meeting-tool": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/calendar-and-the-meeting-tool"
    },
    "support-history-the-renewal-record-and-the-contract-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/support-history-the-renewal-record-and-the-contract-store"
    }
  }
}

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, 12 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.

Provide a Referenceref/sls/provide-a-reference · 15 activities
123456789101112131415

Take in the Reference Request · Say What the Prospect Must Hear · Search the Reference Pool · Check When Each Was Last Asked · Shortlist the Candidates · Ask the Customer · Brief the Reference · Brief the Prospect · Set the Conversation Up · Thank the Reference · Reset the Cool-Down Clock · Feed Back What the Prospect Heard

The records it leaves

What it writes down

What the prospect must hear, written down before the search: the industry, the size, the deployment shape and the specific worry. The candidates found, each with the match reason and the date their written agreement was last current. Each candidate's last ask date and count for the period. The health check and what it ruled out. The ranked shortlist, with a reason per name. The ask, who made it, and the answer, with a no recorded as a no and no reason demanded. The agreed bounds on numbers, names, terms and dates. Both briefings. The confirmed time and how both sides joined. The thanks, timed, written against the customer's record. The reset clock, naming the date the customer comes back on the available list and the count for the period.

Where it stops

What it will not do

Does not make the ask itself; the person who owns the relationship asks, and a no ends it for this opportunity. Does not agree what may be said, which the legal reviewer and the customer settle, and does not add to it during the call. Does not hold the conversation, answer for the reference customer, or record the call unless both customers have agreed in writing.

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: reference-finder 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 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.

  • Red String MCP server · redstringapp.xyz · hosted · mirrored from the MCP registry Revenue research and pipeline tools for agencies: scouting, contact intel, ABM, cadences, briefs.
  • VerifyRef MCP server · verifyref.com · hosted · run it yourself · mirrored from the MCP registry AI agent recruiting: talent pool match, reference checks, credit packs via Stripe MPP
  • RepScale MCP server · kbrayatl.github.io · hosted · mirrored from the MCP registry Sales research and prep tools for B2B reps. Prospect briefs, angles, citations.