Dublr
Docs API MCP Dashboard

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.

What is MCP? Model Context Protocol (MCP) is an open standard that lets AI assistants call external tools and read structured data. The Dublr MCP server exposes your Dublr account as tools and resources that any MCP-compatible client can use.

Supported clients

Claude Desktop
Supported
Cursor
Supported
⟨⟩
Windsurf
Supported
Claude Code
Supported
VS Code
Coming soon
Custom clients
Via stdio or HTTP/SSE

Getting started

  1. Install the server

    The Dublr MCP server is distributed as an npm package.

    npm install -g @dublr/mcp-server
  2. 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_..."
          }
        }
      }
    }
  3. 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.

  4. Try it

    Ask Claude: "Use Dublr to practice how I'd ask my manager for a raise." Claude will use the dublr_negotiate tool 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.

tool dublr_negotiate Start a negotiation session

Creates a new Negotiate mode session and returns the persona's opening message. Use this to begin a negotiation practice conversation.

ParameterTypeDescription
topicstringThe negotiation topic (e.g. "salary increase", "contract renewal").
goalstring, optionalThe outcome you're trying to achieve.
personastring, optionalPersona 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"
})
tool dublr_survey Start a survey session

Creates a new Survey mode session with a synthetic population. Use this to test a message, policy, or proposal against a target community.

ParameterTypeDescription
messagestringThe statement or message to test.
communitystring, optionalTarget community: urban, rural, policy, business, healthcare. Default: general.
population_sizeinteger, optionalNumber of synthetic respondents. Default: 25, range: 5–100.
tool dublr_message Send a message in an active session

Sends a message to an active session (negotiate or survey) and returns the response, metrics, and any coaching notes.

ParameterTypeDescription
session_idstringThe session ID returned by dublr_negotiate or dublr_survey.
contentstringYour message.
tool dublr_results Get session results and metrics

Retrieves the full result object for a completed or in-progress session, including all metrics, scores, and distribution data.

ParameterTypeDescription
session_idstringThe session ID to retrieve results for.
include_transcriptboolean, optionalInclude 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.

resource dublr://sessions List all sessions

Returns the full list of your Dublr sessions with metadata (mode, topic, status, created date, summary metrics). Useful for referencing past sessions in conversation.

resource dublr://sessions/{id}/transcript Full transcript for a session

Returns the complete message-by-message transcript for a session, including per-message metric snapshots and coaching notes.

resource dublr://personas List available personas

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: [...] }
HTTP/SSE transport: The Dublr MCP server also supports remote connections over HTTP/SSE for environments where running a local process isn't possible. Set DUBLR_MCP_TRANSPORT=sse and point your client to https://mcp.dublr.ai/sse.