Reference finder
reference-finder v1Finds 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.
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.
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.
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.
# 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
# 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.
# 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.
{
"$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"
]
}
]
}
}
}
# 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
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
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.
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.
{
"$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.
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.
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
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.
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.
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.
implements: reference-finder v1
One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
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.
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.