SNHP

SNHP

Free negotiation math for AI agents. Provides optimal next moves in any negotiation, single-price and multi-issue, runs locally, with optional paid receipted sessions and encrypted agent memory.

Category
访问服务器

README

SNHP

smithery badge

Free negotiation math for AI agents. One call, no account. Your agent brings the LLM; SNHP brings the game theory — your math-optimal next move in any negotiation, single-price and multi-issue, LLM-free, runs locally. When you need it on the record: $2 receipted sessions. When you need it to remember: agent memory (blind custody — you encrypt before saving; we store only ciphertext and cannot read it).

PyPI License: Apache 2.0  ·  snhp.dev  ·  Manifesto

🏆 The Negotiation Leaderboard

arena.snhp.dev/leaderboard.html — which AI walks away with the most money? Claude models, a naive splitter, a genome evolved in a live sim, and community bots all negotiate the same held-out multi-issue deals against the SNHP engine, scored against the exact Pareto frontier. Every match is a real recorded negotiation, replayable in the browser. Headline result: frontier models, solo, lose to the naive split-the-difference bot — wired to the engine mid-deal, they're near-optimal.

Put your bot on the board: expose one HTTP endpoint speaking snhp-gauntlet/1 and DM @ryuxik the URL. The runner lives in arena/gauntlet/ — protocol, seats, scoring, and the 25-line starter bot. Machine-readable spec: arena.snhp.dev/llms.txt.

Install

uvx snhp            # zero-install: runs the stdio MCP server on demand
# or
pip install snhp

Wire it into any MCP client (Claude Desktop, Cursor, Cline, …):

{ "mcpServers": { "snhp": { "command": "uvx", "args": ["snhp"] } } }

Or call the math directly — plain dollars in, the move out (the negotiate tool):

from gametheory.negotiation.plain_terms import negotiate_turn

negotiate_turn(
    side="sell", walk_away=4000, target=6000,
    counterparty_offers=[4200, 4500], rounds_left=6,
)
# -> {'action': 'counter', 'recommended_price': 5752.2,
#     'message': 'Thanks for the offer. The best I can do on this is $5,752.20.', ...}

Multi-issue deals logroll automatically — SNHP infers the other side's priorities and proposes the package that maximises joint surplus (concede what you value least to hold what you value most):

from gametheory.negotiation.bundle import negotiate_bundle

negotiate_bundle(
    issues=[
        {"name": "price",   "options": [100, 120, 140], "my_utility": [1.0, 0.5, 0.0], "their_utility": [0.0, 0.5, 1.0]},
        {"name": "support", "options": ["basic", "priority"], "my_utility": [1.0, 0.0], "their_utility": [0.0, 1.0]},
    ],
    my_priorities={"price": 0.8, "support": 0.2},
)
# -> recommended_offer {'price': 100, 'support': 'priority'} + the trade logic behind it

Hosted agent card, streamable MCP, and a live demo: snhp.dev.

What's here

snhp/                   Core algorithm + NegMAS agent + B2B tournament harness
gametheory/             Productization layer (FastAPI, MCP, Tier 1/2/3 endpoints)
gametheory/negotiation/ Plain-terms single- + multi-issue (logrolling) engines
gametheory/server/      HTTP + MCP entry points
gametheory/tests/       pytest suite
SNHP_Whitepaper/        Protocol description + 3 component PRDs

Develop from source

git clone https://github.com/ryuxik/snhp && cd snhp
python -m venv venv && source venv/bin/activate
pip install -e ".[test]"

python -m pytest gametheory/tests/                  # test suite
uvicorn gametheory.server.http:app --reload         # local API (catalog at /v1/catalog)
snhp                                                # stdio MCP server

Empirical anchor

Several different numbers — keep them straight

These are distinct measurements; conflating them is the easy mistake. They are ordered by how much weight they can carry, not by when we ran them. The first was pre-registered and validated on data it had never seen; the rest were not, and are reported here with the caveats that implies.

1. The certification gauntlet (pre-registered, held-out) — the number to trust. A certified agent's mean own-utility beats a split-the-difference baseline by +0.1086 across n=360 seeded negotiations (60 scenarios × 2 roles × 3 frozen scripted opponents: naive, hardball, conceder), p=0.0001, separating on both the public set and a held-out set that had never been used. The counterparty pool and the statistic were frozen in arena/gauntlet/PREREG-pool.md before the code existed. It carries the most weight precisely because it could have failed on the record — and an earlier cut of this certificate did fail (three statistics saturated against a fixed counterparty; see arena/gauntlet/certs/SEPARATION.md), which is why the protocol was re-registered rather than re-tuned. Scope is exactly the declared pool and no wider.

2. Head-to-head competitive margin (not registered in advance). In a SNHP-scaffolded LLM vs a non-SNHP LLM, how much more of the surplus does the SNHP side capture? On the committed cross-vendor run (gametheory/server/static/e6_cross_vendor.json, Sonnet+SNHP vs Haiku, n=20 paired seeds) the pooled margin is ~+12.5% (mean h3_margin ≈ 0.125, 29/40 positive signs). Some shipped copy still cites this as "~12% better head-to-head." Read it with the caveats: n=20, LLM-vs-LLM, single-issue price, no pre-registration, and the opponent is a general vanilla prompt — against a competent one the edge roughly halves (see the strong-baseline test below). Where this and (1) disagree, prefer (1).

3. Joint-welfare lift in self-play (a cooperation metric, NOT the same thing). Two-Sonnet B2B contract negotiation, n=20 paired seeds:

Condition Joint welfare (frontier ≈ 1.57, estimated)
Vanilla Sonnet (general prompt, no SNHP) 1.40
Pure SNHP-vs-SNHP (math only) 1.45
Sonnet + SNHP MCP tool (both sides) 1.59
Haiku + SNHP MCP tool (cross-model) 1.61

Lift from both sides adopting the SNHP tool: +0.186 joint welfare, sign test 18/20, p=0.0004. (The 1.59/1.61 slightly exceed the 1.57 frontier estimate — the frontier was estimated on a coarse grid, so treat these as "at the frontier," not "beyond it.") Cost: $0.025 per matchup at 2026-04 pricing.

4. The build-vs-buy test: SNHP vs a STRONG production prompt

Numbers (2) and (3) above are vs a general vanilla prompt. The sharper question — "why not just prompt the LLM well?" — is answered by running SNHP against a strong production prompt (snhp/llm_strong_baseline.py, whose system prompt even includes logrolling advice). On the 4-issue contract, Haiku+SNHP-tool vs Haiku+strong-prompt, n=12 paired seeds (python -m snhp.strong_baseline_headtohead, result committed at gametheory/server/static/strong_baseline_headtohead.json):

Metric Value
Utility margin (SNHP − strong baseline) +0.077, 95% CI [+0.039, +0.115] (excludes 0)
SNHP share of joint surplus 54% (CI [52%, 56%])
Sign test 8/12 positive, 0 negative

SNHP beats even a strong production prompt — but by roughly half the edge it shows against a weak one. Caveats: n=12, Haiku (not Sonnet), one contract domain; re-run at larger n / a stronger model to tighten the CI.

Network effect: the cooperation premium requires both sides to be SNHP-staked. Asymmetric matchups (Sonnet+SNHP vs vanilla Sonnet) lose 0.11 utility vs symmetric scaffolded play. Peer-mode advisor only fires when counterparty has posted a verifiable SNHP attestation.

Live demo (replay of the actual API trace at seed=42): https://snhp.dev/demo.html

Tournament rank (honest, per-market)

In the committed round-robin (leaderboard/results/leaderboard.json, n_rounds=20), SNHP's rank by average utility depends on the market:

Market (BATNA) SNHP rank Top of field
Buyer's market (asymmetric) #1 of 21 SNHP 0.508
Seller's market (asymmetric) #1 of 21 SNHP 0.520
Symmetric (neutral) 5th of 21 Logroller 0.525, The Closer, Cialdini, Principled, then SNHP 0.512

So SNHP is #1 in the asymmetric markets and mid-pack in the symmetric one — do not read this as "#1 overall." Its variance is the smallest in the field. At n_rounds=100 the symmetric field restabilizes further and Aspiration leads.

This NegMAS agent (snhp/negmas_agent.py) is a research artifact and is NOT the shipped product recommender — the product claims below are measured on the shipped code, not on this tournament.

See gametheory/evals/README.md for the eval/tuning runbook.

Tiers

  • Tier 1 — Negotiation: sell-side + buy-side recommenders, anchor-attack detection, cryptographic first-strike commit-reveal, LLM-drafted reply emails (paid).
  • Tier 2 — Auctions: Vickrey / first-price BNE / English ascending, Myerson optimal reserve, format recommendation, MC simulation.
  • Tier 3 — Mechanism design: Gale-Shapley, asymmetric Myerson optimal auction, Gallego-van Ryzin posted-price.

Tier 4 (coalition games) deferred until a paying buyer asks for it.


mcp-name: io.github.ryuxik/snhp-negotiation

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选