
Zopaf
io.github.rjandinoPublished by GitHub account rjandinov1.0.0Updated Oct 24, 2026
Negotiation math engine. Pareto frontier, counteroffer generation, zero LLM tokens.
Overview
A negotiation math engine that lets an assistant model deal issues, generate Pareto-optimal counteroffers and infer counterpart priorities.
- What you can do
- Create and inspect negotiation sessions, adding issues and numeric ranges with scoring scales, recording preferences and BATNA alternatives to set leverage and weights. Generate three iso-utility counteroffers to present together. Process the counterpart's reaction to infer their priorities and produce a refined round-two offer. Score a specific deal against the Pareto frontier, showing value captured and suggested trades.
- When to use it
- Useful when an assistant is helping with a structured negotiation — job offers, term sheets, real estate, vendor contracts or settlements — and needs consistent, math-based packages and leverage-aware offers rather than improvised numbers. The assistant still runs the conversation; the server supplies the optimization.
- Requirements
- A remote Streamable HTTP endpoint; no local package, account, API key or environment variable is declared. The client must support Streamable HTTP transport, and network access to the hosted service is needed.
Installation
In SourceWeft
- Open Zopaf in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.rjandino%2Fzopaf/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"zopaf": {
"type": "http",
"url": "https://zopaf-mcp-production.up.railway.app/mcp"
}
}
}README
Zopaf Negotiation Engine -- MCP Server
A negotiation math engine exposed as MCP tools that any AI agent can call. Zopaf computes Pareto frontiers, generates iso-utility counteroffers, and infers counterpart priorities from their reactions -- all through pure MILP optimization. Zero LLM tokens burned. The calling agent handles the conversation; Zopaf handles the math.
Quick Start
Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
Claude Code
Generic MCP Client
Connect to the Streamable HTTP endpoint:
Tools Reference
How It Works
-
Create session -- Initialize a new negotiation model with
create_session. -
Add issues -- Define the terms on the table with
add_issue. Each issue includes options ordered worst to best for the user (e.g., Salary:['$150K', '$160K', '$170K', '$180K']). -
Set ranges -- For numeric issues, call
set_issue_rangeto map values onto a 0-100 scoring scale. -
Record preferences -- Call
record_preferenceas you learn what the user cares about. Each call updates the internal weight model. -
Set BATNA -- Use
set_batnato record alternatives. The number and quality determines leverage strength and anchoring strategy. -
Generate 3 counteroffers -- Call
generate_counteroffersto produce three packages that are equally good for the user but structured differently. Present ALL THREE simultaneously. Never lead with one and fall back to another. -
Process counterpart response -- Call
process_counterpart_responsewith which package they preferred and what they pushed back on. The engine infers their hidden priorities. -
Get round-2 offer -- Returns a refined offer on the efficient frontier, with value split weighted by leverage.
Example: Job Offer Negotiation
The engine inferred that the counterpart cares most about equity (57% of their weight). The round-2 offer concedes on equity -- where it costs the user less -- and captures value on salary and signing bonus. Both sides improve. The user captures 75% of the surplus based on their strong BATNA.
Use Cases
- Job offers -- Salary, equity, bonus, title, remote work, start date, PTO
- VC term sheets -- Valuation, board seats, liquidation preferences, anti-dilution, pro-rata rights
- Real estate -- Price, closing date, contingencies, repairs, inclusions, rent-back periods
- Vendor contracts -- Price, SLA guarantees, payment terms, exclusivity, renewal clauses
- Salary negotiations -- Base pay, bonus structure, review timeline, scope of role
- Business partnerships -- Revenue split, IP ownership, decision rights, exit clauses, territory
- Legal settlements -- Monetary terms, non-disclosure terms, admission of liability, timeline
Why Zero Tokens?
Zopaf is a math engine, not a language model. It runs MILP optimization and combinatorial scoring -- operations that are computationally cheap but tedious for an LLM to attempt in-context.
Your agent's LLM handles the conversation with the user, asks the right questions, and explains the strategy. Zopaf handles the optimization -- computing Pareto frontiers, generating iso-utility packages, solving preference weights from revealed choices, and positioning offers on the efficient frontier.
You bring the brain. Zopaf brings the calculator.
Source: README.md at commit a28f797
Tools
0Version history
1- v1.0.0LatestSep 16, 2026
Score
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listedRequired15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.