Skip to main content
Glama
juliano09

rd-station-crm

by juliano09
README.md
# conectar-rd-station-mcp

Servidor MCP (Model Context Protocol) local que expõe ferramentas do **RD Station CRM**
(contatos, organizações, negócios/deals, pipelines, usuários) para clientes MCP como
**Claude Code** e **Codex CLI**.

Roda via stdio — o cliente (Claude/Codex) inicia o processo sozinho quando precisa,
não é um servidor que fica no ar o tempo todo.

## Pré-requisitos

- Um token de API do RD Station CRM (Configurações → Integrações → API na sua conta RD Station)
- Claude Code e/ou Codex CLI instalados, se quiser o registro automático

Não precisa ter o Node.js instalado antes — o script de setup verifica e instala
uma versão compatível (18+) via [nvm](https://github.com/nvm-sh/nvm) se necessário.

## Instalação rápida

```bash
npm run setup
```
(se ainda não tiver `npm`/Node, rode `bash scripts/setup.sh` direto)

Isso vai:
1. Checar se o Node.js 18+ está instalado — se não estiver (ou for uma versão antiga),
   instala via nvm automaticamente
2. Instalar as dependências (`npm install`)
3. Buildar o projeto (`npm run build`)
4. Criar o arquivo `.env` (a partir de `.env.example`) e pedir seu token do RD Station
5. Registrar o servidor como `rd-station-crm` no Claude Code e no Codex CLI, se
   encontrar os dois instalados na máquina

## Instalação manual (passo a passo)

Se preferir fazer na mão, ou se o script não encontrar o Claude/Codex automaticamente:

1. **Instale as dependências e builde**
   ```bash
   npm install
   npm run build
   ```

2. **Configure o token**
   ```bash
   cp .env.example .env
   ```
   Abra o `.env` e preencha:
   ```
   RD_STATION_TOKEN=seu_token_aqui
   ```

3. **Registre no Claude Code**
   ```bash
   claude mcp add rd-station-crm -s user -- node "$(pwd)/dist/index.js"
   ```
   Confirme com:
   ```bash
   claude mcp list
   ```
   Deve aparecer `rd-station-crm ... ✔ Connected`.

4. **Registre no Codex CLI**
   ```bash
   codex mcp add rd-station-crm -- node "$(pwd)/dist/index.js"
   ```
   Se o comando `codex` não existir no seu PATH, use o caminho do binário do app do
   ChatGPT/Codex (no Linux costuma ser `/usr/lib/chatgpt/resources/codex`) no lugar
   de `codex` no comando acima.

   Confirme com:
   ```bash
   codex mcp list
   ```

5. **Teste**
   Abra uma sessão nova do Claude Code ou do Codex (`claude` / `codex` no terminal)
   e peça algo como:
   > lista meus contatos do RD Station

   Se ele chamar a tool `rdstation_list_contacts` e trazer dados reais, está tudo certo.

## Importante sobre o app do ChatGPT (web/desktop)

Esse servidor roda **local, via stdio**, então funciona com Claude Code e Codex CLI.
O app do ChatGPT (Settings → Apps & Connectors → Developer mode) só aceita servidores
MCP **remotos, via HTTPS** — não é possível apontar para um script local. Para usar lá
seria necessário hospedar este servidor publicamente e trocar o transporte para HTTP,
o que este projeto não faz hoje.

## Ferramentas disponíveis

Contatos: `rdstation_list_contacts`, `rdstation_get_contact`, `rdstation_create_contact`,
`rdstation_update_contact`, `rdstation_delete_contact`

Organizações: `rdstation_list_organizations`, `rdstation_get_organization`

Negócios: `rdstation_list_deals`, `rdstation_get_deal`, `rdstation_create_deal`,
`rdstation_update_deal`, `rdstation_win_deal`, `rdstation_lose_deal`

Pipelines: `rdstation_list_deal_pipelines`, `rdstation_list_deal_stages`

Usuários: `rdstation_list_users`

## Desenvolvimento

Depois de alterar algo em `src/`, é preciso buildar de novo para o Claude/Codex
pegarem a mudança (eles executam `dist/index.js`, não o `.ts`):

```bash
npm run build
```

TDQS

A3.5/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct resource-action pair: contact CRUD, organization read, deal management, pipeline/stage listing, and user listing. Actions like win_deal and lose_deal are clearly separate from generic update_deal, so there is no real ambiguity.

Naming Consistency5/5

All tools share the rdstation_ prefix and follow a consistent snake_case verb_noun pattern (list_contacts, get_contact, update_deal, win_deal). The naming is predictable and makes the tool family easy to navigate.

Tool Count4/5

At 16 tools, the set is at the upper edge of the ideal range but each tool maps to a meaningful CRM operation. The breakdown across contacts, deals, organizations, pipelines, and users is reasonable, though it is slightly heavy.

Completeness3/5

Contacts have full CRUD coverage and deals cover the main lifecycle including win/lose, but organizations are read-only with no create/update/delete. There is also no deal deletion, which leaves notable lifecycle gaps for the stated CRM domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues