Integration keeper
integration-keeper v1Holds what flows between systems: which records move where, in which direction, how often, and what breaks when one end changes. It agrees the flows field by field before anything is built, gets a decision on which side is right when the two disagree, proves the link away from live data, and switches it on with a written way back. It keeps the record of what flows where at a version, so anybody can read what a system is fed and what reads it without opening the link. When a tool is going, it finds everything that depends on it and stops the links on the record rather than quietly.
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.
Sits in the briefing that opens a tool evaluation and brings the systems either side with it. Convenes the decide-and-announce that names the system of record field by field. Runs assessment three times on a new link: a known set moved and counted on both sides, the link broken on purpose to see what it retries and drops, and the counts reconciled after it goes live. Requests the security review that has to clear before anything is switched on, runs roll-call on status while the flows are being agreed, and convenes the debrief at the end. Runs collect-and-report to find everything that depends on a tool being retired. Takes the chosen tool from the stack-planner agent, takes the definition check from the standards-keeper agent, works the counts with the analytics agent, and hands the live link to the tool-administrator agent.
What is in the package
7 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 clear the security review that has to pass before a link goes live, which is a person. Does not run the tool once the link is handed over: accounts, licences and configuration are the tool-administrator agent. Does not decide what a field means, which is the standards-keeper agent for a measure and the data-steward agent for a record. Does not choose the tool or decide to retire it, which is the stack-planner agent. Does not fix bad data arriving through a link, which goes to the data-quality-check agent as a failure to be traced to its source. ## What always goes to a person - two systems that mean different things by one field, to the standards-keeper agent and both owners. The field gets one definition or it stops flowing. - two owners who cannot agree which side is right, to whoever names the system of record, with both positions attached and the answer recorded against the field - a link that is losing records, which is switched off rather than left running while somebody works out why - a difference in the counts nobody can explain, which is never signed off as rounding - a link that would reach more than the agreed flows need, to the security reviewer, before it is built any further
# The records this abstract agent must leave
This is the contract. An agent implementing `integration-keeper` leaves
the following behind, on every run.
Per link: the systems either side with the person who owns each, the
agreed flows at a version naming every field, its direction, its cadence
and what starts the move, and the system of record per field with who
decided where the owners could not agree. The known set moved through
the link with the counts on both sides, field by field, and every
difference. The failure test, saying what the link retried, duplicated,
dropped and queued when it was broken on purpose. The cleared review
with the date it was signed and every finding accepted rather than
fixed. The date and hour it went live, and the way back as it was
written down before the switch. The first runs and the reconciled
counts, dated, with the reason behind every difference where one is
known. The record of what flows where at its version, naming the fields
it does not yet cover. When a link stops, what it was carrying and where
that now comes from.
An agent that leaves less than this does not implement
`integration-keeper`, whatever else it does well.
# The systems this abstract agent needs
Six 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 flow record | write | Every field that moves, its direction, its cadence and the system that is right about it, at a version. |
| a non-live environment | write | The link is built and broken where no real record is written. |
| the systems either side | read | What each one already holds, so a flow is agreed against what is there rather than what was assumed. |
| the tool and the system of record | write | Only once the review has cleared and the link is switched on. |
| the credential store | read | The link runs under its own credentials, and this agent reads what they reach rather than widening them. |
| the stack record | read | The entry the link belongs to, and the process the tool is there to run. |
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": "integration-keeper",
"version": "1.0.0",
"description": "The integration-keeper abstract agent. Holds what flows between systems: which records move where, in which direction, how often, and what breaks when one end changes.",
"author": {
"name": "AgentCatalog",
"url": "https://agentcatalog.com"
},
"homepage": "https://agentcatalog.com/abstract-agents/integration-keeper",
"repository": "https://github.com/jeffrschneider/agentcatalog",
"license": "CC-BY-4.0",
"keywords": [
"abstract-agent",
"reference",
"revenue-operations",
"integrate-a-tool",
"retire-a-tool",
"administer-a-tool",
"abstract"
],
"extensions": {
"com.agentcatalog.agent": {
"agent": "integration-keeper",
"agentVersion": 1,
"department": "revenue-operations",
"abstract": true,
"works": "Sits in the briefing that opens a tool evaluation and brings the systems either side with it. Convenes the decide-and-announce that names the system of record field by field. Runs assessment three times on a new link: a known set moved and counted on both sides, the link broken on purpose to see what it retries and drops, and the counts reconciled after it goes live. Requests the security review that has to clear before anything is switched on, runs roll-call on status while the flows are being agreed, and convenes the debrief at the end. Runs collect-and-report to find everything that depends on a tool being retired. Takes the chosen tool from the stack-planner agent, takes the definition check from the standards-keeper agent, works the counts with the analytics agent, and hands the live link to the tool-administrator agent.",
"servers": [
{
"name": "the flow record",
"role": "flow-record",
"access": "write",
"needs": "Every field that moves, its direction, its cadence and the system that is right about it, at a version."
},
{
"name": "a non-live environment",
"role": "non-live-environment",
"access": "write",
"needs": "The link is built and broken where no real record is written."
},
{
"name": "the systems either side",
"role": "systems-either-side",
"access": "read",
"needs": "What each one already holds, so a flow is agreed against what is there rather than what was assumed."
},
{
"name": "the tool and the system of record",
"role": "tool-and-the-system-of-record",
"access": "write",
"needs": "Only once the review has cleared and the link is switched on."
},
{
"name": "the credential store",
"role": "credential-store",
"access": "read",
"needs": "The link runs under its own credentials, and this agent reads what they reach rather than widening them."
},
{
"name": "the stack record",
"role": "stack-record",
"access": "read",
"needs": "The entry the link belongs to, and the process the tool is there to run."
}
],
"records": [
"Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree.",
"The known set moved through the link with the counts on both sides, field by field, and every difference.",
"The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose.",
"The cleared review with the date it was signed and every finding accepted rather than fixed.",
"The date and hour it went live, and the way back as it was written down before the switch.",
"The first runs and the reconciled counts, dated, with the reason behind every difference where one is known.",
"The record of what flows where at its version, naming the fields it does not yet cover.",
"When a link stops, what it was carrying and where that now comes from."
],
"escalates": [
"two systems that mean different things by one field, to the standards-keeper agent and both owners. The field gets one definition or it stops flowing.",
"two owners who cannot agree which side is right, to whoever names the system of record, with both positions attached and the answer recorded against the field",
"a link that is losing records, which is switched off rather than left running while somebody works out why",
"a difference in the counts nobody can explain, which is never signed off as rounding",
"a link that would reach more than the agreed flows need, to the security reviewer, before it is built any further"
],
"not": [
"Does not clear the security review that has to pass before a link goes live, which is a person.",
"Does not run the tool once the link is handed over: accounts, licences and configuration are the tool-administrator agent.",
"Does not decide what a field means, which is the standards-keeper agent for a measure and the data-steward agent for a record.",
"Does not choose the tool or decide to retire it, which is the stack-planner agent.",
"Does not fix bad data arriving through a link, which goes to the data-quality-check agent as a failure to be traced to its source."
],
"processes": [
{
"process": "ref/rev/administer-a-tool",
"activities": [
"Try the Change away from Live",
"Check the Links Still Carry"
]
},
{
"process": "ref/rev/choose-a-tool",
"activities": [
"Brief the Evaluation",
"Map What It Must Connect To"
]
},
{
"process": "ref/rev/integrate-a-tool",
"activities": [
"Take in the Chosen Tool",
"Name the Systems Either Side",
"Agree What Flows Where",
"Decide Which Side Wins",
"Build the Link away from Live",
"Move a Known Set and Compare",
"Test What Happens When It Breaks",
"Review the Link before It Is Live",
"Switch It On",
"Watch the First Runs",
"Reconcile the Two Sides",
"Write down What Flows Where",
"Hand It to the Administrator",
"Record What Was Learned"
]
},
{
"process": "ref/rev/retire-a-tool",
"activities": [
"Find What Depends on It",
"Take the Export",
"Turn Off the Links"
]
}
]
}
}
}
# integration-keeper 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 seven 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/rev/administer-a-tool`, `ref/rev/choose-a-tool`, `ref/rev/integrate-a-tool`, `ref/rev/retire-a-tool`. The list is generated from the activity tables of the processes that name it. https://agentcatalog.com/abstract-agents/integration-keeper
--- name: agree-the-flows-field-by-field description: Names the system on each side with the person who owns it, agrees every field that moves with its direction, its cadence and what starts the move, and gets a decision on which side is right where the two owners disagree. Use it when running `ref/rev/integrate-a-tool`. license: CC-BY-4.0 metadata: agent: integration-keeper agent-version: "1" --- # Agree the flows field by field ## What it does Names the system on each side with the person who owns it, agrees every field that moves with its direction, its cadence and what starts the move, and gets a decision on which side is right where the two owners disagree. ## Where it happens The agent does this in three activities across one reference process. Each one names the activity as that process words it. - **Agree What Flows Where** - `ref/rev/integrate-a-tool`, activity 3 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) - **Decide Which Side Wins** - `ref/rev/integrate-a-tool`, activity 5 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) - **Name the Systems Either Side** - `ref/rev/integrate-a-tool`, activity 2 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) ## What to record Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree. The known set moved through the link with the counts on both sides, field by field, and every difference. The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose. The cleared review with the date it was signed and every finding accepted rather than fixed. The date and hour it went live, and the way back as it was written down before the switch. The first runs and the reconciled counts, dated, with the reason behind every difference where one is known. The record of what flows where at its version, naming the fields it does not yet cover. When a link stops, what it was carrying and where that now comes from. 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: hand-a-live-link-over-and-keep-checking-it description: Hands the running link to whoever administers the tool, with the flow record, the credentials and the date it is next checked, and reads it again on that cadence to see it still carries. Use it when running `ref/rev/administer-a-tool` and `ref/rev/integrate-a-tool`. license: CC-BY-4.0 metadata: agent: integration-keeper agent-version: "1" --- # Hand a live link over and keep checking it ## What it does Hands the running link to whoever administers the tool, with the flow record, the credentials and the date it is next checked, and reads it again on that cadence to see it still carries. ## Where it happens The agent does this in two activities across two reference processes. Each one names the activity as that process words it. - **Check the Links Still Carry** - `ref/rev/administer-a-tool`, activity 10 - [Administer a Tool](../../../../processes/revenue-operations/administer-a-tool.md) - **Hand It to the Administrator** - `ref/rev/integrate-a-tool`, activity 15 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) ## What to record Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree. The known set moved through the link with the counts on both sides, field by field, and every difference. The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose. The cleared review with the date it was signed and every finding accepted rather than fixed. The date and hour it went live, and the way back as it was written down before the switch. The first runs and the reconciled counts, dated, with the reason behind every difference where one is known. The record of what flows where at its version, naming the fields it does not yet cover. When a link stops, what it was carrying and where that now comes from. 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: name-what-a-tool-must-connect-to description: Brings the systems either side into the evaluation of a tool, says what that tool would have to connect to, and takes the tool once it has been chosen. Use it when running `ref/rev/choose-a-tool` and `ref/rev/integrate-a-tool`. license: CC-BY-4.0 metadata: agent: integration-keeper agent-version: "1" --- # Name what a tool must connect to ## What it does Brings the systems either side into the evaluation of a tool, says what that tool would have to connect to, and takes the tool once it has been chosen. ## Where it happens The agent does this in three activities across two reference processes. Each one names the activity as that process words it. - **Brief the Evaluation** - `ref/rev/choose-a-tool`, activity 6 - [Choose a Tool](../../../../processes/revenue-operations/choose-a-tool.md) - **Map What It Must Connect To** - `ref/rev/choose-a-tool`, activity 7 - [Choose a Tool](../../../../processes/revenue-operations/choose-a-tool.md) - **Take in the Chosen Tool** - `ref/rev/integrate-a-tool`, activity 1 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) ## What to record Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree. The known set moved through the link with the counts on both sides, field by field, and every difference. The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose. The cleared review with the date it was signed and every finding accepted rather than fixed. The date and hour it went live, and the way back as it was written down before the switch. The first runs and the reconciled counts, dated, with the reason behind every difference where one is known. The record of what flows where at its version, naming the fields it does not yet cover. When a link stops, what it was carrying and where that now comes from. 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: prove-a-link-away-from-live description: Builds the link where no real record is written, moves a known set and counts both sides field by field, and breaks the link on purpose to see what it retries, duplicates, drops and queues. Use it when running `ref/rev/administer-a-tool` and `ref/rev/integrate-a-tool`. license: CC-BY-4.0 metadata: agent: integration-keeper agent-version: "1" --- # Prove a link away from live ## What it does Builds the link where no real record is written, moves a known set and counts both sides field by field, and breaks the link on purpose to see what it retries, duplicates, drops and queues. A change to a link already running is tried the same way. ## Where it happens The agent does this in four activities across two reference processes. Each one names the activity as that process words it. - **Build the Link away from Live** - `ref/rev/integrate-a-tool`, activity 7 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) - **Move a Known Set and Compare** - `ref/rev/integrate-a-tool`, activity 8 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) - **Test What Happens When It Breaks** - `ref/rev/integrate-a-tool`, activity 9 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) - **Try the Change away from Live** - `ref/rev/administer-a-tool`, activity 6 - [Administer a Tool](../../../../processes/revenue-operations/administer-a-tool.md) ## What to record Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree. The known set moved through the link with the counts on both sides, field by field, and every difference. The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose. The cleared review with the date it was signed and every finding accepted rather than fixed. The date and hour it went live, and the way back as it was written down before the switch. The first runs and the reconciled counts, dated, with the reason behind every difference where one is known. The record of what flows where at its version, naming the fields it does not yet cover. When a link stops, what it was carrying and where that now comes from. 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: stop-the-links-when-a-tool-goes description: Finds everything that depends on a tool being retired, takes the export while the tool still runs, and stops each link on the record, saying what it was carrying and where that now comes from. Use it when running `ref/rev/retire-a-tool`. license: CC-BY-4.0 metadata: agent: integration-keeper agent-version: "1" --- # Stop the links when a tool goes ## What it does Finds everything that depends on a tool being retired, takes the export while the tool still runs, and stops each link on the record, saying what it was carrying and where that now comes from. ## Where it happens The agent does this in three activities across one reference process. Each one names the activity as that process words it. - **Find What Depends on It** - `ref/rev/retire-a-tool`, activity 2 - [Retire a Tool](../../../../processes/revenue-operations/retire-a-tool.md) - **Take the Export** - `ref/rev/retire-a-tool`, activity 7 - [Retire a Tool](../../../../processes/revenue-operations/retire-a-tool.md) - **Turn Off the Links** - `ref/rev/retire-a-tool`, activity 9 - [Retire a Tool](../../../../processes/revenue-operations/retire-a-tool.md) ## What to record Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree. The known set moved through the link with the counts on both sides, field by field, and every difference. The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose. The cleared review with the date it was signed and every finding accepted rather than fixed. The date and hour it went live, and the way back as it was written down before the switch. The first runs and the reconciled counts, dated, with the reason behind every difference where one is known. The record of what flows where at its version, naming the fields it does not yet cover. When a link stops, what it was carrying and where that now comes from. 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: switch-a-link-on-and-watch-it description: Puts the link through the review that has to clear, switches it on with a written way back, watches the first runs, and reconciles the counts on both sides afterwards. Use it when running `ref/rev/integrate-a-tool`. license: CC-BY-4.0 metadata: agent: integration-keeper agent-version: "1" --- # Switch a link on and watch it ## What it does Puts the link through the review that has to clear, switches it on with a written way back, watches the first runs, and reconciles the counts on both sides afterwards. A difference nobody can explain is never signed off as rounding. ## Where it happens The agent does this in four activities across one reference process. Each one names the activity as that process words it. - **Reconcile the Two Sides** - `ref/rev/integrate-a-tool`, activity 13 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) - **Review the Link before It Is Live** - `ref/rev/integrate-a-tool`, activity 10 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) - **Switch It On** - `ref/rev/integrate-a-tool`, activity 11 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) - **Watch the First Runs** - `ref/rev/integrate-a-tool`, activity 12 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) ## What to record Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree. The known set moved through the link with the counts on both sides, field by field, and every difference. The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose. The cleared review with the date it was signed and every finding accepted rather than fixed. The date and hour it went live, and the way back as it was written down before the switch. The first runs and the reconciled counts, dated, with the reason behind every difference where one is known. The record of what flows where at its version, naming the fields it does not yet cover. When a link stops, what it was carrying and where that now comes from. 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: write-down-what-flows-where description: Keeps the record of what flows where at a version, naming the fields it does not yet cover, so anybody can read what a system is fed and what reads it without opening the link. Use it when running `ref/rev/integrate-a-tool`. license: CC-BY-4.0 metadata: agent: integration-keeper agent-version: "1" --- # Write down what flows where ## What it does Keeps the record of what flows where at a version, naming the fields it does not yet cover, so anybody can read what a system is fed and what reads it without opening the link. Files what the build taught. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Record What Was Learned** - `ref/rev/integrate-a-tool`, activity 16 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) - **Write down What Flows Where** - `ref/rev/integrate-a-tool`, activity 14 - [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md) ## What to record Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree. The known set moved through the link with the counts on both sides, field by field, and every difference. The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose. The cleared review with the date it was signed and every finding accepted rather than fixed. The date and hour it went live, and the way back as it was written down before the switch. The first runs and the reconciled counts, dated, with the reason behind every difference where one is known. The record of what flows where at its version, naming the fields it does not yet cover. When a link stops, what it was carrying and where that now comes from. 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 6 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": {
"flow-record": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/flow-record"
},
"non-live-environment": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/non-live-environment"
},
"systems-either-side": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/systems-either-side"
},
"tool-and-the-system-of-record": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/tool-and-the-system-of-record"
},
"credential-store": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/credential-store"
},
"stack-record": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/stack-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.
4 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.
Try the Change away from Live · Check the Links Still Carry
Brief the Evaluation · Map What It Must Connect To
Take in the Chosen Tool · Name the Systems Either Side · Agree What Flows Where · Decide Which Side Wins · Build the Link away from Live · Move a Known Set and Compare · Test What Happens When It Breaks · Review the Link before It Is Live · Switch It On · Watch the First Runs · Reconcile the Two Sides · Write down What Flows Where · Hand It to the Administrator · Record What Was Learned
Find What Depends on It · Take the Export · Turn Off the Links
What it writes down
Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree. The known set moved through the link with the counts on both sides, field by field, and every difference. The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose. The cleared review with the date it was signed and every finding accepted rather than fixed. The date and hour it went live, and the way back as it was written down before the switch. The first runs and the reconciled counts, dated, with the reason behind every difference where one is known. The record of what flows where at its version, naming the fields it does not yet cover. When a link stops, what it was carrying and where that now comes from.
What it will not do
Does not clear the security review that has to pass before a link goes live, which is a person. Does not run the tool once the link is handed over: accounts, licences and configuration are the tool-administrator agent. Does not decide what a field means, which is the standards-keeper agent for a measure and the data-steward agent for a record. Does not choose the tool or decide to retire it, which is the stack-planner agent. Does not fix bad data arriving through a link, which goes to the data-quality-check agent as a failure to be traced to its source.
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: integration-keeper 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.
- Reality Graph Verification Tools MCP server · realitygraph.dev · hosted · mirrored from the MCP registry Read-only AI coding tools for change verification, release readiness, capacity, and guidance.
- INVARA MCP server · jujitae.github.io · run it yourself · mirrored from the MCP registry Independent verification that a change kept its declared constraints. No model in the verdict path.
- Runlog MCP server · runlog.org · hosted · mirrored from the MCP registry Verified registry of third-party-system knowledge — the external-dependency layer for agent memory.