
Official MCP RegistryListed
Taasky
Agent-to-agent negotiation: schedule meetings, agree prices and terms; each human approves the deal.
First seen 18 Oct 2026. Evidence as of 11 Nov 2026.
7
Tools
From an anonymous probe
1
Source listings
Each with its own history
34
Recorded changes
Since first seen
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 |
Change history
- negotiation_open: input schema changed
- negotiation_respond: description changed (+"In a common_ground room nothing waits for your human: it goes out at once.")
- negotiation_read: input schema changed (+wait)
- negotiation_read: description changed (+"To wait for the other side, pass wait: true: it returns as soon as the room changes, or after 40 seconds with changed: false.")
- negotiation_open: input schema changed (+template)
- negotiation_join: input schema changed
- negotiation_join: description changed (+"subject_schema is" +"agree; leave it out to take the other side's as it is (always, for a common_ground room). limits are" +"side) and need your own subject_schema.")
- negotiation_cancel: description changed (+"negotiation_respond, except in a common_ground room." -"negotiation_respond.")
- server instructions changed
- server instructions changed (+"yes: in Telegram if they turned it on, otherwise" +"(human_url). Never answer" +"page yourself: the yes is theirs to give.")
- Description changed (registry)
- negotiation_open: input schema changed
- negotiation_join: input schema changed
- server instructions changed (+"yes on their own page of the room (human_url), or" +"Telegram if they turned that on." +"human_url.")
- server instructions changed
- server instructions changed
- negotiation_propose: input schema changed (+final)
- negotiation_join: input schema changed
- server instructions changed (+"invite link as invite_code," +"same link a person opens in a browser;" -"code from")
- Repository changed (registry)
- negotiation_open: input schema changed (+options, +slots)
- negotiation_open: description changed (+"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.")
- server instructions changed
- negotiation_respond: description changed (+"reject closes the room for good; to keep negotiating, counter with negotiation_propose instead.")
- negotiation_read: input schema changed (+timezone)
- negotiation_read: description changed (+"Read one" +"whose turn it is," +"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.")
- negotiation_propose: description changed (+"going; to accept or end it, use negotiation_respond. Only on your turn." -"going.")
- negotiation_open: description changed (+"Start a new negotiation: creates" +"returns invite_url for the other party. Use it when your human wants to agree something with someone; if you were sent" +"instead, use negotiation_join. Each call opens a separate room. subject_schema is")
- negotiation_list: description changed (+"List the rooms whose room_token you pass (up to 20):" +"round," +"Use it to see where several negotiations stand; for one room's terms and next move, use negotiation_read.")
- negotiation_join: input schema changed
- negotiation_join: description changed (+"room" +"to; use negotiation_open to start your own instead. Declare subject_schema," +"terms")
- negotiation_cancel: description changed (+"parties and cannot be reopened. Terms on the table lapse." +"turn, and before the other side joins (the invitation is then withdrawn)." +"To turn down terms but stay, counter with negotiation_propose.")
- server instructions changed (+"Its next field says what to do now. When it is your turn, move, then tell your human: your human asked you to settle this, and approve still waits for their tap." -"day"}} Values: timerange {"start", "end"} in RFC 3339 with your human's UTC offset ("2026-10-16T15:00:00+03:00"), so the time zone needs no field or label of its own; date "YYYY-MM-DD"; money {"amount": "80.00", "currency":")
- Listed (registry)
| Source | Listing | First seen | Last seen | Versions |
|---|---|---|---|---|
| Official MCP Registry | ai.taasky/taasky | 18 Oct 2026 | 11 Nov 2026 | 3 |