CRM

io.github.mcp-dirPublished by GitHub account mcp-dirv0.1.0Updated Oct 24, 2026

Your own CRM, fully customizable and agent-driven. Start with contacts, companies and a sales pipeli

Overview

AI-generated overview

A remote CRM server that lets an assistant manage contacts, companies, deals and custom objects, including schema, records, relations, kanban stages and files.

What you can do
  • Describe and manage the CRM schema: list objects, inspect fields, create custom objects and add, edit or remove custom fields
  • Create, read, update, delete and text-search records in any object, with filters, sorting and pagination
  • Link and unlink records through relation fields, resolve related records, and move records between kanban stages
  • Upload files from a URL or via presigned upload, list, inspect, download, delete, publish and unpublish them
  • Check storage usage and list the CRM accounts connected to the install
  • Platform helpers: version info, bug reporting, connection status, toolkit state, marketplace search and token login
When to use it
Useful when an assistant should work directly with a CRM: looking up or creating contacts and companies, updating deals and pipeline stages, or building a custom object model and attaching files without leaving the chat.
Requirements
A remote streamable HTTP endpoint; no packages, environment variables or headers are declared. The authenticate tool describes logging in through the browser and supplying an access token, either as an Authorization Bearer header or per session. A CRM account must be connected.
Before you install
Tools create, update and delete records, objects, fields and files, including bulk operations and deleting a custom object together with all its records. Files can be made publicly reachable by URL until unpublished. Storage and egress are metered and billed. The authenticate tool handles an access token, and report_bug asks for recent conversation messages.

Installation

In SourceWeft

  1. Open CRM in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.mcp-dir%2Fcrm-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "crm": {
      "type": "http",
      "url": "https://api.mcp.ai/p_crm"
    }
  }
}

README

This repository has no README.

Tools

36

crm_describe

Descreve o schema do CRM: todos os objetos (contact, company, deal e quaisquer custom) com seus campos (key, tipo, obrigatório, opções, relações) e o kanban. CHAME ISTO PRIMEIRO para saber quais objetos/campos existem antes de criar/ler registros.

Parametersaccount

crm_list_objects

Lista os objetos do CRM (key, rótulo, módulo, kanban). Versão enxuta do crm_describe, sem os campos.

Parametersaccount

crm_create_records

Cria um registro (ou vários) de um objeto. Passe `object` (ex.: 'contact', 'deal') e `data` (objeto JSON com os campos por key). Para vários, use `records` (array JSON de {data}).

Parametersdataobjectrequiredaccountrecordsmetadata

crm_list_records

Lista registros de um objeto, com filtro/ordenação/paginação. `filter` é um objeto JSON: {campo: valor} ou {campo: {op: valor}} (ops: eq ne gt gte lt lte in nin contains exists).

Parameterssortlimitfilterobjectrequiredoffsetaccount

crm_get_records

Busca um ou mais registros de um objeto por id.

Parametersidsrequiredobjectrequiredaccount

crm_update_records

Atualiza um registro (merge parcial) por id. Passe `object`, `id` e `data` (só os campos a mudar; null apaga o campo). Para vários, use `updates` (array JSON de {id, data}). Bulk support: accepts ids for batched execution.

Parametersididsdataobjectrequiredaccountupdatesmetadata

crm_delete_records

Remove um ou mais registros de um objeto por id.

Parametersidsrequiredobjectrequiredaccount

crm_define_object

Cria um OBJETO custom no CRM (além de contact/company/deal) e ganha CRUD/API automático. Passe `key` (api name, a-z/0-9/_), `label` e opcionalmente `fields` (array JSON de definições de campo).

Parameterskeyrequiredlabelfieldsmoduleaccountdisplay_field

crm_add_field

Adiciona um CAMPO custom a um objeto (sem migração; registros antigos ficam sem a key). Tipos: string text integer float boolean date datetime singleselect multiselect email phone url currency relation user_ref json group.

Parameterskeyrequiredtyperequiredlabelobjectrequireduniqueaccountindexedoptionsrelationrequired

crm_get_object

Detalha UM objeto: seu rótulo, kanban e todos os campos (key, tipo, obrigatório, opções, relação). Versão focada do crm_describe.

Parametersobjectrequiredaccount

crm_update_object

Edita um objeto: rótulo, campo de exibição, módulo ou config de kanban (a key é imutável). Vale para objetos de sistema e custom.

Parameterslabelkanbanmoduleobjectrequiredaccountdisplay_field

crm_delete_object

Remove um objeto CUSTOM (objetos de sistema não podem ser removidos). Se houver registros, passe delete_records:true para apagar tudo junto.

Parametersobjectrequiredaccountdelete_records

crm_update_field

Edita um campo: rótulo, obrigatório, visível, posição, opções, indexação. Mudança de TIPO só é permitida se for um alargamento seguro (ex.: integer→float); mudança com perda é bloqueada (crie um campo novo e migre).

Parameterskeyrequiredtypelabelobjectrequiredaccountindexedoptionsvisiblepositionrequired

crm_remove_field

Remove um campo CUSTOM (soft-delete: some do schema, mas os valores já gravados ficam preservados). Campos de sistema não podem ser removidos.

Parameterskeyrequiredobjectrequiredaccount

crm_move_stage

Move um registro de um objeto kanban (ex.: deal) para outra etapa do funil. Valida a etapa contra as opções do campo de stage. Bulk support: accepts ids for batched execution.

Parametersidrequiredidsstagerequiredobjectrequiredaccount

crm_upload_file

Inicia o upload de um arquivo (até 200 MB) e devolve uma URL presigned (`upload_url`) pra fazer o PUT direto no storage, mais o `file_id`. Depois do PUT, chame crm_confirm_upload. Opcional: anexe a um registro com `object`+`record_id`. Bulk support: accepts record_ids for batched execution.

Parameterssizerequiredobjectaccountfilenamerequiredrecord_idrecord_idscontent_type

crm_confirm_upload

Confirma o upload depois do PUT na upload_url (o storage valida o tamanho real). Marca o arquivo como pronto e contabiliza no uso. Bulk support: accepts file_ids for batched execution.

Parametersaccountfile_idrequiredfile_ids

crm_upload_from_url

Sobe um arquivo A PARTIR DE UMA URL (a plataforma baixa e armazena, até 200 MB) — o jeito do AGENTE subir via API sem segurar os bytes. Devolve o arquivo já pronto. Opcional: anexe a um registro com object+record_id. Bulk support: accepts record_ids for batched execution.

Parametersurlrequiredobjectaccountfilenamerecord_idrecord_idscontent_type

crm_list_files

Lista os arquivos do CRM (id, nome, tamanho, status). Opcionalmente filtra os anexados a um objeto/registro. Bulk support: accepts record_ids for batched execution.

Parametersobjectaccountrecord_idrecord_ids

crm_get_file

Metadados de um arquivo (nome, tamanho, content_type, status, anexo). Bulk support: accepts file_ids for batched execution.

Parametersaccountfile_idrequiredfile_ids

crm_download_file

Gera uma URL presigned de download (GET) pra um arquivo. A URL expira em alguns minutos. Bulk support: accepts file_ids for batched execution.

Parametersaccountfile_idrequiredfile_ids

crm_delete_file

Remove um ou mais arquivos (apaga do storage e libera o espaço contabilizado).

Parametersidsaccountfile_id

crm_publish_file

Torna um arquivo PÚBLICO e devolve uma URL estável (`https://api.mcp.ai/f/<token>`) pra embutir num site (ex.: thumbnail). O objeto continua privado no storage, o token é a chave (revogável com crm_unpublish_file). Egress da visualização pública é contabilizado. Bulk support: accepts file_ids for batched execution.

Parametersaccountfile_idrequiredfile_ids

crm_unpublish_file

Revoga o link público de um arquivo (o token para de funcionar na hora). Bulk support: accepts file_ids for batched execution.

Parametersaccountfile_idrequiredfile_ids

crm_usage

Uso de storage deste CRM: bytes do banco + bytes de arquivos, total em GB, nº de arquivos e egress acumulado. É a base do que é cobrado (storage GB-mês + egress).

Parametersaccount

crm_list_accounts

Lista os CRMs conectados neste install. Retorna cada um com id, rótulo e is_default (true quando só há um, não precisa passar `account` nas outras tools).

Takes no parameters.

show_version

Show Version

Show the current MCP platform and adapter versions.

Takes no parameters.

report_bug

Report Bug

Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.

Parameterscontextmessagerequiredconversation

connect

Connection Status

Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.

Takes no parameters.

toolkit_info

Toolkit Info

Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.

Takes no parameters.

marketplace

Marketplace

The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.

Parameterslimitqueryactionmcp_idmessagetool_idargumentsimmediatetier_slugprompt_bodyprompt_slugprompt_tool+11 more

authenticate

Authenticate

MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.

Parameterstoken

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.