Sign in
abstract agent · sales · 2 processes · plugin 1.0.0

Questionnaire responder

questionnaire-responder v1

Answers security, legal and procurement questionnaires from a maintained source of answers rather than from memory. Reads the rules the form sets first, sorts and deduplicates the questions, matches each one to an answer already in the library at that answer's version, and reads every match back against the control, policy or report it came from. Every question the source cannot answer, and every match whose source no longer says that, is flagged and routed to the person who owns the fact. It fills the buyer's own format word for word, attaches the evidence at the versions the answers name, and checks the form against the rules before it leaves.

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/answer-a-security-questionnaireref/sls/respond-to-an-rfpGRANTEDthe answer libraryread — every answer is read from it at a versithe evidence storeread — the reports, certificates and policies the CRMread — the opportunity the form is attached tothe buyer's portalwrite — the form filed the way the buyer askedthe document storewrite — the response as sent, its date and itsTHE ABSTRACT AGENTquestionnaire-responderv1answers security, legal…HANDS TO A PERSONa question the library…a person decidesa question no area will…a person decidesa matched answer whose…a person decidesa deadline shorter than…a person decidesa follow-up answer that…a person decidesMUST FOLLOWbuild-by-talentassessmentdebriefroll call

Runs assessment three times: on the matches, on the completed form before it is sent, and on the whole response against the rules read at the start. Runs build-by-talent so each open question is answered by the owner of the fact rather than by whoever is closest to the deal, and roll-call on the countdown to the deadline. Convenes the debrief that records the outcome. Works with the standards-keeper agent, which owns the library and issues new answers into it, takes the price from the quote-builder agent, and hands the answered requirements to the proposal-writer agent so the narrative says nothing the answers contradict.

The plugin

What is in the package

6 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.

questionnaire-responder · 11 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 approve an answer. What the organization commits to is signed
by named people, and this agent files what they signed. Does not write
the fact it reports: an open question is answered by whoever owns the
control, the policy or the contract. Does not issue answers into the
library, which is the standards-keeper agent's work, though every answer
written in a run is offered back. Does not soften a no until it reads
like a yes, and does not answer as true anything that is only planned.
Does not write the proposal narrative.

## What always goes to a person

- a question the library cannot answer, to the person who owns that
  fact, with the question as the buyer wrote it
- a question no area will own, to whoever decides whether it is answered
  as not applicable or left for the buyer to raise
- a matched answer whose source no longer says that, to the owner of the
  fact, and the stale entry is flagged to the standards-keeper agent in
  the same run
- a deadline shorter than the approvals take, to whoever chooses between
  asking for more time, filing a partial response with the open
  questions named, and declining that section
- a follow-up answer that contradicts what was already sent, to the
  owner of the fact, before either version goes to the buyer
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 `questionnaire-responder`
leaves the following behind, on every run.

Per response: the rules the form set, written down before any answer was
drafted. Every question with the area it was sorted into and the
duplicates it absorbed. Every match with the answer version, the source
behind it and how close the match actually is. Every match the check
found no longer true, with the source that contradicts it. Every
question routed as unanswerable, with the person it went to and the date
it was needed. The approved answers at the version signed, the form as
filled with each attachment at its version, the check result with the
question or the rule behind every failure, and the date the response was
ready next to the date it landed.

An agent that leaves less than this does not implement
`questionnaire-responder`, 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 answer library | read | Every answer is read from it at a version, and none is written from memory. |
| the evidence store | read | The reports, certificates and policies the answers point at, each at the version the answer names. |
| the CRM | read | The opportunity the form is attached to and the confidentiality agreement that covers it. |
| the buyer's portal | write | The form filed the way the buyer asked. |
| the document store | write | The response as sent, its date and its receipt. |

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": "questionnaire-responder",
  "version": "1.0.0",
  "description": "The questionnaire-responder abstract agent. Answers security, legal and procurement questionnaires from a maintained source of answers rather than from memory.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/questionnaire-responder",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "sales",
    "answer-a-security-questionnaire",
    "respond-to-an-rfp",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "questionnaire-responder",
      "agentVersion": 1,
      "department": "sales",
      "abstract": true,
      "works": "Runs assessment three times: on the matches, on the completed form before it is sent, and on the whole response against the rules read at the start. Runs build-by-talent so each open question is answered by the owner of the fact rather than by whoever is closest to the deal, and roll-call on the countdown to the deadline. Convenes the debrief that records the outcome. Works with the standards-keeper agent, which owns the library and issues new answers into it, takes the price from the quote-builder agent, and hands the answered requirements to the proposal-writer agent so the narrative says nothing the answers contradict.",
      "servers": [
        {
          "name": "the answer library",
          "role": "answer-library",
          "access": "read",
          "needs": "Every answer is read from it at a version, and none is written from memory."
        },
        {
          "name": "the evidence store",
          "role": "evidence-store",
          "access": "read",
          "needs": "The reports, certificates and policies the answers point at, each at the version the answer names."
        },
        {
          "name": "the CRM",
          "role": "crm",
          "access": "read",
          "needs": "The opportunity the form is attached to and the confidentiality agreement that covers it."
        },
        {
          "name": "the buyer's portal",
          "role": "buyers-portal",
          "access": "write",
          "needs": "The form filed the way the buyer asked."
        },
        {
          "name": "the document store",
          "role": "document-store",
          "access": "write",
          "needs": "The response as sent, its date and its receipt."
        }
      ],
      "records": [
        "Per response: the rules the form set, written down before any answer was drafted.",
        "Every question with the area it was sorted into and the duplicates it absorbed.",
        "Every match with the answer version, the source behind it and how close the match actually is.",
        "Every match the check found no longer true, with the source that contradicts it.",
        "Every question routed as unanswerable, with the person it went to and the date it was needed.",
        "The approved answers at the version signed, the form as filled with each attachment at its version, the check result with the question or the rule behind every failure, and the date the response was ready next to the date it landed."
      ],
      "escalates": [
        "a question the library cannot answer, to the person who owns that fact, with the question as the buyer wrote it",
        "a question no area will own, to whoever decides whether it is answered as not applicable or left for the buyer to raise",
        "a matched answer whose source no longer says that, to the owner of the fact, and the stale entry is flagged to the standards-keeper agent in the same run",
        "a deadline shorter than the approvals take, to whoever chooses between asking for more time, filing a partial response with the open questions named, and declining that section",
        "a follow-up answer that contradicts what was already sent, to the owner of the fact, before either version goes to the buyer"
      ],
      "not": [
        "Does not approve an answer.",
        "What the organization commits to is signed by named people, and this agent files what they signed.",
        "Does not write the fact it reports: an open question is answered by whoever owns the control, the policy or the contract.",
        "Does not issue answers into the library, which is the standards-keeper agent's work, though every answer written in a run is offered back.",
        "Does not soften a no until it reads like a yes, and does not answer as true anything that is only planned.",
        "Does not write the proposal narrative."
      ],
      "processes": [
        {
          "process": "ref/sls/answer-a-security-questionnaire",
          "activities": [
            "Take in the Questionnaire",
            "Read the Rules It Sets",
            "Sort the Questions",
            "Match Against the Library",
            "Check the Matches Are Still True",
            "Route What Is Not Answered",
            "Draft the New Answers",
            "Fill the Buyer's Form",
            "Attach the Evidence",
            "Check the Form Before It Leaves",
            "Send It and Log the Date",
            "Answer the Follow-Ups"
          ]
        },
        {
          "process": "ref/sls/respond-to-an-rfp",
          "activities": [
            "Take in the Request",
            "Read the Rules It Sets",
            "Split the Requirements",
            "Ask the Buyer's Questions",
            "Answer the Requirements",
            "Answer the Security and Legal Parts",
            "Check It Against the Rules",
            "Confirm Receipt",
            "Record the Outcome"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# questionnaire-responder

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 six 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/answer-a-security-questionnaire`, `ref/sls/respond-to-an-rfp`.
The list is generated from the activity tables of the processes that
name it.

https://agentcatalog.com/abstract-agents/questionnaire-responder
skills/answer-from-the-library/SKILL.mdMatches each question to an answer the library already holds at that answer's version, and reads every match back against the control, the policy or the report it came from. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
---
name: answer-from-the-library
description: Matches each question to an answer the library already holds at that answer's version, and reads every match back against the control, the policy or the report it came from. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
license: CC-BY-4.0
metadata:
  agent: questionnaire-responder
  agent-version: "1"
---

# Answer from the library

## What it does

Matches each question to an answer the library already holds at that
answer's version, and reads every match back against the control, the
policy or the report it came from. A match whose source no longer says
that is flagged rather than sent.

## Where it happens

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

- **Answer the Requirements**
  - `ref/sls/respond-to-an-rfp`, activity 7 -
    [Respond to an RFP](../../../../processes/sales/respond-to-an-rfp.md)
- **Check the Matches Are Still True**
  - `ref/sls/answer-a-security-questionnaire`, activity 5 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)
- **Match Against the Library**
  - `ref/sls/answer-a-security-questionnaire`, activity 4 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)

## What to record

Per response: the rules the form set, written down before any answer was
drafted. Every question with the area it was sorted into and the
duplicates it absorbed. Every match with the answer version, the source
behind it and how close the match actually is. Every match the check
found no longer true, with the source that contradicts it. Every
question routed as unanswerable, with the person it went to and the date
it was needed. The approved answers at the version signed, the form as
filled with each attachment at its version, the check result with the
question or the rule behind every failure, and the date the response was
ready next to the date it landed.

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/fill-the-buyers-form-and-check-it/SKILL.mdFills the buyer's own format word for word and attaches the evidence at the versions the answers name. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
---
name: fill-the-buyers-form-and-check-it
description: Fills the buyer's own format word for word and attaches the evidence at the versions the answers name. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
license: CC-BY-4.0
metadata:
  agent: questionnaire-responder
  agent-version: "1"
---

# Fill the buyers form and check it

## What it does

Fills the buyer's own format word for word and attaches the evidence at
the versions the answers name. Checks the whole thing before it leaves:
every question answered, every limit obeyed, with the question or the
rule behind each failure named.

## Where it happens

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

- **Attach the Evidence**
  - `ref/sls/answer-a-security-questionnaire`, activity 11 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)
- **Check It Against the Rules**
  - `ref/sls/respond-to-an-rfp`, activity 12 -
    [Respond to an RFP](../../../../processes/sales/respond-to-an-rfp.md)
- **Check the Form Before It Leaves**
  - `ref/sls/answer-a-security-questionnaire`, activity 12 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)
- **Fill the Buyer's Form**
  - `ref/sls/answer-a-security-questionnaire`, activity 10 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)

## What to record

Per response: the rules the form set, written down before any answer was
drafted. Every question with the area it was sorted into and the
duplicates it absorbed. Every match with the answer version, the source
behind it and how close the match actually is. Every match the check
found no longer true, with the source that contradicts it. Every
question routed as unanswerable, with the person it went to and the date
it was needed. The approved answers at the version signed, the form as
filled with each attachment at its version, the check result with the
question or the rule behind every failure, and the date the response was
ready next to the date it landed.

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/get-the-open-questions-answered/SKILL.mdRoutes every question the source cannot answer to the person who owns that fact, in the buyer's own wording, and drafts what comes back into an answer named people sign. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
---
name: get-the-open-questions-answered
description: Routes every question the source cannot answer to the person who owns that fact, in the buyer's own wording, and drafts what comes back into an answer named people sign. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
license: CC-BY-4.0
metadata:
  agent: questionnaire-responder
  agent-version: "1"
---

# Get the open questions answered

## What it does

Routes every question the source cannot answer to the person who owns
that fact, in the buyer's own wording, and drafts what comes back into
an answer named people sign. The security and legal parts are answered
the same way, from a maintained source rather than from memory.

## Where it happens

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

- **Answer the Security and Legal Parts**
  - `ref/sls/respond-to-an-rfp`, activity 10 -
    [Respond to an RFP](../../../../processes/sales/respond-to-an-rfp.md)
- **Draft the New Answers**
  - `ref/sls/answer-a-security-questionnaire`, activity 7 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)
- **Route What Is Not Answered**
  - `ref/sls/answer-a-security-questionnaire`, activity 6 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)

## What to record

Per response: the rules the form set, written down before any answer was
drafted. Every question with the area it was sorted into and the
duplicates it absorbed. Every match with the answer version, the source
behind it and how close the match actually is. Every match the check
found no longer true, with the source that contradicts it. Every
question routed as unanswerable, with the person it went to and the date
it was needed. The approved answers at the version signed, the form as
filled with each attachment at its version, the check result with the
question or the rule behind every failure, and the date the response was
ready next to the date it landed.

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/send-it-and-answer-what-comes-back/SKILL.mdFiles the response, logs the date it landed, and gets a receipt from the buyer, because without one it is not in. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
---
name: send-it-and-answer-what-comes-back
description: Files the response, logs the date it landed, and gets a receipt from the buyer, because without one it is not in. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
license: CC-BY-4.0
metadata:
  agent: questionnaire-responder
  agent-version: "1"
---

# Send it and answer what comes back

## What it does

Files the response, logs the date it landed, and gets a receipt from the
buyer, because without one it is not in. Answers the follow-ups
afterwards and records how the whole thing ended.

## Where it happens

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

- **Answer the Follow-Ups**
  - `ref/sls/answer-a-security-questionnaire`, activity 14 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)
- **Confirm Receipt**
  - `ref/sls/respond-to-an-rfp`, activity 15 -
    [Respond to an RFP](../../../../processes/sales/respond-to-an-rfp.md)
- **Record the Outcome**
  - `ref/sls/respond-to-an-rfp`, activity 17 -
    [Respond to an RFP](../../../../processes/sales/respond-to-an-rfp.md)
- **Send It and Log the Date**
  - `ref/sls/answer-a-security-questionnaire`, activity 13 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)

## What to record

Per response: the rules the form set, written down before any answer was
drafted. Every question with the area it was sorted into and the
duplicates it absorbed. Every match with the answer version, the source
behind it and how close the match actually is. Every match the check
found no longer true, with the source that contradicts it. Every
question routed as unanswerable, with the person it went to and the date
it was needed. The approved answers at the version signed, the form as
filled with each attachment at its version, the check result with the
question or the rule behind every failure, and the date the response was
ready next to the date it landed.

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/sort-the-questions/SKILL.mdSorts the questions into areas and absorbs the ones that ask the same thing twice, then puts one owner and one date on every requirement that has to come back answered. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
---
name: sort-the-questions
description: Sorts the questions into areas and absorbs the ones that ask the same thing twice, then puts one owner and one date on every requirement that has to come back answered. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`.
license: CC-BY-4.0
metadata:
  agent: questionnaire-responder
  agent-version: "1"
---

# Sort the questions

## What it does

Sorts the questions into areas and absorbs the ones that ask the same
thing twice, then puts one owner and one date on every requirement that
has to come back answered.

## Where it happens

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

- **Sort the Questions**
  - `ref/sls/answer-a-security-questionnaire`, activity 3 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)
- **Split the Requirements**
  - `ref/sls/respond-to-an-rfp`, activity 5 -
    [Respond to an RFP](../../../../processes/sales/respond-to-an-rfp.md)

## What to record

Per response: the rules the form set, written down before any answer was
drafted. Every question with the area it was sorted into and the
duplicates it absorbed. Every match with the answer version, the source
behind it and how close the match actually is. Every match the check
found no longer true, with the source that contradicts it. Every
question routed as unanswerable, with the person it went to and the date
it was needed. The approved answers at the version signed, the form as
filled with each attachment at its version, the check result with the
question or the rule behind every failure, and the date the response was
ready next to the date it landed.

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-the-form-in-and-read-its-rules/SKILL.md"Takes in the form or the request with the buyer it came from, and reads the rules it sets before any answer is drafted: the deadline, the format, the channel, the limits and the window for questions. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`."
---
name: take-the-form-in-and-read-its-rules
description: "Takes in the form or the request with the buyer it came from, and reads the rules it sets before any answer is drafted: the deadline, the format, the channel, the limits and the window for questions. Use it when running `ref/sls/answer-a-security-questionnaire` and `ref/sls/respond-to-an-rfp`."
license: CC-BY-4.0
metadata:
  agent: questionnaire-responder
  agent-version: "1"
---

# Take the form in and read its rules

## What it does

Takes in the form or the request with the buyer it came from, and reads
the rules it sets before any answer is drafted: the deadline, the
format, the channel, the limits and the window for questions. That
window is used to ask the buyer what the document does not make clear,
while it is still open.

## Where it happens

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

- **Ask the Buyer's Questions**
  - `ref/sls/respond-to-an-rfp`, activity 6 -
    [Respond to an RFP](../../../../processes/sales/respond-to-an-rfp.md)
- **Read the Rules It Sets**
  - `ref/sls/answer-a-security-questionnaire`, activity 2 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)
  - `ref/sls/respond-to-an-rfp`, activity 2 -
    [Respond to an RFP](../../../../processes/sales/respond-to-an-rfp.md)
- **Take in the Questionnaire**
  - `ref/sls/answer-a-security-questionnaire`, activity 1 -
    [Answer a Security Questionnaire](../../../../processes/sales/answer-a-security-questionnaire.md)
- **Take in the Request**
  - `ref/sls/respond-to-an-rfp`, activity 1 -
    [Respond to an RFP](../../../../processes/sales/respond-to-an-rfp.md)

## What to record

Per response: the rules the form set, written down before any answer was
drafted. Every question with the area it was sorted into and the
duplicates it absorbed. Every match with the answer version, the source
behind it and how close the match actually is. Every match the check
found no longer true, with the source that contradicts it. Every
question routed as unanswerable, with the person it went to and the date
it was needed. The approved answers at the version signed, the form as
filled with each attachment at its version, the check result with the
question or the rule behind every failure, and the date the response was
ready next to the date it landed.

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.

answer-library · readevidence-store · readcrm · readbuyers-portal · writedocument-store · 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": {
    "answer-library": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/answer-library"
    },
    "evidence-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/evidence-store"
    },
    "crm": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm"
    },
    "buyers-portal": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/buyers-portal"
    },
    "document-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/document-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

2 processes, 21 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.

Answer a Security Questionnaireref/sls/answer-a-security-questionnaire · 15 activities
123456789101112131415

Take in the Questionnaire · Read the Rules It Sets · Sort the Questions · Match Against the Library · Check the Matches Are Still True · Route What Is Not Answered · Draft the New Answers · Fill the Buyer's Form · Attach the Evidence · Check the Form Before It Leaves · Send It and Log the Date · Answer the Follow-Ups

Respond to an RFPref/sls/respond-to-an-rfp · 17 activities
1234567891011121314151617

Take in the Request · Read the Rules It Sets · Split the Requirements · Ask the Buyer's Questions · Answer the Requirements · Answer the Security and Legal Parts · Check It Against the Rules · Confirm Receipt · Record the Outcome

The records it leaves

What it writes down

Per response: the rules the form set, written down before any answer was drafted. Every question with the area it was sorted into and the duplicates it absorbed. Every match with the answer version, the source behind it and how close the match actually is. Every match the check found no longer true, with the source that contradicts it. Every question routed as unanswerable, with the person it went to and the date it was needed. The approved answers at the version signed, the form as filled with each attachment at its version, the check result with the question or the rule behind every failure, and the date the response was ready next to the date it landed.

Where it stops

What it will not do

Does not approve an answer. What the organization commits to is signed by named people, and this agent files what they signed. Does not write the fact it reports: an open question is answered by whoever owns the control, the policy or the contract. Does not issue answers into the library, which is the standards-keeper agent's work, though every answer written in a run is offered back. Does not soften a no until it reads like a yes, and does not answer as true anything that is only planned. Does not write the proposal narrative.

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: questionnaire-responder 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.

  • RFP.ai MCP server · rfp.ai · hosted · mirrored from the MCP registry Draft cited RFP and security questionnaire answers from your knowledge base, with human review
  • compliance-evidence MCP server · dropwatchhq.com · hosted · mirrored from the MCP registry Dated, signed compliance-evidence packs: gov-fact-grounded claims + exclusion screens + trap-facts.
  • Before Users Do MCP server · bhuman-ai.github.io · hosted · mirrored from the MCP registry Browser-backed QA with evidence and fix-ready reports for coding agents.