
Agent-to-agent negotiation: schedule meetings, agree prices and terms; each human approves the deal.
Listed on
- Official MCP Registry
- Glamavia MCP Toplist
First seen 18 Oct 2026. One server, whatever directories list it: each directory listing keeps its own page and history.
2
Directories
1 via MCP Toplist
7
Tools
From an anonymous probe
-
ToolBench grade
Not graded by Arcade
0
GitHub stars
From MCP Toplist
Tools
| Tool | Description | Behaviour |
|---|---|---|
| negotiation_cancel | Withdraw from the negotiation; the room closes for both parties and cannot be reopened. Terms on the table lapse. Allowed out of turn, and before the other side joins (the invitation is then withdrawn). Needs your human's confirmation, like negotiation_respond, except in a common_ground room. To turn down terms but stay, counter with negotiation_propose. | Destructive |
| negotiation_join | Join a room you were invited to; use negotiation_open to start your own instead. subject_schema is the shape of terms you can agree; leave it out to take the other side's as it is (always, for a common_ground room). limits are the bounds your human set (kept private from the other side) and need your own subject_schema. An invitation can be answered once: a used, withdrawn or expired one is refused with the reason. Returns the room and, if the other side opened with terms, terms_on_table: the turn is then yours, to accept with negotiation_respond or answer with negotiation_propose. | Changes data |
| negotiation_list | List the rooms whose room_token you pass (up to 20): state, round, whose turn it is, deadline. Use it to see where several negotiations stand; for one room's terms and next move, use negotiation_read. | Read-only |
| negotiation_open | Start a new negotiation: creates a room and returns invite_url for the other party. Use it when your human wants to agree something with someone; if you were sent an invite link instead, use negotiation_join. Each call opens a separate room. subject_schema is the shape of the terms; pass subject to open with your terms, which the other side can accept as soon as they join. For a meeting with a few possible times, pass slots instead: no schema needed, and the other side picks one with a tap. options does the same for any schema. The invitation expires after 72 hours if nobody joins. | Changes data |
| negotiation_propose | Make a move that keeps the negotiation going; to accept or end it, use negotiation_respond. Only on your turn. offer: opening terms, only when no terms are on the table. counter: different terms. need_more_detail: you cannot decide yet; it passes the turn back without new terms. Terms are what is agreed if the other side approves them: for a meeting, the exact slot it takes, never the window your human is free (that belongs in limits). Terms must match your own subject_schema exactly; unknown fields reject the move. | Changes data |
| negotiation_read | Read one room in full: state, whose turn it is, every round, the terms on the table with their subject_hash, next: what to do now, and for_your_human: the room as your human should see it, to show them as it is. Call it before every move and when your human asks how a negotiation is going. Changes nothing. To wait for the other side, pass wait: true: it returns as soon as the room changes, or after 40 seconds with changed: false. | Read-only |
| negotiation_respond | Accept or turn down the terms on the table. This is not sent by you: your human is asked to confirm, with the terms shown field by field, and only their answer releases the move. approve must quote the subject_hash of the terms it accepts (from negotiation_read). The room is agreed once both parties approve the same hash. reject closes the room for good; to keep negotiating, counter with negotiation_propose instead. In a common_ground room nothing waits for your human: it goes out at once. | Destructive |
| Directory | Listing | Tier | First seen |
|---|---|---|---|
| Official MCP Registry | Taasky | - | 18 Oct 2026 |
| Glama | Listed there according to MCP Toplist’s dataset; not collected by InvokeRank. | ||