Koskamo

mcp-dir CRM MCP

A fully customizable, agent-driven CRM server that allows users to manage contacts, companies, and sales pipelines. It supports creating custom objects and fields, providing an instant API for data access. The server operates over HTTP and integrates with various MCP clients like Claude, Cursor, and VS Code.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

mcp-dir CRM MCP logo, by mcp-dirCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by mcp-dir
MCP endpoint (Streamable HTTP)
https://api.mcp.ai/p_crm
Vendor documentation

What its tools do

36 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

36 of 36 have a description · 36 of 36 declare behavior hints · 0 of 32 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • List open deals in the sales pipeline
  • Create a contact with email
  • Add a custom field to contacts
  • Describe the CRM schema

Source and maintenance

Community listingRegistry 0.1.0
Maintenance checked

Protocol and capabilities

Server
mcp-ai 0.9.410
MCP protocol negotiated in check
2025-11-25
Tools
36 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

MCP.AI platform v0.9.410 | Adapters: crm vunknown. When the user asks about the version (e.g. "qual a versão", "which version"), call the show_version tool. NEW MCPs/tools/integrations (capabilities not already in this toolkit) come from the official mcp.ai catalog: the `marketplace` tool (action=search) finds and runs them. You are not authenticated yet. Call the authenticate tool first — it will give the user a browser link to log in and copy a token. No other tools will work until authenticated.

Tools

36 advertised

crm_describe
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

crm_describe input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "account": {
      "type": "string"
    }
  }
}
crm_describe annotations
{
  "title": "crm_describe",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_list_objects
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

crm_list_objects input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "account": {
      "type": "string"
    }
  }
}
crm_list_objects annotations
{
  "title": "crm_list_objects",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_create_records
Advertised by the server during the last successful anonymous check.

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}).

crm_create_records input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object"
  ],
  "properties": {
    "data": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "records": {
      "type": "string"
    },
    "metadata": {
      "type": "string"
    }
  }
}
crm_create_records annotations
{
  "title": "crm_create_records",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_list_records
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

crm_list_records input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object"
  ],
  "properties": {
    "sort": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "filter": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "offset": {
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  }
}
crm_list_records annotations
{
  "title": "crm_list_records",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_get_records
Advertised by the server during the last successful anonymous check.
Advertised read-only

Busca um ou mais registros de um objeto por id.

crm_get_records input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object",
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  }
}
crm_get_records annotations
{
  "title": "crm_get_records",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_update_records
Advertised by the server during the last successful anonymous check.

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.

crm_update_records input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "data": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "updates": {
      "type": "string"
    },
    "metadata": {
      "type": "string"
    }
  }
}
crm_update_records annotations
{
  "title": "crm_update_records",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_delete_records
Advertised by the server during the last successful anonymous check.

Remove um ou mais registros de um objeto por id.

crm_delete_records input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object",
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  }
}
crm_delete_records annotations
{
  "title": "crm_delete_records",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_search
Advertised by the server during the last successful anonymous check.
Advertised read-only

Busca textual nos registros (por nome/título/valores). Opcionalmente restrita a um `object`.

crm_search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "q"
  ],
  "properties": {
    "q": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  }
}
crm_search annotations
{
  "title": "crm_search",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_define_object
Advertised by the server during the last successful anonymous check.

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

crm_define_object input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "key"
  ],
  "properties": {
    "key": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "fields": {
      "type": "string"
    },
    "module": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "display_field": {
      "type": "string"
    }
  }
}
crm_define_object annotations
{
  "title": "crm_define_object",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_add_field
Advertised by the server during the last successful anonymous check.

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.

crm_add_field input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object",
    "key",
    "type"
  ],
  "properties": {
    "key": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "unique": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "indexed": {
      "type": "boolean"
    },
    "options": {
      "type": "string"
    },
    "relation": {
      "type": "string"
    },
    "required": {
      "type": "boolean"
    }
  }
}
crm_add_field annotations
{
  "title": "crm_add_field",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_get_object
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

crm_get_object input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object"
  ],
  "properties": {
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  }
}
crm_get_object annotations
{
  "title": "crm_get_object",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_update_object
Advertised by the server during the last successful anonymous check.

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.

crm_update_object input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object"
  ],
  "properties": {
    "label": {
      "type": "string"
    },
    "kanban": {
      "type": "string"
    },
    "module": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "display_field": {
      "type": "string"
    }
  }
}
crm_update_object annotations
{
  "title": "crm_update_object",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_delete_object
Advertised by the server during the last successful anonymous check.

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

crm_delete_object input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object"
  ],
  "properties": {
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "delete_records": {
      "type": "boolean"
    }
  }
}
crm_delete_object annotations
{
  "title": "crm_delete_object",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_update_field
Advertised by the server during the last successful anonymous check.

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

crm_update_field input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object",
    "key"
  ],
  "properties": {
    "key": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "indexed": {
      "type": "boolean"
    },
    "options": {
      "type": "string"
    },
    "visible": {
      "type": "boolean"
    },
    "position": {
      "type": "number"
    },
    "required": {
      "type": "boolean"
    }
  }
}
crm_update_field annotations
{
  "title": "crm_update_field",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_remove_field
Advertised by the server during the last successful anonymous check.

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

crm_remove_field input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object",
    "key"
  ],
  "properties": {
    "key": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  }
}
crm_remove_field annotations
{
  "title": "crm_remove_field",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_link_record
Advertised by the server during the last successful anonymous check.

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.

crm_link_record input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object",
    "id",
    "field",
    "target_id"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "field": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "target_id": {
      "type": "string"
    },
    "target_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
crm_link_record annotations
{
  "title": "crm_link_record",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_unlink_record
Advertised by the server during the last successful anonymous check.

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.

crm_unlink_record input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object",
    "id",
    "field"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "field": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "target_id": {
      "type": "string"
    },
    "target_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
crm_unlink_record annotations
{
  "title": "crm_unlink_record",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_related_records
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

crm_related_records input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "field": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  }
}
crm_related_records annotations
{
  "title": "crm_related_records",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_move_stage
Advertised by the server during the last successful anonymous check.

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.

crm_move_stage input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "object",
    "id",
    "stage"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "stage": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  }
}
crm_move_stage annotations
{
  "title": "crm_move_stage",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_upload_file
Advertised by the server during the last successful anonymous check.

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.

crm_upload_file input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "filename",
    "size"
  ],
  "properties": {
    "size": {
      "type": "number"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "filename": {
      "type": "string"
    },
    "record_id": {
      "type": "string"
    },
    "record_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "content_type": {
      "type": "string"
    }
  }
}
crm_upload_file annotations
{
  "title": "crm_upload_file",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_confirm_upload
Advertised by the server during the last successful anonymous check.

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.

crm_confirm_upload input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "file_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "file_id": {
      "type": "string"
    },
    "file_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
crm_confirm_upload annotations
{
  "title": "crm_confirm_upload",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_upload_from_url
Advertised by the server during the last successful anonymous check.

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.

crm_upload_from_url input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "filename": {
      "type": "string"
    },
    "record_id": {
      "type": "string"
    },
    "record_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "content_type": {
      "type": "string"
    }
  }
}
crm_upload_from_url annotations
{
  "title": "crm_upload_from_url",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_list_files
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

crm_list_files input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "object": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "record_id": {
      "type": "string"
    },
    "record_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
crm_list_files annotations
{
  "title": "crm_list_files",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_get_file
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

crm_get_file input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "file_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "file_id": {
      "type": "string"
    },
    "file_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
crm_get_file annotations
{
  "title": "crm_get_file",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_download_file
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

crm_download_file input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "file_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "file_id": {
      "type": "string"
    },
    "file_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
crm_download_file annotations
{
  "title": "crm_download_file",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_delete_file
Advertised by the server during the last successful anonymous check.

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

crm_delete_file input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    },
    "file_id": {
      "type": "string"
    }
  }
}
crm_delete_file annotations
{
  "title": "crm_delete_file",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_publish_file
Advertised by the server during the last successful anonymous check.

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.

crm_publish_file input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "file_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "file_id": {
      "type": "string"
    },
    "file_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
crm_publish_file annotations
{
  "title": "crm_publish_file",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_unpublish_file
Advertised by the server during the last successful anonymous check.

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

crm_unpublish_file input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "file_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "file_id": {
      "type": "string"
    },
    "file_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
crm_unpublish_file annotations
{
  "title": "crm_unpublish_file",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
crm_usage
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

crm_usage input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "account": {
      "type": "string"
    }
  }
}
crm_usage annotations
{
  "title": "crm_usage",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crm_list_accounts
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

crm_list_accounts input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
crm_list_accounts annotations
{
  "title": "crm_list_accounts",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
show_version
Advertised by the server during the last successful anonymous check.
Advertised read-only

Show the current MCP platform and adapter versions.

show_version input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
show_version annotations
{
  "title": "Show Version",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
report_bug
Advertised by the server during the last successful anonymous check.

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

report_bug input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "message"
  ],
  "properties": {
    "context": {
      "type": "string",
      "default": ""
    },
    "message": {
      "type": "string"
    },
    "conversation": {
      "type": "string",
      "default": "[]"
    }
  }
}
report_bug annotations
{
  "title": "Report Bug",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
connect
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

connect input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
connect annotations
{
  "title": "Connection Status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
toolkit_info
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

toolkit_info input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
toolkit_info annotations
{
  "title": "Toolkit Info",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
marketplace
Advertised by the server during the last successful anonymous check.
Open-world

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.

marketplace input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "number",
      "default": 10
    },
    "query": {
      "type": "string",
      "default": ""
    },
    "action": {
      "enum": [
        "search",
        "describe",
        "install",
        "uninstall",
        "subscribe",
        "cancel",
        "resume",
        "report_bug",
        "request_mcp",
        "list_tools",
        "invoke",
        "search_prompts",
        "get_prompt",
        "publish_prompt"
      ],
      "type": "string",
      "default": "search"
    },
    "mcp_id": {
      "type": "string",
      "default": ""
    },
    "message": {
      "type": "string",
      "default": ""
    },
    "tool_id": {
      "type": "string",
      "default": ""
    },
    "arguments": {
      "type": "string",
      "default": "{}"
    },
    "immediate": {
      "type": "boolean",
      "default": false
    },
    "tier_slug": {
      "type": "string",
      "default": ""
    },
    "prompt_body": {
      "type": "string",
      "default": ""
    },
    "prompt_slug": {
      "type": "string",
      "default": ""
    },
    "prompt_tool": {
      "type": "string",
      "default": ""
    },
    "prompt_vars": {
      "type": "string",
      "default": "{}"
    },
    "conversation": {
      "type": "string",
      "default": "[]"
    },
    "prompt_title": {
      "type": "string",
      "default": ""
    },
    "request_name": {
      "type": "string",
      "default": ""
    },
    "cancel_reason": {
      "enum": [
        "too_expensive",
        "missing_features",
        "switched_service",
        "unused",
        "customer_service",
        "too_complex",
        "low_quality",
        "other"
      ],
      "type": "string"
    },
    "cancel_comment": {
      "type": "string",
      "default": ""
    },
    "prompt_targets": {
      "type": "array",
      "items": {
        "enum": [
          "claude",
          "chatgpt",
          "cursor",
          "lovable"
        ],
        "type": "string"
      },
      "default": []
    },
    "report_context": {
      "type": "string",
      "default": ""
    },
    "prompt_category": {
      "type": "string",
      "default": ""
    },
    "request_details": {
      "type": "string",
      "default": ""
    },
    "prompt_description": {
      "type": "string",
      "default": ""
    }
  }
}
marketplace annotations
{
  "title": "Marketplace",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
authenticate
Advertised by the server during the last successful anonymous check.

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.

authenticate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "token": {
      "type": "string"
    }
  }
}
authenticate annotations
{
  "title": "Authenticate",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
518 ms
95th percentile latency
518 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 518 ms · metadata changed · 36 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http crm-mcp https://api.mcp.ai/p_crm

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add crm-mcp --url https://api.mcp.ai/p_crm

Cursor

Merge this server into .cursor/mcp.json in your project, then enable crm-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "crm-mcp": {
      "url": "https://api.mcp.ai/p_crm"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "crm-mcp": {
      "type": "streamableHttp",
      "url": "https://api.mcp.ai/p_crm",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start crm-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "crm-mcp": {
      "type": "http",
      "url": "https://api.mcp.ai/p_crm"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http crm-mcp https://api.mcp.ai/p_crm

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.mcp.ai/p_crm

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "crm-mcp": {
      "serverUrl": "https://api.mcp.ai/p_crm"
    }
  }
}

Let your agent find its tools

Find servers like mcp-dir CRM MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.