CRM
Your own CRM, fully customizable and agent-driven. Start with contacts, companies and a sales pipeli
使うべきか
品質と安全性
検出事項(17)
- HIGH
- MEDIUMcrm_describe 内
- MEDIUMcrm_get_object 内
- MEDIUMcrm_related_records 内
- LOWcrm_describe 内
- LOWcrm_get_records 内
- LOWcrm_search 内
- LOWcrm_define_object 内
- LOWcrm_get_object 内
- LOWcrm_update_object 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"crm-mcp": {
"url": "https://api.mcp.ai/p_crm"
}
}
}リモートエンドポイント
https://api.mcp.ai/p_crmstreamable-httpできること
ツール一覧
ツール(36)
🟢crm_describe(account)
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.
入力スキーマ
{
"type": "object",
"properties": {
"account": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_list_objects(account)
Lista os objetos do CRM (key, rótulo, módulo, kanban). Versão enxuta do crm_describe, sem os campos.
入力スキーマ
{
"type": "object",
"properties": {
"account": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡crm_create_records(object, data, metadata, records, account)
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}).
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"data": {
"type": "string"
},
"metadata": {
"type": "string"
},
"records": {
"type": "string"
},
"account": {
"type": "string"
}
},
"required": [
"object"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_list_records(object, filter, sort, limit, offset, ...)
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).
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"filter": {
"type": "string"
},
"sort": {
"type": "string"
},
"limit": {
"type": "number"
},
"offset": {
"type": "number"
},
"account": {
"type": "string"
}
},
"required": [
"object"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_get_records(object, ids, account)
Busca um ou mais registros de um objeto por id.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"ids": {
"type": "array",
"items": {
"type": "string"
}
},
"account": {
"type": "string"
}
},
"required": [
"object",
"ids"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡crm_update_records(object, id, data, metadata, updates, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
},
"data": {
"type": "string"
},
"metadata": {
"type": "string"
},
"updates": {
"type": "string"
},
"account": {
"type": "string"
},
"ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"object"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴crm_delete_records(object, ids, account)
Remove um ou mais registros de um objeto por id.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"ids": {
"type": "array",
"items": {
"type": "string"
}
},
"account": {
"type": "string"
}
},
"required": [
"object",
"ids"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_search(q, object, limit, account)
Busca textual nos registros (por nome/título/valores). Opcionalmente restrita a um `object`.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"type": "string"
},
"object": {
"type": "string"
},
"limit": {
"type": "number"
},
"account": {
"type": "string"
}
},
"required": [
"q"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪crm_define_object(key, label, module, display_field, fields, ...)
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).
入力スキーマ
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"module": {
"type": "string"
},
"display_field": {
"type": "string"
},
"fields": {
"type": "string"
},
"account": {
"type": "string"
}
},
"required": [
"key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡crm_add_field(object, key, label, type, required, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string"
},
"required": {
"type": "boolean"
},
"unique": {
"type": "boolean"
},
"indexed": {
"type": "boolean"
},
"options": {
"type": "string"
},
"relation": {
"type": "string"
},
"account": {
"type": "string"
}
},
"required": [
"object",
"key",
"type"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_get_object(object, account)
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.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"account": {
"type": "string"
}
},
"required": [
"object"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡crm_update_object(object, label, display_field, module, kanban, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"label": {
"type": "string"
},
"display_field": {
"type": "string"
},
"module": {
"type": "string"
},
"kanban": {
"type": "string"
},
"account": {
"type": "string"
}
},
"required": [
"object"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴crm_delete_object(object, delete_records, account)
Remove um objeto CUSTOM (objetos de sistema não podem ser removidos). Se houver registros, passe delete_records:true para apagar tudo junto.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"delete_records": {
"type": "boolean"
},
"account": {
"type": "string"
}
},
"required": [
"object"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡crm_update_field(object, key, type, label, required, ...)
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).
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"key": {
"type": "string"
},
"type": {
"type": "string"
},
"label": {
"type": "string"
},
"required": {
"type": "boolean"
},
"visible": {
"type": "boolean"
},
"position": {
"type": "number"
},
"indexed": {
"type": "boolean"
},
"options": {
"type": "string"
},
"account": {
"type": "string"
}
},
"required": [
"object",
"key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴crm_remove_field(object, key, account)
Remove um campo CUSTOM (soft-delete: some do schema, mas os valores já gravados ficam preservados). Campos de sistema não podem ser removidos.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"key": {
"type": "string"
},
"account": {
"type": "string"
}
},
"required": [
"object",
"key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪crm_link_record(object, id, field, target_id, account, ...)
Liga um registro a outro por um campo de relação (ex.: vincular um contato a uma empresa). Para relação 'many' adiciona ao conjunto; para 'single' define o alvo. Bulk support: accepts ids, target_ids for batched execution.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
},
"field": {
"type": "string"
},
"target_id": {
"type": "string"
},
"account": {
"type": "string"
},
"ids": {
"type": "array",
"items": {
"type": "string"
}
},
"target_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"object",
"id",
"field",
"target_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴crm_unlink_record(object, id, field, target_id, account, ...)
Desfaz uma relação. Para relação 'many' remove o target_id do conjunto; para 'single' limpa o campo (target_id opcional). Bulk support: accepts ids, target_ids for batched execution.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
},
"field": {
"type": "string"
},
"target_id": {
"type": "string"
},
"account": {
"type": "string"
},
"ids": {
"type": "array",
"items": {
"type": "string"
}
},
"target_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"object",
"id",
"field"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_related_records(object, id, field, account, ids)
Resolve os registros relacionados de um registro: segue os campos de relação e devolve os registros-alvo (todos, ou só de um `field`). Bulk support: accepts ids for batched execution.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
},
"field": {
"type": "string"
},
"account": {
"type": "string"
},
"ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"object",
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪crm_move_stage(object, id, stage, account, ids)
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.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
},
"stage": {
"type": "string"
},
"account": {
"type": "string"
},
"ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"object",
"id",
"stage"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡crm_upload_file(filename, size, content_type, object, record_id, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"filename": {
"type": "string"
},
"size": {
"type": "number"
},
"content_type": {
"type": "string"
},
"object": {
"type": "string"
},
"record_id": {
"type": "string"
},
"account": {
"type": "string"
},
"record_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"filename",
"size"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡crm_confirm_upload(file_id, account, file_ids)
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.
入力スキーマ
{
"type": "object",
"properties": {
"file_id": {
"type": "string"
},
"account": {
"type": "string"
},
"file_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"file_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡crm_upload_from_url(url, filename, content_type, object, record_id, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"filename": {
"type": "string"
},
"content_type": {
"type": "string"
},
"object": {
"type": "string"
},
"record_id": {
"type": "string"
},
"account": {
"type": "string"
},
"record_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_list_files(object, record_id, account, record_ids)
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.
入力スキーマ
{
"type": "object",
"properties": {
"object": {
"type": "string"
},
"record_id": {
"type": "string"
},
"account": {
"type": "string"
},
"record_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_get_file(file_id, account, file_ids)
Metadados de um arquivo (nome, tamanho, content_type, status, anexo). Bulk support: accepts file_ids for batched execution.
入力スキーマ
{
"type": "object",
"properties": {
"file_id": {
"type": "string"
},
"account": {
"type": "string"
},
"file_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"file_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_download_file(file_id, account, file_ids)
Gera uma URL presigned de download (GET) pra um arquivo. A URL expira em alguns minutos. Bulk support: accepts file_ids for batched execution.
入力スキーマ
{
"type": "object",
"properties": {
"file_id": {
"type": "string"
},
"account": {
"type": "string"
},
"file_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"file_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴crm_delete_file(ids, file_id, account)
Remove um ou mais arquivos (apaga do storage e libera o espaço contabilizado).
入力スキーマ
{
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
}
},
"file_id": {
"type": "string"
},
"account": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡crm_publish_file(file_id, account, file_ids)
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.
入力スキーマ
{
"type": "object",
"properties": {
"file_id": {
"type": "string"
},
"account": {
"type": "string"
},
"file_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"file_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪crm_unpublish_file(file_id, account, file_ids)
Revoga o link público de um arquivo (o token para de funcionar na hora). Bulk support: accepts file_ids for batched execution.
入力スキーマ
{
"type": "object",
"properties": {
"file_id": {
"type": "string"
},
"account": {
"type": "string"
},
"file_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"file_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢crm_usage(account)
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).
入力スキーマ
{
"type": "object",
"properties": {
"account": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢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).
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢show_version
Show the current MCP platform and adapter versions.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡report_bug(message, context, conversation)
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
入力スキーマ
{
"type": "object",
"properties": {
"message": {
"type": "string"
},
"context": {
"default": "",
"type": "string"
},
"conversation": {
"default": "[]",
"type": "string"
}
},
"required": [
"message"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢connect
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.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢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.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡marketplace(action, query, mcp_id, limit, tier_slug, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"action": {
"default": "search",
"type": "string",
"enum": [
"search",
"describe",
"install",
"uninstall",
"subscribe",
"cancel",
"resume",
"report_bug",
"request_mcp",
"list_tools",
"invoke",
"search_prompts",
"get_prompt",
"publish_prompt"
]
},
"query": {
"default": "",
"type": "string"
},
"mcp_id": {
"default": "",
"type": "string"
},
"limit": {
"default": 10,
"type": "number"
},
"tier_slug": {
"default": "",
"type": "string"
},
"immediate": {
"default": false,
"type": "boolean"
},
"cancel_reason": {
"type": "string",
"enum": [
"too_expensive",
"missing_features",
"switched_service",
"unused",
"customer_service",
"too_complex",
"low_quality",
"other"
]
},
"cancel_comment": {
"default": "",
"type": "string"
},
"message": {
"default": "",
"type": "string"
},
"report_context": {
"default": "",
"type": "string"
},
"conversation": {
"default": "[]",
"type": "string"
},
"request_name": {
"default": "",
"type": "string"
},
"request_details": {
"default": "",
"type": "string"
},
"tool_id": {
"default": "",
"type": "string"
},
"arguments": {
"default": "{}",
"type": "string"
},
"prompt_slug": {
"default": "",
"type": "string"
},
"prompt_vars": {
"default": "{}",
"type": "string"
},
"prompt_category": {
"default": "",
"type": "string"
},
"prompt_tool": {
"default": "",
"type": "string"
},
"prompt_title": {
"default": "",
"type": "string"
},
"prompt_description": {
"default": "",
"type": "string"
},
"prompt_body": {
"default": "",
"type": "string"
},
"prompt_targets": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"claude",
"chatgpt",
"cursor",
"lovable"
]
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡authenticate(token)
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.
入力スキーマ
{
"type": "object",
"properties": {
"token": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}コミュニティ
エビデンス