mcpField
R
rdstation-crm-mcp

rdstation-crm-mcp

Local
github.com/fernandoludvigBusiness & Marketing0Updated 12w ago

About rdstation-crm-mcp

rdstation-crm-mcp is an open-source MCP server for managing RD Station CRM contacts, deals, tasks, and notes, with pipeline health reports. It is designed for sales teams and AI agents, and accepts names for stages and other CRM entities instead of requiring their IDs.

Key features

  1. 01Search and manage contacts
  2. 02List, create, update, and close deals
  3. 03Manage deal tasks and notes
  4. 04Pipeline totals, win rate, and stalled-deal reports
  5. 05Resolve stages and other entities by name

Use cases

  1. 01Review pipeline stages and identify stalled deals
  2. 02Create follow-up tasks on deals
  3. 03Update deal stages and contact records

MCP support

It exposes RD Station CRM operations and pipeline reports as tools for MCP clients such as Claude. It supports local stdio and Streamable HTTP deployments.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"fernandoludvig-rdstation-crm": {
"command": "npx",
"args": [
"-y",
"rdstation-crm-mcp"
],
"env": {
"RDSTATION_CRM_TOKEN": "<RDSTATION_CRM_TOKEN>"
}
}
}
}
Run commandnpx -y rdstation-crm-mcp
Environment variables to set
RDSTATION_CRM_TOKENSecretRD Station CRM instance token (Profile > Products and integrations > Instance token)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmrdstation-crm-mcp0.2.0

Tools

12

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
pageintegerNoPage number (default 1)
emailstringNoExact email address to filter by
limitintegerNoResults per page (default 20, max 200)
phonestringNoExact phone number to filter by
querystringNoPartial name to search for (e.g. 'maria')

Details

From the project README

rdstation-crm-mcp

CI npm version License: MIT

An open-source MCP server for RD Station CRM — the leading CRM in Brazil and Latin America. Manage contacts, deals, tasks and notes, and get pipeline health reports, straight from Claude or any MCP-compatible client.

"How's my sales pipeline this month?" → stage-by-stage totals, win rate, and the deals going stale.

Demo: connecting to the server and running rdcrm_pipeline_overview against a real RD Station CRM account

Why

RD Station CRM is huge in the LatAm market, but had no open-source MCP server. This project connects it to the MCP ecosystem so AI agents can work your pipeline: qualifying leads, moving deals, scheduling follow-ups, and answering questions about your sales data in natural language.

Quick start

  1. Get your instance token in RD Station CRM: Profile → Products and integrations → Instance token.
  2. Add the server to your MCP client.

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "rdstation-crm": {
      "command": "npx",
      "args": ["-y", "rdstation-crm-mcp"],
      "env": {
        "RDSTATION_CRM_TOKEN": "your-instance-token"
      }
    }
  }
}

Claude Code:

claude mcp add rdstation-crm -e RDSTATION_CRM_TOKEN=your-instance-token -- npx -y rdstation-crm-mcp

That's it. Ask Claude something like "list my open deals" or "give me a pipeline overview".

Tools

ToolDescription
rdcrm_search_contactsSearch contacts by name, email or phone
rdcrm_get_contactContact details, including linked deals
rdcrm_upsert_contactCreate a contact, or update it if the email already exists
rdcrm_list_dealsList deals filtered by status, pipeline, stage, owner, dates
rdcrm_get_dealDeal details: stage, value, owner, contacts, products
rdcrm_create_dealCreate a deal — accepts stage by name, resolved automatically
rdcrm_update_dealMove stage, change owner, rating, close date, pause/resume
rdcrm_close_dealMark won or lost (lost reasons resolved by name)
rdcrm_list_tasksList tasks by deal, assignee, status, type, due date
rdcrm_create_taskCreate a task (call, email, meeting, whatsapp...) on a deal
rdcrm_add_noteAdd a note to a deal's timeline
rdcrm_pipeline_overviewPipeline health report: totals per stage, win rate, stalled deals
Design notes

These tools are designed for LLMs, not as a 1:1 API wrapper:

  • Names instead of IDs. Stages, pipelines, users and lost reasons can be passed by name; the server resolves them against the account and lists the valid options when something doesn't match.
  • Compact responses. List tools return one line per record with the fields that matter, plus explicit pagination hints. Large responses are truncated with guidance instead of flooding the context window.
  • Actionable errors. A 401 tells you which env var to check; an unknown stage lists every stage in every pipeline.
  • Aggregation where it counts. rdcrm_pipeline_overview answers the questions humans actually ask ("where are deals stuck?") with a single tool call.

Remote deployments (Streamable HTTP)

The default (rdstation-crm-mcp) runs over stdio for a single local user, with the token read once from RDSTATION_CRM_TOKEN. For a team-hosted or registry-listed deployment (e.g. Smithery), run the Streamable HTTP variant instead:

npx -y rdstation-crm-mcp-http

This starts an HTTP server (http://127.0.0.1:8080/mcp by default) implementing the MCP Streamable HTTP transport, with proper session lifecycle (initialize → Mcp-Session-Id → DELETE to close).

Because a hosted server can serve more than one user, there's no single implicit token: each session sends its own Authorization: Bearer <token> header on initialize. A RDSTATION_CRM_TOKEN env var still works as a fallback default for a single-tenant self-hosted setup where every caller shares one CRM account.

Env vars:

VarDefaultPurpose
PORT8080Port to listen on
HOST127.0.0.1Bind address — use 0.0.0.0 for containers/cloud
ALLOWED_HOSTS(unset)Comma-separated Host header allow-list (DNS-rebinding guard); recommended when binding to 0.0.0.0 without a reverse proxy in front
RDSTATION_CRM_TOKEN(unset)Default token used when a session sends no Authorization header
curl http://127.0.0.1:8080/health
# {"status":"ok","server":"rdstation-crm-mcp","sessions":0}

Development

git clone https://github.com/fernandoludvig/rdstation-crm-mcp.git
cd rdstation-crm-mcp
npm install
npm test              # unit tests (API mocked with msw)
npm run typecheck
npm run build
RDSTATION_CRM_TOKEN=xxx npx @modelcontextprotocol/inspector node dist/index.js

The HTTP layer (src/client/) is isolated from the tools, with retry and exponential backoff for 429/5xx built in.

Roadmap

  • Organizations and products tools
  • RD Station CRM API v2 support (OAuth) behind the same tool surface
  • Streamable HTTP transport for remote deployments
  • Publish to MCP registries (Glama, PulseMCP, Smithery)

Contributions welcome — open an issue first for anything non-trivial.

License

MIT © Fernando Ludvig

Not affiliated with or endorsed by RD Station. Uses the public RD Station CRM API v1.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.