Negotiation Copilot for Agents (SNHP)
io.github.ryuxik/snhp-negotiation · v0.2.0 · MCP 2025-11-25
Math-optimal negotiation moves for AI agents, in plain dollars (single + multi-issue).
Reachability
reachable
checked 2026-07-14 03:45 UTC
Registry status active
Tools pinned 27
e0ad4e10d5c4
Tools last changed
unchanged since first capture 2026-07-14
Provenance
Registry namespace io.github.ryuxik
(GitHub-account verified by the official registry)
Repository
github.com/ryuxik/snhp
Remote endpoints
https://snhp.dev/mcp (streamable-http)
Observed changes
| When (UTC) | Event | Detail |
|---|---|---|
| 2026-07-14 03:45 | first capture | 27 tools pinned |
Pinned tool definitions (27)
| Tool | Description |
|---|---|
| score_deal | Score a settled package against the exact Pareto frontier — the SNHP leaderboard metric ("dollars left on the table") for YOUR negotiation. Args: issues: one dict per issue: {"name": str, "options": [labels], "my_utility":... |
| gt_negotiate_turn | Get the math-optimal next move in a price negotiation — in plain dollars. USE THIS WHEN: you're haggling over a single PRICE across multiple back-and- forth rounds and want a better outcome than winging it. Validated edge: ~12% better... |
| gt_negotiate_bundle | Negotiate SEVERAL linked issues at once by logrolling — in plain terms. USE THIS WHEN: a deal has more than one issue on the table and they trade off — a job offer (base + equity + signing), a SaaS contract (price + seats + term... |
| gt_negotiation_sell_next_offer | Sell-side next-offer recommendation. Set `peer_mode=True` when the counterparty is a verified SNHP-protocol peer (cryptographic attestation). Activates the cooperative architecture: max-self signaling rounds 0-1, then cubic descent... |
| gt_negotiation_buy_next_offer | Buy-side next-offer recommendation with a defense bundle. Set `peer_mode=True` when the counterparty is a verified SNHP-protocol peer to activate cooperative architecture (PEER playbook + signaling). If `anchor_attack_detection` is... |
| gt_negotiation_detect_anchor_attack | Z-score the opponent's opening offer against a market prior {mu, sigma}. Recommends ignore / counter_with_market / walk_away. |
| gt_negotiation_declare_first_strike | Cryptographically commit to a buyer reservation. Returns an EdDSA-signed JWT attestation the buyer shows the seller. Use SHA-256 over (reservation || nonce || salt || buyer_id || seller_id), base64url-encoded without padding, as... |
| gt_negotiation_reveal_first_strike | Reveal a previous first-strike to obtain the binding offer. |
| gt_negotiation_trust_anchor_public_key | ASCII PEM of the server's first-strike attestation public key. |
| gt_auction_optimal_bid | The bid to place when you're BIDDING in an auction, in plain dollars. USE THIS WHEN: you're a bidder and want the bid that maximizes your expected surplus without overpaying. NOT for running an auction (use gt_auction_optimal_reserve)... |
| gt_auction_optimal_reserve | Set the revenue-optimal RESERVE PRICE (minimum bid you'll accept) for an auction. USE THIS WHEN: you're running an auction or sale with multiple bidders and need the floor price that maximizes your expected revenue. NOT for... |
| gt_auction_format_recommendation | Recommend format from {first_price, vickrey, english} given weights. |
| gt_auction_simulate | Monte Carlo auction revenue + efficiency. |
| gt_mechanism_gale_shapley | Match two groups by their rankings so no pair would rather swap (a STABLE matching). USE THIS WHEN: you're assigning two sides to each other by mutual preference — interns<->teams, students<->schools, mentors<->mentees — and want a... |
| gt_mechanism_optimal_auction_design | Myerson revenue-optimal mechanism for asymmetric IPV. Per-bidder reserves; collapses to second-price-with-reserve under symmetric IPV. |
| gt_mechanism_posted_price_optimal | Best price (and markdown schedule) to clear a FIXED stock by a DEADLINE, in plain dollars. USE THIS WHEN: you must sell a fixed number of units before a cutoff and demand arrives over time — event tickets, perishable inventory,... |
| gt_a2a_register_operator | Register your operator identity — STEP 0 of the verified-peer deal flow. USE THE A2A FLOW ONLY WHEN the counterparty ALSO runs SNHP; it unlocks a cooperation premium (more joint surplus between verified peers) plus a signed, settleable... |
| gt_a2a_request_domain_challenge | Get the DNS-TXT record to publish to prove control of `domain` (sybil- resistant, domain-level identity). |
| gt_a2a_verify_domain | Verify the published DNS-TXT challenge and register `domain` as a domain-verified operator. |
| gt_a2a_build_peer_proof | STEP 1 of the A2A flow — sign a per-negotiation peer proof, LOCALLY. Bind your registered identity (operator_attestation_jwt from gt_a2a_register_operator) to THIS negotiation_id and role ('seller'/'buyer') using your operator private... |
| gt_a2a_open_session | STEP 3 of the A2A flow — verify BOTH peer proofs and open a session. Submit the seller_proof and buyer_proof (yours + the counterparty's from STEP 2). Returns session_id and peer_mode. peer_mode is server-derived and is True ONLY... |
| gt_a2a_next_offer | STEP 4 of the A2A flow — your next move, using the SESSION's verified peer_mode. role is 'seller' or 'buyer'. The recommender uses the session's server-derived peer_mode (not a self-asserted flag), so the cooperation premium applies... |
| gt_a2a_settle | STEP 5 (final) of the A2A flow — mint the signed deal record. Once both sides agree on agreed_price, this emits a signed AP2 Cart Mandate (a non-repudiable VC-JWT naming both verified parties) — and an Intent Mandate too if you pass... |
| gt_negotiate_open_session | Open a stateful price-negotiation session that PONDERS on the other side's clock. Unlike one-shot gt_negotiate_turn, a session remembers the running history and — after each propose/respond — speculates in the BACKGROUND over the... |
| gt_negotiate_propose | Make your next move in a pondering session and kick off background speculation. Returns the same dict as gt_negotiate_turn (action, recommended_price, message, compute, ...). Immediately after returning, the session searches your... |
| gt_negotiate_respond | Feed the counterparty's latest dollar offer and get your next move. If their offer is roughly what the session anticipated, the deeply-searched reply is already cached and returned instantly (the reply's "_pondered" field is... |
| gt_negotiate_close_session | Close a pondering session and cancel any in-flight background speculation. |
Status badge
[](https://toolpin.dev/servers/io.github.ryuxik/snhp-negotiation)
Maintain this server? Add the badge to your README — it links your users to this live status page.