MCP Server
Use Dublr as a tool inside Claude, Cursor, Windsurf, and any MCP-compatible client. Run negotiations and surveys directly from your AI assistant without switching context.
Supported clients
Getting started
-
Install the server
The Dublr MCP server is distributed as an npm package.
npm install -g @dublr/mcp-server
-
Add to your MCP client config
In Claude Desktop, edit
~/Library/Application Support/Claude/claude_desktop_config.json:{ "mcpServers": { "dublr": { "command": "dublr-mcp", "env": { "DUBLR_API_KEY": "dbl_sk_..." } } } } -
Restart your client
Restart Claude Desktop (or your MCP client). The Dublr tools will appear in the tools panel and Claude will automatically use them when relevant.
-
Try it
Ask Claude: "Use Dublr to practice how I'd ask my manager for a raise." Claude will use the
dublr_negotiatetool to start a session automatically.
Tools reference
Tools are actions the AI can call. The Dublr MCP server exposes four tools covering session creation, messaging, and results retrieval.
Creates a new Negotiate mode session and returns the persona's opening message. Use this to begin a negotiation practice conversation.
| Parameter | Type | Description |
|---|---|---|
topic | string | The negotiation topic (e.g. "salary increase", "contract renewal"). |
goal | string, optional | The outcome you're trying to achieve. |
persona | string, optional | Persona preset: tough, collaborative, skeptical. Default: balanced. |
// Example call from Claude dublr_negotiate({ topic: "Asking for a 15% salary increase", goal: "Get a commitment to revisit salary in the next review cycle", persona: "skeptical" })
Creates a new Survey mode session with a synthetic population. Use this to test a message, policy, or proposal against a target community.
| Parameter | Type | Description |
|---|---|---|
message | string | The statement or message to test. |
community | string, optional | Target community: urban, rural, policy, business, healthcare. Default: general. |
population_size | integer, optional | Number of synthetic respondents. Default: 25, range: 5–100. |
Sends a message to an active session (negotiate or survey) and returns the response, metrics, and any coaching notes.
| Parameter | Type | Description |
|---|---|---|
session_id | string | The session ID returned by dublr_negotiate or dublr_survey. |
content | string | Your message. |
Retrieves the full result object for a completed or in-progress session, including all metrics, scores, and distribution data.
| Parameter | Type | Description |
|---|---|---|
session_id | string | The session ID to retrieve results for. |
include_transcript | boolean, optional | Include full message transcript. Default: false. |
Resources reference
Resources are read-only structured data the AI can access. The Dublr MCP server exposes three resource types.
Returns the full list of your Dublr sessions with metadata (mode, topic, status, created date, summary metrics). Useful for referencing past sessions in conversation.
Returns the complete message-by-message transcript for a session, including per-message metric snapshots and coaching notes.
Returns all available personas with their role, behavioral profile, and typical use cases.
Example workflow
Here's how Claude uses the Dublr MCP server end-to-end when you ask it to help you prepare for a difficult conversation:
// Claude receives: "Help me practice telling my manager I'm looking at other offers." // 1. Claude calls dublr_negotiate to set up the session → dublr_negotiate({ topic: "Telling manager about competing offers", persona: "collaborative" }) ← { session_id: "ses_01HZ...", opening_message: "I appreciate you being direct. Walk me through where you are." } // 2. Claude relays the opening and lets you respond naturally in conversation // 3. Claude calls dublr_message with your reply → dublr_message({ session_id: "ses_01HZ...", content: "I've had two inbound conversations this week..." }) ← { response: "...", metrics: { flexibility: 0.7, effectiveness: 0.82 }, coaching_note: "Good transparency..." } // 4. After a few rounds, Claude calls dublr_results for a debrief → dublr_results({ session_id: "ses_01HZ...", include_transcript: true }) ← { summary_score: 0.76, strengths: [...], improvement_areas: [...] }
DUBLR_MCP_TRANSPORT=sse and point your client to https://mcp.dublr.ai/sse.