Negotiate Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Negotiate Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Model Context Protocol (MCP) server for the [negotiate.v1](https://github.com/sanjana-pier39/pier39-skills/blob/main/PROTOCOL.md) protocol. Once installed in Claude Desktop, Cowork, Claude Code, or any other MCP-aware client, your Claude gains five native tools for negotiating with any negotiate.v1-compliant store.
| Tool | Purpose |
|---|---|
discover_store(domain) | Probe a domain to check if it's negotiable. Returns the protocol descriptor. |
list_products(domain) | Enumerate negotiable products at the store. |
start_negotiation(domain, product_id) | Open a chat session with the merchant agent. |
send_message(next_url, message) | Send one shopper turn. |
read_history(history_url) | Read the running history of a session. |
The agent uses these like a human would use a browser: discover the store, pick a product, start a chat, send turns until the deal closes.
mcp-name: io.github.sanjana-pier39/negotiate-mcp
The recommended path uses uv — no virtualenv plumbing, picks the right Python automatically.
# install uv if you don't have it (macOS):
brew install uv
# then point Claude Desktop / Cowork / Claude Code at it (see below).
# uvx will install the package the first time it's invoked.If you'd rather use plain pip:
pip install negotiate-mcp~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonmcpServers (creating the file if it doesn't exist): {
"mcpServers": {
"negotiate-agent": {
"command": "uvx",
"args": ["negotiate-mcp"]
}
}
}See claude_desktop_config.example.json.
If you installed with plain pip instead of uv, replace the command/args block with:
"command": "negotiate-mcp",
"args": []Same negotiate-mcp command. Add it to the corresponding MCP config in those clients (consult their docs for exact paths). The tool surface is identical.
Once installed, in a fresh chat:
Negotiate for a Dyson HP07 at negotiate.pier39.ai. Try to get it under $500. Bonus points for the engraved gift box.
Claude will call discover_store("negotiate.pier39.ai"), find the HP07 in the product list, call start_negotiation, then drive the conversation through send_message until closed: true. No prompt acrobatics needed.
# Run the server on stdio:
uvx negotiate-mcp
# Or, if you've used pip:
python -m negotiate_mcpMost useful when paired with the mcp CLI to inspect tool definitions and exercise them by hand.
The connector works against any negotiate.v1-compliant store, not just the Atlas reference (negotiate.pier39.ai). As stores adopt the protocol, just point your shopper agent at their domain — the same five tools work everywhere.
See PROTOCOL.md for the full spec.
git clone https://github.com/sanjana-pier39/negotiate-mcp
cd negotiate-mcp
pip install -e .
python -m negotiate_mcp # runs on stdioTo publish a new version, see PUBLISH.md.
MIT.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.