Skip to main content
Glama

Servidor MCP de Anchord

Resolución de identidad y comprobaciones de seguridad previas a la escritura para agentes de IA.

npm License: MIT

Un servidor MCP que proporciona a los agentes de IA acceso a la API de resolución de identidad de Anchord. Resuelva empresas y personas a AnchorIDs canónicos, ejecute comprobaciones de seguridad previas a la escritura y exporte registros maestros (golden records), todo a través de la interfaz de herramientas estándar de MCP.

Respaldado por API alojada. Este servidor MCP es un proxy ligero para la plataforma SaaS de Anchord. Toda la puntuación, coincidencia, validación y persistencia de datos ocurren en el lado del servidor. No se ejecuta lógica de negocio localmente.

Diseñado para ser de solo lectura. Anchord nunca escribe en sus sistemas externos (CRM, bases de datos, etc.). guard_write evalúa una escritura propuesta y devuelve si está permitida o bloqueada; el llamador decide si proceder.


Inicio rápido

1. Obtenga una clave de API

Regístrese en app.anchord.ai/signup y cree una clave de API en Settings > API Keys.

2. Ejecute con npx (sin instalación)

ANCHORD_API_KEY=<YOUR_ANCHORD_API_KEY> npx -y @anchord/mcp-server

Eso es todo. El servidor se inicia a través de stdio y está listo para los clientes MCP.

3. O conéctese al remoto alojado (instalación cero)

No se necesita instalación local. Apunte cualquier cliente MCP que admita transporte HTTP remoto al endpoint alojado:

{
  "mcpServers": {
    "anchord": {
      "url": "https://mcp.anchord.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_ANCHORD_API_KEY>"
      }
    }
  }
}

Consulte docs/remote.md para obtener detalles completos, notas de compatibilidad del cliente y una alternativa local si su cliente aún no admite MCP remoto.


Configuración del cliente MCP

Cursor (stdio local)

Agréguelo a .cursor/mcp.json (espacio de trabajo) o ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "anchord": {
      "command": "npx",
      "args": ["-y", "@anchord/mcp-server"],
      "env": {
        "ANCHORD_API_KEY": "<YOUR_ANCHORD_API_KEY>"
      }
    }
  }
}

Consulte examples/cursor-mcp.json.

Claude Desktop

Agréguelo a su configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json en macOS, %APPDATA%\Claude\claude_desktop_config.json en Windows):

{
  "mcpServers": {
    "anchord": {
      "command": "npx",
      "args": ["-y", "@anchord/mcp-server"],
      "env": {
        "ANCHORD_API_KEY": "<YOUR_ANCHORD_API_KEY>"
      }
    }
  }
}

Consulte examples/claude-desktop-config.json.

MCP remoto (para clientes que admiten transporte HTTP)

Para acceso remoto sin instalación, utilice el endpoint alojado en lugar de un proceso stdio local. Esto funciona con cualquier cliente MCP que admita el formato de configuración url + headers:

{
  "mcpServers": {
    "anchord": {
      "url": "https://mcp.anchord.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_ANCHORD_API_KEY>"
      }
    }
  }
}

No se requiere Node.js, ni npx, ni Docker. Si su cliente aún no admite MCP remoto, utilice la configuración stdio local anterior. Consulte docs/remote.md para obtener detalles completos.

Docker

docker build -t anchord-mcp .
echo '{"jsonrpc":"2.0","id":1,"method":"initialize",...}' | \
  docker run --rm -i -e ANCHORD_API_KEY=<YOUR_ANCHORD_API_KEY> anchord-mcp

O utilice el archivo compose para pruebas locales:

cp examples/env.example .env
# Edit .env with your API key
docker compose up

Variables de entorno

Variable

Requerido

Predeterminado

Descripción

ANCHORD_API_KEY

Su clave de API de Anchord (token Bearer)

ANCHORD_API_BASE_URL

No

https://api.anchord.ai

URL base de la API

Consulte docs/auth.md para obtener detalles sobre la autenticación y el alcance del inquilino.


Herramientas disponibles

Herramienta

Descripción

resolve_company

Resuelve una empresa a un AnchorID canónico

resolve_company_batch

Resolución de empresas por lotes (máx. 200)

resolve_person

Resuelve una persona a un AnchorID canónico

resolve_person_batch

Resolución de personas por lotes (máx. 200)

get_entity

Obtiene un AnchorID con registros vinculados opcionales

get_entity_export

Exporta el registro maestro (golden record) para un AnchorID

link_source_record

Vincula un registro de origen a un AnchorID

unlink_source_record

Elimina de forma lógica un vínculo de registro de origen

guard_write

Comprobación de seguridad previa a la escritura (solo evaluación)

guard_write_batch

Comprobación de seguridad previa a la escritura por lotes (máx. 200)

ingest_record

Ingiere un registro de origen en Anchord

Referencia completa de parámetros: docs/tools.md


Flujo de trabajo seguro para agentes

La secuencia recomendada para agentes que escriben en sistemas externos:

1. ingest_record        Push the source record into Anchord
                        (optional if using OAuth integrations)

2. resolve_company      Match to a canonical AnchorID
   or resolve_person    → status: resolved | not_found | needs_review

3. IF needs_review      STOP. Do not write.
                        Surface candidates to the user.
                        Direct them to the Review Queue.

4. guard_write          Evaluate the proposed write
                        → allowed: true | false (with block codes)

5. IF allowed           The agent performs the external write.
                        Anchord never writes.

6. Log request_id       Every response includes a request_id
                        for audit trail and debugging.

Utilice get_entity o get_entity_export en cualquier momento para inspeccionar los detalles del AnchorID o recuperar el registro maestro fusionado.


Manejo de needs_review

Solo resolve_* devuelve needs_review. Significa que Anchord encontró múltiples coincidencias plausibles y no puede resolver automáticamente con confianza.

Para agentes:

  1. No escriba. Los datos son ambiguos.

  2. Muestre los candidatos al usuario: la respuesta incluye IDs de entidad y puntuaciones de coincidencia.

  3. Dirija al usuario a la Cola de Revisión: https://app.anchord.ai/app/queues/needs-review

  4. Reintente más tarde. Una vez que un humano resuelve la ambigüedad, las llamadas de resolución posteriores devuelven resolved.

Ejemplo de mensaje del agente:

Intenté resolver "Acme Corp" pero Anchord encontró múltiples coincidencias posibles. Un humano necesita revisar esto en la Cola de Revisión. Reintentaré después de que se resuelva.


Manejo de errores

Cuando la API devuelve 4xx/5xx, la respuesta de la herramienta MCP se marca como isError: true con una carga útil estructurada:

{
  "error": "[422] BATCH_TOO_LARGE: Batch size must not exceed 100 records. (request_id: req_01ABC123)",
  "status_code": 422,
  "request_id": "req_01ABC123",
  "details": { "records": ["Too many records."] }
}
  • request_id siempre está presente: del cuerpo de la respuesta de la API, el encabezado x-request-id o un UUID generado por el cliente.

  • details contiene errores de validación cuando están disponibles (nulo para errores que no son JSON).

  • Las claves de API nunca se incluyen en los mensajes de error.


Arquitectura

Local (stdio)

MCP Client (Cursor / Claude Desktop / etc.)
    │  stdio (JSON-RPC)
    ▼
┌──────────────┐
│  MCP Server  │  Node.js + TypeScript
│  (this pkg)  │  Zod schemas · no business logic
└──────┬───────┘
       │  HTTPS + Bearer auth
       ▼
┌──────────────┐
│  Anchord API │  Hosted SaaS — scoring, matching,
│              │  persistence, tenant isolation
└──────────────┘

Remoto alojado (HTTP)

MCP Client
    │  HTTPS POST + Bearer token
    ▼
┌────────────────────────┐
│  mcp.anchord.ai        │  CloudFront (TLS, routing)
└───────────┬────────────┘
            ▼
┌────────────────────────┐
│  Lambda (stateless)    │  Per-request MCP server
│  Bearer → ApiClient    │  No stored secrets
└───────────┬────────────┘
            │  HTTPS + Bearer auth
            ▼
┌────────────────────────┐
│  Anchord API           │  Same hosted SaaS backend
└────────────────────────┘

Ambas rutas exponen las mismas 11 herramientas MCP y se conectan a la misma API.


Preguntas frecuentes

¿Anchord es autohospedado?

No. Anchord es una plataforma SaaS alojada. Este servidor MCP es un cliente ligero que llama a la API de Anchord. Necesita una clave de API de app.anchord.ai/signup.

¿Anchord escribe en mis CRM?

No. Anchord es estrictamente de solo lectura. Lee datos de sistemas conectados (Salesforce, HubSpot, Stripe) para construir grafos de identidad, pero nunca escribe de vuelta. guard_write devuelve una decisión: el llamador realiza cualquier escritura real.

¿Con qué sistemas funciona Anchord?

Anchord tiene integraciones OAuth para Salesforce, HubSpot y Stripe. También puede enviar registros desde cualquier sistema a través de la herramienta ingest_record o la API REST.

¿Qué sucede cuando hay ambigüedad?

Cuando resolve_* devuelve needs_review, significa que múltiples AnchorIDs candidatos coincidieron con una confianza similar. El agente debe detenerse, mostrar los candidatos a un humano y dirigirlos a la Cola de Revisión de Anchord. Una vez resuelto, las llamadas posteriores devuelven resolved.

¿Cuáles son los límites de tasa?

120 solicitudes/minuto por inquilino. Los endpoints por lotes aceptan hasta 200 elementos (resolver, proteger) o 100 registros (ingerir). Se aplican cuotas mensuales y diarias según el plan. Consulte docs/auth.md.


Enlaces


Licencia

MIT

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/nolenation04/anchord-mcp'

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