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

Negotiation coordinator

negotiation-coordinator v1

Keeps the negotiation straight. Gathers every ask the buyer has made into one numbered list in the buyer's own words, prices each one, and holds the record of which were given, which were traded and which were refused. Every closed ask carries its answer, the reason behind it, the date, and the name of the person on each side who agreed to it. Concessions are cleared inside before they are offered, and a refusal goes back in writing rather than only in a call. What leaves the run is one written position both sides hold, which the redline review and the close plan then work from instead of from anybody's memory.

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/negotiate-the-agreementref/sls/record-a-lost-dealref/sls/review-the-redlinesGRANTEDthe CRMwrite — the offer as sent, the buyer's reply, the quoting systemwrite — the offer rebuilt from what was agreedthe contract systemread — the paper the agreed terms are read agathe approval systemread — which concession is signed, by whom, anthe pricing modelread — what each ask costs and what it does tothe shared workspace with the buyerwrite — the list both sides confirm, and the rTHE ABSTRACT AGENTnegotiation-coordinatorv1keeps the negotiation…HANDS TO A PERSONan ask below the walk-away…a person decidesa concession found offered…a person decidesan ask neither side will…a person decidesa decider who was never in…a person decidesa deadlock that runs out…a person decidesMUST FOLLOWallocate-and-reconcilecollect-and-reportdecide-and-announceapprovalassessment

Runs collect-and-report to build the list of asks and to confirm who signs on each side and who they need first. Runs assessment to price each ask and to rebuild the offer from what was actually agreed. Convenes decide-and-announce to sort the asks into give, trade and refuse, requests the approval that must pass before a concession is offered, and convenes the approval in which both sides confirm one list of agreed terms. Runs allocate-and-reconcile over the concession record for the life of the run. Takes the contract reconciliation from the redline-reviewer agent and hands the agreed position to the close-plan-keeper agent.

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.

negotiation-coordinator · 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 a concession or set the floor. It prices the ask,
records the answer and names the approver, and named people sign. Does
not review the contract clause by clause, which is the redline-reviewer
agent, and a change that moves price, term or scope is settled here
rather than inside a markup. Does not run the close plan, which is the
close-plan-keeper agent. Does not sign, and does not treat an ask as
closed because a call went well.

## What always goes to a person

- an ask below the walk-away floor, to the sales leader who set the
  floor, because only that person may move it and moving it is recorded
  as a decision
- a concession found offered with no approval behind it, to the
  approvers, and the buyer is told the term is not confirmed
- an ask neither side will move on, to the sales leader and the matching
  person on the buyer's side, with both positions and what each side
  says it cannot do
- a decider who was never in the room, to the deal owner, and the asks
  are checked again against what the new person wants
- a deadlock that runs out its clock, to whoever decides between
  refusing on our terms and closing the deal as lost
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 `negotiation-coordinator`
leaves the following behind, on every run.

The numbered list of asks in the buyer's own wording, each with the
person who raised it. The floor on price, term, liability and payment,
and who set it. What each ask costs, which budget carries it, and the
margin after it. Each ask marked give, trade or refuse, with what was
asked for in return on every trade. Every approval with its approver and
its date, given before the concession was offered. Every closed ask with
the answer, the reason, the date and the person on each side who agreed.
Every refusal as it went to the buyer. The rebuilt offer with each
changed line traced to an ask, and the dated position both sides
confirmed, with the open items nobody closed listed beside it.

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

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 CRM | write | The offer as sent, the buyer's reply, and the notes from the calls since. |
| the quoting system | write | The offer rebuilt from what was agreed, with every changed line traced to the ask that changed it. |
| the contract system | read | The paper the agreed terms are read against. |
| the approval system | read | Which concession is signed, by whom, and on what date. |
| the pricing model | read | What each ask costs and what it does to margin, within a discount cap the adopting process sets. |
| the shared workspace with the buyer | write | The list both sides confirm, and the refusals in writing. |

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": "negotiation-coordinator",
  "version": "1.0.0",
  "description": "The negotiation-coordinator abstract agent. Keeps the negotiation straight. Gathers every ask the buyer has made into one numbered list in the buyer's own words, prices each one, and holds the record of which were given, which were traded and which were refused.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/negotiation-coordinator",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "sales",
    "negotiate-the-agreement",
    "record-a-lost-deal",
    "review-the-redlines",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "negotiation-coordinator",
      "agentVersion": 1,
      "department": "sales",
      "abstract": true,
      "works": "Runs collect-and-report to build the list of asks and to confirm who signs on each side and who they need first. Runs assessment to price each ask and to rebuild the offer from what was actually agreed. Convenes decide-and-announce to sort the asks into give, trade and refuse, requests the approval that must pass before a concession is offered, and convenes the approval in which both sides confirm one list of agreed terms. Runs allocate-and-reconcile over the concession record for the life of the run. Takes the contract reconciliation from the redline-reviewer agent and hands the agreed position to the close-plan-keeper agent.",
      "servers": [
        {
          "name": "the CRM",
          "role": "crm",
          "access": "write",
          "needs": "The offer as sent, the buyer's reply, and the notes from the calls since."
        },
        {
          "name": "the quoting system",
          "role": "quoting-system",
          "access": "write",
          "needs": "The offer rebuilt from what was agreed, with every changed line traced to the ask that changed it."
        },
        {
          "name": "the contract system",
          "role": "contract-system",
          "access": "read",
          "needs": "The paper the agreed terms are read against."
        },
        {
          "name": "the approval system",
          "role": "approval-system",
          "access": "read",
          "needs": "Which concession is signed, by whom, and on what date."
        },
        {
          "name": "the pricing model",
          "role": "pricing-model",
          "access": "read",
          "needs": "What each ask costs and what it does to margin, within a discount cap the adopting process sets."
        },
        {
          "name": "the shared workspace with the buyer",
          "role": "shared-workspace-with-the-buyer",
          "access": "write",
          "needs": "The list both sides confirm, and the refusals in writing."
        }
      ],
      "records": [
        "The numbered list of asks in the buyer's own wording, each with the person who raised it.",
        "The floor on price, term, liability and payment, and who set it.",
        "What each ask costs, which budget carries it, and the margin after it.",
        "Each ask marked give, trade or refuse, with what was asked for in return on every trade.",
        "Every approval with its approver and its date, given before the concession was offered.",
        "Every closed ask with the answer, the reason, the date and the person on each side who agreed.",
        "Every refusal as it went to the buyer.",
        "The rebuilt offer with each changed line traced to an ask, and the dated position both sides confirmed, with the open items nobody closed listed beside it."
      ],
      "escalates": [
        "an ask below the walk-away floor, to the sales leader who set the floor, because only that person may move it and moving it is recorded as a decision",
        "a concession found offered with no approval behind it, to the approvers, and the buyer is told the term is not confirmed",
        "an ask neither side will move on, to the sales leader and the matching person on the buyer's side, with both positions and what each side says it cannot do",
        "a decider who was never in the room, to the deal owner, and the asks are checked again against what the new person wants",
        "a deadlock that runs out its clock, to whoever decides between refusing on our terms and closing the deal as lost"
      ],
      "not": [
        "Does not approve a concession or set the floor.",
        "It prices the ask, records the answer and names the approver, and named people sign.",
        "Does not review the contract clause by clause, which is the redline-reviewer agent, and a change that moves price, term or scope is settled here rather than inside a markup.",
        "Does not run the close plan, which is the close-plan-keeper agent.",
        "Does not sign, and does not treat an ask as closed because a call went well."
      ],
      "processes": [
        {
          "process": "ref/sls/negotiate-the-agreement",
          "activities": [
            "Take in the Offer and the Reply",
            "List What Is Asked For",
            "Confirm Who Decides",
            "Set the Walk-Away Terms",
            "Price the Asks",
            "Sort the Asks",
            "Hold the Negotiation Session",
            "Record What Was Agreed",
            "Refuse in Writing",
            "Re-Price the Deal",
            "Confirm the Agreed Position",
            "Hand On the Agreed Position"
          ]
        },
        {
          "process": "ref/sls/record-a-lost-deal",
          "activities": [
            "Make One Recovery Attempt"
          ]
        },
        {
          "process": "ref/sls/review-the-redlines",
          "activities": [
            "Review the Business Terms"
          ]
        },
        {
          "process": "ref/sls/run-the-close-plan",
          "activities": [
            "Escalate a Stalled Step"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# negotiation-coordinator

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/negotiate-the-agreement`, `ref/sls/record-a-lost-deal`,
`ref/sls/review-the-redlines`, `ref/sls/run-the-close-plan`. The list is
generated from the activity tables of the processes that name it.

https://agentcatalog.com/abstract-agents/negotiation-coordinator
skills/answer-the-commercial-terms-in-a-markup/SKILL.mdReads the price, term and scope changes inside a buyer's markup, because a commercial ask dressed as a legal change is settled here rather than inside the contract text. Use it when running `ref/sls/review-the-redlines`.
---
name: answer-the-commercial-terms-in-a-markup
description: Reads the price, term and scope changes inside a buyer's markup, because a commercial ask dressed as a legal change is settled here rather than inside the contract text. Use it when running `ref/sls/review-the-redlines`.
license: CC-BY-4.0
metadata:
  agent: negotiation-coordinator
  agent-version: "1"
---

# Answer the commercial terms in a markup

## What it does

Reads the price, term and scope changes inside a buyer's markup, because
a commercial ask dressed as a legal change is settled here rather than
inside the contract text.

## Where it happens

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

- **Review the Business Terms**
  - `ref/sls/review-the-redlines`, activity 6 -
    [Review the Redlines](../../../../processes/sales/review-the-redlines.md)

## What to record

The numbered list of asks in the buyer's own wording, each with the
person who raised it. The floor on price, term, liability and payment,
and who set it. What each ask costs, which budget carries it, and the
margin after it. Each ask marked give, trade or refuse, with what was
asked for in return on every trade. Every approval with its approver and
its date, given before the concession was offered. Every closed ask with
the answer, the reason, the date and the person on each side who agreed.
Every refusal as it went to the buyer. The rebuilt offer with each
changed line traced to an ask, and the dated position both sides
confirmed, with the open items nobody closed listed beside it.

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/hold-the-session-and-record-the-answers/SKILL.mdRuns the session against the sorted list, and closes each ask with its answer, its reason, its date and the name of the person on each side who agreed to it. Use it when running `ref/sls/negotiate-the-agreement`.
---
name: hold-the-session-and-record-the-answers
description: Runs the session against the sorted list, and closes each ask with its answer, its reason, its date and the name of the person on each side who agreed to it. Use it when running `ref/sls/negotiate-the-agreement`.
license: CC-BY-4.0
metadata:
  agent: negotiation-coordinator
  agent-version: "1"
---

# Hold the session and record the answers

## What it does

Runs the session against the sorted list, and closes each ask with its
answer, its reason, its date and the name of the person on each side who
agreed to it. A refusal goes back to the buyer in writing rather than
only in a call.

## Where it happens

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

- **Hold the Negotiation Session**
  - `ref/sls/negotiate-the-agreement`, activity 8 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)
- **Record What Was Agreed**
  - `ref/sls/negotiate-the-agreement`, activity 9 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)
- **Refuse in Writing**
  - `ref/sls/negotiate-the-agreement`, activity 10 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)

## What to record

The numbered list of asks in the buyer's own wording, each with the
person who raised it. The floor on price, term, liability and payment,
and who set it. What each ask costs, which budget carries it, and the
margin after it. Each ask marked give, trade or refuse, with what was
asked for in return on every trade. Every approval with its approver and
its date, given before the concession was offered. Every closed ask with
the answer, the reason, the date and the person on each side who agreed.
Every refusal as it went to the buyer. The rebuilt offer with each
changed line traced to an ask, and the dated position both sides
confirmed, with the open items nobody closed listed beside it.

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/price-the-asks-and-set-the-floor/SKILL.mdSets the floor on price, term, liability and payment, and names who set it. Use it when running `ref/sls/negotiate-the-agreement`.
---
name: price-the-asks-and-set-the-floor
description: Sets the floor on price, term, liability and payment, and names who set it. Use it when running `ref/sls/negotiate-the-agreement`.
license: CC-BY-4.0
metadata:
  agent: negotiation-coordinator
  agent-version: "1"
---

# Price the asks and set the floor

## What it does

Sets the floor on price, term, liability and payment, and names who set
it. Prices each ask against what it costs and what it does to margin,
then sorts the list into give, trade and refuse, with what is asked for
in return on every trade.

## Where it happens

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

- **Price the Asks**
  - `ref/sls/negotiate-the-agreement`, activity 5 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)
- **Set the Walk-Away Terms**
  - `ref/sls/negotiate-the-agreement`, activity 4 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)
- **Sort the Asks**
  - `ref/sls/negotiate-the-agreement`, activity 6 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)

## What to record

The numbered list of asks in the buyer's own wording, each with the
person who raised it. The floor on price, term, liability and payment,
and who set it. What each ask costs, which budget carries it, and the
margin after it. Each ask marked give, trade or refuse, with what was
asked for in return on every trade. Every approval with its approver and
its date, given before the concession was offered. Every closed ask with
the answer, the reason, the date and the person on each side who agreed.
Every refusal as it went to the buyer. The rebuilt offer with each
changed line traced to an ask, and the dated position both sides
confirmed, with the open items nobody closed listed beside it.

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/push-a-deal-that-has-stopped-moving/SKILL.mdTakes a step nobody will move up on both sides, and makes one named attempt to reopen a deal that was called lost, with the answer recorded either way. Use it when running `ref/sls/record-a-lost-deal` and `ref/sls/run-the-close-plan`.
---
name: push-a-deal-that-has-stopped-moving
description: Takes a step nobody will move up on both sides, and makes one named attempt to reopen a deal that was called lost, with the answer recorded either way. Use it when running `ref/sls/record-a-lost-deal` and `ref/sls/run-the-close-plan`.
license: CC-BY-4.0
metadata:
  agent: negotiation-coordinator
  agent-version: "1"
---

# Push a deal that has stopped moving

## What it does

Takes a step nobody will move up on both sides, and makes one named
attempt to reopen a deal that was called lost, with the answer recorded
either way.

## Where it happens

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

- **Escalate a Stalled Step**
  - `ref/sls/run-the-close-plan`, activity 13 -
    [Run the Close Plan](../../../../processes/sales/run-the-close-plan.md)
- **Make One Recovery Attempt**
  - `ref/sls/record-a-lost-deal`, activity 3 -
    [Record a Lost Deal](../../../../processes/sales/record-a-lost-deal.md)

## What to record

The numbered list of asks in the buyer's own wording, each with the
person who raised it. The floor on price, term, liability and payment,
and who set it. What each ask costs, which budget carries it, and the
margin after it. Each ask marked give, trade or refuse, with what was
asked for in return on every trade. Every approval with its approver and
its date, given before the concession was offered. Every closed ask with
the answer, the reason, the date and the person on each side who agreed.
Every refusal as it went to the buyer. The rebuilt offer with each
changed line traced to an ask, and the dated position both sides
confirmed, with the open items nobody closed listed beside it.

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/rebuild-the-offer-and-confirm-the-position/SKILL.mdRebuilds the offer from what was actually agreed, with every changed line traced to the ask that changed it, gets both sides to confirm one dated list of agreed terms, and hands that position on to the redline review and the close plan. Use it when running `ref/sls/negotiate-the-agreement`.
---
name: rebuild-the-offer-and-confirm-the-position
description: Rebuilds the offer from what was actually agreed, with every changed line traced to the ask that changed it, gets both sides to confirm one dated list of agreed terms, and hands that position on to the redline review and the close plan. Use it when running `ref/sls/negotiate-the-agreement`.
license: CC-BY-4.0
metadata:
  agent: negotiation-coordinator
  agent-version: "1"
---

# Rebuild the offer and confirm the position

## What it does

Rebuilds the offer from what was actually agreed, with every changed
line traced to the ask that changed it, gets both sides to confirm one
dated list of agreed terms, and hands that position on to the redline
review and the close plan.

## Where it happens

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

- **Confirm the Agreed Position**
  - `ref/sls/negotiate-the-agreement`, activity 14 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)
- **Hand On the Agreed Position**
  - `ref/sls/negotiate-the-agreement`, activity 15 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)
- **Re-Price the Deal**
  - `ref/sls/negotiate-the-agreement`, activity 12 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)

## What to record

The numbered list of asks in the buyer's own wording, each with the
person who raised it. The floor on price, term, liability and payment,
and who set it. What each ask costs, which budget carries it, and the
margin after it. Each ask marked give, trade or refuse, with what was
asked for in return on every trade. Every approval with its approver and
its date, given before the concession was offered. Every closed ask with
the answer, the reason, the date and the person on each side who agreed.
Every refusal as it went to the buyer. The rebuilt offer with each
changed line traced to an ask, and the dated position both sides
confirmed, with the open items nobody closed listed beside it.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/take-in-the-offer-and-list-what-is-asked-for/SKILL.mdReads the offer as it was sent and the reply that came back, and gathers every ask into one numbered list in the buyer's own words with the person who raised each one. Use it when running `ref/sls/negotiate-the-agreement`.
---
name: take-in-the-offer-and-list-what-is-asked-for
description: Reads the offer as it was sent and the reply that came back, and gathers every ask into one numbered list in the buyer's own words with the person who raised each one. Use it when running `ref/sls/negotiate-the-agreement`.
license: CC-BY-4.0
metadata:
  agent: negotiation-coordinator
  agent-version: "1"
---

# Take in the offer and list what is asked for

## What it does

Reads the offer as it was sent and the reply that came back, and gathers
every ask into one numbered list in the buyer's own words with the
person who raised each one. Confirms who actually signs on each side and
who they need first.

## Where it happens

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

- **Confirm Who Decides**
  - `ref/sls/negotiate-the-agreement`, activity 3 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)
- **List What Is Asked For**
  - `ref/sls/negotiate-the-agreement`, activity 2 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)
- **Take in the Offer and the Reply**
  - `ref/sls/negotiate-the-agreement`, activity 1 -
    [Negotiate the Agreement](../../../../processes/sales/negotiate-the-agreement.md)

## What to record

The numbered list of asks in the buyer's own wording, each with the
person who raised it. The floor on price, term, liability and payment,
and who set it. What each ask costs, which budget carries it, and the
margin after it. Each ask marked give, trade or refuse, with what was
asked for in return on every trade. Every approval with its approver and
its date, given before the concession was offered. Every closed ask with
the answer, the reason, the date and the person on each side who agreed.
Every refusal as it went to the buyer. The rebuilt offer with each
changed line traced to an ask, and the dated position both sides
confirmed, with the open items nobody closed listed beside it.

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

crm · writequoting-system · writecontract-system · readapproval-system · readpricing-model · readshared-workspace-with-the-buyer · write
mcp.json You write this file. It is not part of the package.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
  "mcpServers": {
    "crm": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm"
    },
    "quoting-system": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/quoting-system"
    },
    "contract-system": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/contract-system"
    },
    "approval-system": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/approval-system"
    },
    "pricing-model": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/pricing-model"
    },
    "shared-workspace-with-the-buyer": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/shared-workspace-with-the-buyer"
    }
  }
}

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

4 processes, 15 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.

Negotiate the Agreementref/sls/negotiate-the-agreement · 15 activities
123456789101112131415

Take in the Offer and the Reply · List What Is Asked For · Confirm Who Decides · Set the Walk-Away Terms · Price the Asks · Sort the Asks · Hold the Negotiation Session · Record What Was Agreed · Refuse in Writing · Re-Price the Deal · Confirm the Agreed Position · Hand On the Agreed Position

Record a Lost Dealref/sls/record-a-lost-deal · 14 activities
1234567891011121314

Make One Recovery Attempt

Review the Redlinesref/sls/review-the-redlines · 16 activities
12345678910111213141516

Review the Business Terms

Run the Close Planref/sls/run-the-close-plan · 16 activities
12345678910111213141516

Escalate a Stalled Step

The records it leaves

What it writes down

The numbered list of asks in the buyer's own wording, each with the person who raised it. The floor on price, term, liability and payment, and who set it. What each ask costs, which budget carries it, and the margin after it. Each ask marked give, trade or refuse, with what was asked for in return on every trade. Every approval with its approver and its date, given before the concession was offered. Every closed ask with the answer, the reason, the date and the person on each side who agreed. Every refusal as it went to the buyer. The rebuilt offer with each changed line traced to an ask, and the dated position both sides confirmed, with the open items nobody closed listed beside it.

Where it stops

What it will not do

Does not approve a concession or set the floor. It prices the ask, records the answer and names the approver, and named people sign. Does not review the contract clause by clause, which is the redline-reviewer agent, and a change that moves price, term or scope is settled here rather than inside a markup. Does not run the close plan, which is the close-plan-keeper agent. Does not sign, and does not treat an ask as closed because a call went well.

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: negotiation-coordinator v1 One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
A guess, not a claim

The closest things in the catalog, by description

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

Might be reached for

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

  • SNHP — free negotiation math + agent memory MCP server · ryuxik.github.io · hosted · mirrored from the MCP registry Free game-theory negotiation advisor for agents, plus paid receipted sessions and agent memory.
  • CHAP Coordinator MCP server · brightbeamai.github.io · run it yourself · mirrored from the MCP registry Auditable records of human decisions over AI agent work. Approvals, edits, overrides, escalations.
  • transaction-coordinator MCP server · gordonhal.github.io · hosted · mirrored from the MCP registry AI transaction coordinator + legal-matters platform for real estate and law firms.