Skip to main content
Glama
fernandoludvig

RD Station CRM MCP

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.

Related MCP server: pipedriver

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

Tool

Description

rdcrm_search_contacts

Search contacts by name, email or phone

rdcrm_get_contact

Contact details, including linked deals

rdcrm_upsert_contact

Create a contact, or update it if the email already exists

rdcrm_list_deals

List deals filtered by status, pipeline, stage, owner, dates

rdcrm_get_deal

Deal details: stage, value, owner, contacts, products

rdcrm_create_deal

Create a deal — accepts stage by name, resolved automatically

rdcrm_update_deal

Move stage, change owner, rating, close date, pause/resume

rdcrm_close_deal

Mark won or lost (lost reasons resolved by name)

rdcrm_list_tasks

List tasks by deal, assignee, status, type, due date

rdcrm_create_task

Create a task (call, email, meeting, whatsapp...) on a deal

rdcrm_add_note

Add a note to a deal's timeline

rdcrm_pipeline_overview

Pipeline 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 (initializeMcp-Session-IdDELETE 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:

Var

Default

Purpose

PORT

8080

Port to listen on

HOST

127.0.0.1

Bind 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.

Available Tools

12 tools
rdcrm_add_noteAdd Note to RD Station CRM DealA

Add a text note (annotation) to a deal's timeline.

The author can be given by user_id, by email/name in 'user', or omitted when the account has a single user.

Use when: "note on the Acme deal: client asked for a discount".

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe note content (plain text)
userNoAuthor by email or name (resolved automatically; omit if the account has a single user)
deal_idYesDeal to annotate
user_idNoAuthor user ID

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, so the mutation nature is largely established. The description adds author-resolution context and that the note goes to the deal timeline, but doesn't clarify whether the operation is additive/non-destructive beyond what annotations state, nor what happens on partial failure. It adds a moderate amount beyond structured data without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tight and efficient — roughly three sentences covering purpose, author options, and a concrete usage example. Every sentence earns its place; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with 100% schema coverage and explicit annotations, the description adds the key missing context: author resolution semantics and a practical use-case example. It does not explain return values, but with no output schema and a simple mutate operation, that's a minor gap. Fairly complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each param (text, user, deal_id, user_id) documented in the schema itself. The description adds the author-resolution logic (priority order, single-user omission), which is genuinely non-obvious value. However, most parameter meaning is already carried by the schema, so the baseline-3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the exact verb ('Add a text note/annotation to a deal's timeline') and resource (deal timeline). It is clearly distinct from sibling tools like list/create/update/close deal or task tools — none of which describe adding timeline notes. The scope is precise and immediately actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states author resolution rules (by user_id, by email/name in 'user', or omitted when single-user account) and provides an explicit 'Use when:' example with a concrete phrase. This gives clear guidance on when to invoke and how author parameters should be chosen, exceeding minimal expectations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_close_dealClose RD Station CRM Deal (Won/Lost)A

Mark a deal as won or lost. For lost deals, pass the reason by name (lost_reason) or ID (lost_reason_id) — names are resolved against the reasons configured in the account — plus an optional note.

Use when: "mark the Acme deal as won", "we lost the Beta deal because of price".

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoOptional note about why the deal was lost
deal_idYesDeal ID to close
outcomeYesWhether the deal was won or lost
lost_reasonNoLost reason by name, resolved against the account's configured reasons
lost_reason_idNoLost reason ID (only for outcome 'lost')

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, implying mutation without destruction. The description adds the context that lost_reason names are resolved against account-configured reasons, which is useful. However, it doesn't disclose what happens to open pipeline stages, whether closing is irreversible, or what the closed deal's resulting state looks like. With no destructiveHint and reasonable annotation coverage, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact—two sentences covering purpose and usage, plus example phrases. It's front-loaded with the core action and efficiently conveys the lost-reason workflow. Slight inefficiency exists in the redundant phrasing around lost_reason/lost_reason_id, which could be tightened, but overall it earns its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutation tool with no output schema, the description covers the essential custom logic (lost-reason resolution and optional note). It handles the two dynamic params well. However, it doesn't explain what result the tool returns (e.g., closed deal object, confirmation), what validation occurs on lost_reason names, or preconditions like whether the deal must be in an open state to be closed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 5 parameters at 100%, so baseline is 3. The description adds value by clarifying the relationship between lost_reason (by name) and lost_reason_id (by ID), and how names are resolved. It also ties the note parameter to why the deal was lost. This exceeds the baseline by explaining semantics beyond simple field labels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Mark a deal as won or lost.' It identifies the specific verb+resource (close/update deal status) and distinguishes the tool's purpose from siblings like rdcrm_update_deal and rdcrm_create_deal by focusing on the win/loss outcome state. The field guidance for lost deals adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete example phrases ('mark the Acme deal as won', 'we lost the Beta deal because of price') that signal when to invoke this tool. It also explains the lost-reason resolution mechanics (names vs IDs against account-configured reasons). However, it doesn't explicitly state when NOT to use this tool or name alternative tools (e.g., rdcrm_update_deal) for other deal modifications.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_create_dealCreate RD Station CRM DealA

Create a deal in a pipeline stage. Accepts the stage by ID or by name (stage_name, optionally with pipeline_name to disambiguate) — names are resolved automatically.

Optional: value (BRL), rating (1-5), owner (user_id or user by email/name), a contact to link (contact_email + contact_name), expected close date.

Use when: "create a deal for Acme in the Qualification stage worth R$5000".

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDeal name (e.g. 'Acme Corp - Annual plan')
userNoOwner by email or name (resolved automatically)
valueNoOne-time deal value in BRL
ratingNoDeal rating, 1 to 5 stars
user_idNoOwner user ID
stage_idNoTarget stage ID. Alternative: stage_name
stage_nameNoTarget stage name (e.g. 'Qualification'). Used when stage_id is not known
contact_nameNoName of the contact to link (required if contact_email is new)
contact_emailNoEmail of a contact to link
pipeline_nameNoPipeline name, to disambiguate stage_name when there are multiple pipelines
prediction_dateNoExpected close date (YYYY-MM-DD)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations correctly declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, matching the create operation. The description adds value beyond annotations by explaining automatic name resolution ('names are resolved automatically'), the stage-by-ID-or-name flexibility, and optional fields. It doesn't mention potential side effects like duplicate-creation behavior, but the openWorldHint and non-destructive annotations align with the described behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-organized: a sentence declaring purpose, a sentence listing optional fields grouped logically, and a concrete usage example. Zero wasted words, all information is useful for tool selection and invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (11 params, no output schema), the description covers the creation flow, parameter resolution strategy, and gives a worked example. It could mention return value format (no output schema), but the description is largely complete for a create operation where the caller likely cares about success/failure and the created deal's ID. Annotations cover the behavioral side.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 11 parameters. The description adds value by explaining the resolution logic for stage_name (with pipeline_name to disambiguate), user (by email/name), and clarifying relationships between parameters (e.g., contact_name required if contact_email is new). This goes beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: 'Create a deal in a pipeline stage.' It specifies the verb (create), resource (RD Station CRM deal), and location (pipeline stage). It distinguishes from siblings by making clear it's the creation tool (vs rdcrm_update_deal, rdcrm_get_deal, rdcrm_close_deal).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage example ('create a deal for Acme in the Qualification stage worth R$5000') and explains when to use it. However, it doesn't explicitly state when NOT to use it or name alternatives for edge cases (e.g., when to update vs create). The example context makes usage reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_create_taskCreate RD Station CRM TaskA

Create a task on a deal: subject, type (call, email, meeting, task, lunch, visit, whatsapp), due date and time, assignee. Note: free-plan accounts only allow type 'task'; other types return a 403 (paid feature).

The assignee can be given by user_id, by email/name in 'user' (resolved automatically), or omitted when the account has a single user.

Use when: "schedule a follow-up call on the Acme deal for Friday 10am".

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDue date (YYYY-MM-DD)
hourNoDue time (HH:MM, default 09:00)09:00
typeNoTask type (default 'task')task
userNoAssignee by email or name (resolved automatically; omit if the account has a single user)
notesNoExtra notes for the task
deal_idYesDeal the task belongs to
subjectYesTask subject (e.g. 'Follow-up call')
user_idNoAssignee user ID

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds valuable context beyond annotations: mentions the 403 error on paid plan types for free accounts and explains assignee resolution behavior. It doesn't describe what happens if assignee is required but not provided on multi-user accounts or the response format, but since there's no output schema, some gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently organized into two compact paragraphs plus a usage example. Every sentence carries information - the free-plan caveat, assignee resolution, and the when-to-use example are all distinct and relevant. Slightly verbose in the param enumeration at the start, but overall tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create tool with 8 params, 100% schema coverage, and no output schema, the description covers the critical operational caveats (free-plan 403, assignee resolution, default type/hour). It doesn't explicitly describe the response/confirmation behavior, but for a non-destructive create operation the practical gaps are minor given strong schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining assignee resolution semantics that the schema doesn't capture (user vs user_id vs omitted, single-user account auto-resolution). It also clarifies that type 'task' is the only free-plan option. The notes about assignee disambiguation go beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Create a task on a deal'), the resource (deal tasks), and enumerates the key fields (subject, type, due date/time, assignee). It distinguishes itself from siblings by being the creation tool for tasks within deals, contrasted with rdcrm_list_tasks and rdcrm_add_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance with a concrete natural-language example ('schedule a follow-up call on the Acme deal for Friday 10am'). It also discloses meaningful constraints: free-plan accounts only allow 'task' type, and assignee resolution rules (user_id, user by email/name, or omitted for single-user accounts). This is strong exclusion/guidance native language.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_get_contactGet RD Station CRM ContactA
Read-only

Get full details of one contact by ID: all emails and phones, title, notes, and the deals linked to the contact with their status (open/won/lost).

Get the contact ID from rdcrm_search_contacts first.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID (from rdcrm_search_contacts)

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe read operation with potential for new info. The description adds value by enumerating exactly what fields/data the response contains (emails, phones, title, notes, linked deals with status), which is useful behavioral context beyond the annotations. However, it doesn't disclose response format, pagination/limits for the deals list, or behavior when the contact doesn't exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero waste. The first sentence states the purpose and enumerates return data efficiently; the second provides a crucial prerequisite. Perfectly proportioned for a focused single-ID retrieval tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with strong annotations (readOnlyHint, openWorldHint) and full schema coverage, the description is nearly complete. It clearly states the purpose, return contents, and prerequisite. The only minor gap is not describing error behavior (e.g., non-existent contact) and not specifying the format of the returned deals. But given the tool's simplicity, this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter contact_id already has a description noting its origin ('from rdcrm_search_contacts'). The description reinforces this cross-reference by stating 'Get the contact ID from rdcrm_search_contacts first.' While it doesn't add much beyond the schema, the parameter is simple (a plain ID string) and adequately documented. The description adds modest value on top of full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the exact purpose: 'Get full details of one contact by ID' and enumerates the specific fields returned (emails, phones, title, notes, linked deals with status). It clearly distinguishes from sibling tools like rdcrm_get_deal (which fetches deals, not contacts) and rdcrm_search_contacts (which searches/list, not retrieves a full single record).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the prerequisite: 'Get the contact ID from rdcrm_search_contacts first.' This clearly instructs when/how to use this tool versus alternatives — you must first search to obtain the ID, implying this is a follow-up retrieval after discovery. This is excellent usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_get_dealGet RD Station CRM DealA
Read-only

Get full details of one deal by ID: status, stage, value, owner, rating, dates, linked contacts (with email/phone) and products.

ParametersJSON Schema
NameRequiredDescriptionDefault
deal_idYesDeal ID (from rdcrm_list_deals or rdcrm_get_contact)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe read operation. The description adds value by enumerating the specific fields returned (status, stage, value, owner, rating, dates, contacts with email/phone, products) which is useful behavioral context beyond the annotations. However, it doesn't describe response format details like pagination, nested structures, or failure behavior, which with openWorldHint could matter. With annotations covering the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the core action ('Get full details of one deal by ID') and efficiently enumerates the returned fields. Zero waste, every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-deal GET tool with one parameter (100% schema coverage), read-only annotations, and no output schema, the description provides the key completeness elements: what it does, scope (one deal), and what fields you get back. It lacks a mention of error/not-found behavior, and the absence of an output schema means the field list in the description partially compensates. Given the low complexity, this is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the deal_id parameter is already documented in the schema with its own description. The description adds marginal value by noting deal_id comes from rdcrm_list_deals or rdcrm_get_contact, offering provenance context. There is only one parameter, and no enums or nested objects. The baseline of 3 applies since the schema does the heavy lifting, and the description adds modest extra context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get full details of one deal by ID' with a specific verb ('get'), resource ('deal'), and identifier ('by ID'). It lists the exact fields returned (status, stage, value, owner, rating, dates, contacts, products), distinguishing it from sibling tools like rdcrm_list_deals which retrieves multiple deals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys this is for retrieving a single full deal by ID, which differentiates it from rdcrm_list_deals (multiple deals). It does not explicitly state when NOT to use it or name alternatives, but the singular 'one deal by ID' phrasing provides clear context. The deal_id param also references sourcing from rdcrm_list_deals or rdcrm_get_contact, giving useful workflow context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_list_dealsList RD Station CRM DealsA
Read-only

List deals with filters: status (open/won/lost/all, default open), pipeline, stage, owner, name, creation date range. Sorted by most recent first.

Returns one line per deal: name, id, stage, value, status, owner, last update. Use rdcrm_get_deal for full details.

Use when: "what deals are open?", "deals lost this month", "show João's pipeline".

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by deal name
pageNoPage number (default 1)
limitNoResults per page (default 20, max 200)
statusNoDeal status filter (default 'open')open
user_idNoFilter by owner (user ID)
stage_idNoFilter by stage ID
pipeline_idNoFilter by pipeline ID
created_afterNoOnly deals created after this date (YYYY-MM-DD)
created_beforeNoOnly deals created before this date (YYYY-MM-DD)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safe-read profile is covered. The description adds useful behavioral detail: default status 'open', sorting by most recent first, and that it returns one line per deal. However, it doesn't disclose pagination behavior or field/return format beyond the return summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, information-dense blocks: filters+sorting, return format summary, and usage examples. Compact and well-structured. Minor redundancy: the default status 'open' appears twice (in the filter sentence and in examples), but overall clean and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero required params, an openWorld read tool, and a 100%-covered schema, the description is nearly complete. It covers filters, defaults, sorting, return format, and when to use. The only gap is no explicit depth on pagination limits beyond what the schema provides, but this is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — every one of the 9 parameters has a clear schema description. The tool description adds a default ('open') reiterated in the schema, and the date-format (YYYY-MM-DD) that matches the schema descriptions. Baseline 3 is appropriate since the schema already carries the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('List deals') with clear filters enumerated (status, pipeline, stage, owner, name, date range) and sorting behavior. It clearly distinguishes from siblings by explicitly pointing to rdcrm_get_deal for full details and highlighting this is the list operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear when-to-use examples ('what deals are open?', 'deals lost this month', 'show João's pipeline'). It distinguishes from rdcrm_get_deal (full details) but doesn't explicitly exclude alternatives like rdcrm_pipeline_overview, so it misses the 'when not to use' dimension.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_list_tasksList RD Station CRM TasksA
Read-only

List tasks with filters: deal, assignee, status (pending/done/all, default pending), type (call, email, meeting, task, lunch, visit, whatsapp) and due-date range.

Returns one line per task: status, subject, id, type, due date, assignee, deal.

Use when: "what are my pending tasks?", "overdue follow-ups this week".

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
typeNoTask type filter
limitNoResults per page (default 20, max 200)
statusNoTask status (default 'pending')pending
deal_idNoFilter tasks of one deal
user_idNoFilter by assignee (user ID)
due_afterNoTasks due after this date (YYYY-MM-DD)
due_beforeNoTasks due before this date (YYYY-MM-DD)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only safety profile is covered by structured data. The description adds the flat one-line-per-task output format which is genuinely useful behavioral context beyond the schema. It doesn't specify pagination behavior or the total count semantics, but the annotations carry the main safety burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: first sentence lists filters, second sentence gives the return shape, third provides use-case triggers. Zero wasted words, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a filtered-list read tool with 100% schema coverage, readOnlyHint=true, and no output schema, the description is appropriately complete. It covers what the tool does, what it returns, and when to use it. The only minor gap is no mention of what happens when no tasks match (empty result behavior), but this is a low-stakes list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 8 parameters are already well-documented in the input schema (each has a description and most have defaults/enums). The description adds marginal value by summarizing the filters collectively but doesn't add format or example details beyond what the schema provides. The due_after/due_before date format (YYYY-MM-DD) is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource ('List tasks') and immediately lists the full set of filter dimensions (deal, assignee, status, type, due date). The return format is clearly described ('one line per task: status, subject, id, type, due date, assignee, deal'), which distinguishes it from sibling deal/contact list tools like rdcrm_list_deals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The reference phrases ('what are my pending tasks?', 'overdue follow-ups this week') provide concrete usage context. However, there are no explicit exclusions or comparisons against alternative tools (e.g., when to use create_task vs list_tasks is obvious, but no when-not guidance is given). The natural-language triggers serve as good guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_pipeline_overviewRD Station CRM Pipeline OverviewA
Read-only

Aggregated health report of a sales pipeline: open deal count and value per stage (in funnel order), won/lost counts and win rate over a recent window (default 30 days), and stalled deals with no updates for N days (default 14).

Also the fastest way to discover the account's pipelines and stage names/IDs (errors list all options).

Use when: "how's my pipeline?", "where are deals stuck?", "sales summary for this month".

ParametersJSON Schema
NameRequiredDescriptionDefault
stalled_daysNoA deal counts as stalled after this many days without updates (default 14)
pipeline_nameNoPipeline name. Optional when the account has a single pipeline
closed_period_daysNoWindow in days for won/lost stats (default 30)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses defaults (30-day window, 14-day stall threshold), the funnel-order output, and the error behavior ('errors list all options' when pipeline needs disambiguation). Annotations already mark it readOnly (safe read) and openWorld (account state can change), and the description adds contextual depth without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight paragraphs: what it returns, plus what it's best for, plus quick use-case prompts. Zero wasted words; front-loaded with the core functionality and defaults. Very efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only report tool with no output schema, it describes return contents, defaults, disambiguation behavior, and typical user intent. The one minor gap is that it doesn't describe return format/structure fields, but for an aggregate report the narrative coverage is strong. No output schema means description must carry some burden, which it does reasonably well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — all three parameters have descriptions in the JSON schema itself (stalled_days, pipeline_name, closed_period_days). The description adds context like defaults for the window and stalled period, but these largely mirror the schema's default values. Baseline 3 is appropriate since the schema already carries the semantic weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Aggregated health report of a sales pipeline' with detailed breakdown of exactly what it returns (open deal count/value per stage, won/lost counts, win rate, stalled deals). Clearly distinguishes itself from siblings like list_deals (which lists individual deals) by being an aggregate health report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases ('how's my pipeline?', 'where are deals stuck?', 'sales summary for this month') and a clear when-to-use directive: 'fastest way to discover the account's pipelines and stage names/IDs'. This effectively orients agents on when to choose this over deal-level siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_search_contactsSearch RD Station CRM ContactsA
Read-only

Search contacts in RD Station CRM by partial name, exact email or exact phone.

Returns one line per contact: name, id, primary email, primary phone, job title. Use the returned id with rdcrm_get_contact for full details (including linked deals).

Use when: "find Maria's contact", "do we have someone with email x@y.com?". Don't use when: you want to create or edit a contact (use rdcrm_upsert_contact).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
emailNoExact email address to filter by
limitNoResults per page (default 20, max 200)
phoneNoExact phone number to filter by
queryNoPartial name to search for (e.g. 'maria')

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the output format ('one line per contact: name, id, primary email, primary phone, job title') and explains how the returned id flows into rdcrm_get_contact for full details. While readOnlyHint is already declared in annotations, the description adds value by explaining the line-per-contact output structure and the linking behavior with deals. It doesn't cover pagination behavior details, but the annotations already cover the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: a single clear sentence stating the purpose, followed by an output-format sentence and two concise usage guidance sentences. Every line earns its place with zero waste or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with 100% schema coverage, five well-documented optional parameters, and clear output-format disclosure, the description is largely complete. It also gives the usage context and alternative-tool pointers. Minor gap: pagination semantics (page/limit interplay) aren't explained in the description, though schema covers the parameters themselves. No output schema exists to offload return-value explanation, but the in-description line format compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 5 parameters are documented in the schema. The description adds marginal value by mapping query to partial-name and email/phone to exact-match, which reinforces the schema descriptions but doesn't add meaningfully beyond them. The baseline 3 is appropriate given full schema coverage does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Search contacts in RD Station CRM') and explicitly defines the search semantics ('by partial name, exact email or exact phone'). It clearly distinguishes itself from siblings by noting the use of the returned id with rdcrm_get_contact, differentiating the search-and-list function from the full-detail and upsert operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit 'Use when:' guidance with concrete examples ('find Maria's contact', 'do we have someone with email x@y.com?') and explicit 'Don't use when:' exclusions pointing to an alternative tool (rdcrm_upsert_contact for create/edit). This meets the highest bar for usage differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_update_dealUpdate RD Station CRM DealA

Update a deal: move it to another stage (by ID or name), change owner, rename, set rating, expected close date, or pause/resume (hold).

Use when: "move the Acme deal to Negotiation", "assign this deal to Maria". Don't use when: marking a deal won or lost (use rdcrm_close_deal).

ParametersJSON Schema
NameRequiredDescriptionDefault
holdNotrue pauses the deal, false resumes it
nameNoNew deal name
userNoNew owner by email or name
ratingNoNew rating, 1 to 5
deal_idYesDeal ID to update
user_idNoNew owner user ID
stage_idNoMove the deal to this stage ID
stage_nameNoMove the deal to this stage name (alternative to stage_id)
pipeline_nameNoPipeline name, to disambiguate stage_name
prediction_dateNoNew expected close date (YYYY-MM-DD)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare non-readOnly (mutation) and non-destructive, which the description aligns with by describing mutations. The description adds useful operational context like stage-by-ID-or-name flexibility and pause/resume semantics. With good annotation coverage, the burden is lower, and the description adds genuine context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences plus a two-line usage block. Every sentence earns its place: scope enumeration, when-to-use, and when-not-to. Zero filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, no output schema, and non-readOnly annotation, the description covers the main behavior patterns well. It doesn't explain return values, but no output schema exists and the tool is a standard update that likely returns the deal or success. Slightly more could be said about what happens on invalid interactions, but overall complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so per rubric baseline is 3. The description adds value by clarifying the fluidity between stage_id and stage_name (with pipeline_name to disambiguate), and the hold boolean semantics (true pauses, false resumes), plus prediction_date explicit format (YYYY-MM-DD). This supplements the schema meaningfully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Update a deal' with specific enumerations of what can be updated (stage, owner, name, rating, expected close date, pause/resume). Strongly distinguishes from sibling rdcrm_close_deal which handles won/lost outcomes, and from create/get which handle other lifecycle stages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when-to-use examples ('move the Acme deal to Negotiation', 'assign this deal to Maria') and an explicit don't-use exclusion that names the alternative tool (rdcrm_close_deal for win/loss). This is exemplary usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdcrm_upsert_contactCreate or Update RD Station CRM ContactA
Idempotent

Create a contact, or update it if one already exists with the given email (matched by exact email).

Provide at least email and name. Phone, job title and notes are optional. Returns the contact id.

Use when: "add João (joao@acme.com) to the CRM", "update Maria's phone".

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesContact full name
emailYesContact email. Used to find an existing contact before creating a new one
notesNoFree-form notes about the contact
phoneNoPhone number (e.g. '+55 48 99999-0000')
titleNoJob title (e.g. 'Head of Sales')

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the mutation and idempotency are covered structurally. The description adds value by explaining the upsert semantics (match by exact email before creating) and that it returns the contact id. It could go further by noting whether existing fields are overwritten or merged, but the core behavioral traits are well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core upsert behavior in the first sentence, and every sentence earns its place. The usage-example phrases are brief and concrete. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-param flat tool with 100% schema coverage, required fields stated, idempotency and non-destructiveness declared via annotations, and no output schema expected (though it mentions returning contact id), the description is largely complete. It might benefit from noting partial-update semantics regarding omitted optional fields, but overall it's sufficient for effective agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 5 parameters are described in the schema. The description adds useful supplementary semantics by clarifying that email is the matching key for upsert behavior, and that phone/title/notes are the optional fields being updated. It reinforces the required email+name constraint. A small gap: it doesn't clarify how the update interacts with omitted optional fields (whether they're preserved or cleared).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (create or update), resource (RD Station CRM contact), and the matching criteria (exact email). It distinguishes itself from siblings like rdcrm_search_contacts and rdcrm_get_contact by being the mutation/upsert tool, and explicitly mentions it returns the contact id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use guidance with concrete examples ("add João to the CRM", "update Maria's phone"). It also explicitly states requirements (at least email and name) and notes which fields are optional, giving the agent a clear decision framework for invoking this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updatesv0.1.0
    • First observedrdcrm_add_note
    • First observedrdcrm_close_deal
    • First observedrdcrm_create_deal
    • First observedrdcrm_create_task
    • First observedrdcrm_get_contact
    • First observedrdcrm_get_deal
    • First observedrdcrm_list_deals
    • First observedrdcrm_list_tasks
    • First observedrdcrm_pipeline_overview
    • First observedrdcrm_search_contacts
    • First observedrdcrm_update_deal
    • First observedrdcrm_upsert_contact

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct resource-action combination: search/get/upsert for contacts, list/get/create/update/close for deals, list/create for tasks, add for notes, and overview for reporting. There is no overlap—rdcrm_get_contact vs rdcrm_get_deal are clearly separated by resource, and update_deal explicitly defers close operations to close_deal, preventing confusion.

Naming Consistency4/5

The tools follow a highly consistent rdcrm_<resource>_<verb> pattern (rdcrm_search_contacts, rdcrm_get_deal, rdcrm_create_task) throughout. The only minor deviation is rdcrm_pipeline_overview and rdcrm_add_note, which use different verb styles (overview vs get/list, add vs create) rather than strictly following the verb_noun pattern.

Tool Count5/5

12 tools is well within the sweet spot for a CRM server covering contacts, deals, tasks, notes, and pipeline reporting. Each tool serves a clearly identifiable purpose in the sales workflow, and none feel redundant. The count feels right-sized for the domain.

Completeness4/5

The surface covers the full contact lifecycle (search/get/upsert), the deal lifecycle (list/get/create/update/close), plus tasks, notes, and pipeline analytics—strong coverage. Minor gaps exist: there is no tool to delete a contact or task, no tool to update a task (e.g., mark done), and no way to unlink a contact from a deal. These are workable gaps, not dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

  • API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.

  • MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.

  • The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.

  • The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Servidor MCP para integração com o Clint CRM. Gerencie contatos, negócios, tags, organizações e toda a configuração do seu CRM diretamente através de assistentes de IA compatíveis com MCP.
    27
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Pipedrive API v2, enabling management of deals, persons, organizations, products, activities, and pipelines through natural language in MCP clients like Cursor and Claude Desktop.
    93
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A production-ready MCP server that exposes the Salesmate CRM to Claude Desktop, enabling search, update, and creation of contacts, deals, tasks, notes, and activities.
    8
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for GoHighLevel sub-accounts, enabling management of CRM contacts, pipelines, calendars, invoices, and more via natural language.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fernandoludvig/rdstation-crm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server