> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.jarvi.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP (Asistentes de IA)

> Conecta asistentes de IA como Claude Desktop o Cursor a tus datos de Jarvi

## ¿Qué es el MCP?

El [Model Context Protocol (MCP)](https://modelcontextprotocol.io) es un estándar abierto que permite a los asistentes de IA conectarse a herramientas y fuentes de datos externas. Jarvi expone un servidor MCP para que puedas usar asistentes de IA para buscar, leer y actualizar tus datos de Jarvi directamente.

## Clientes compatibles

Cualquier cliente compatible con MCP puede conectarse a Jarvi, incluyendo:

* [Claude Desktop](https://claude.ai/download)
* [Cursor](https://cursor.com)
* [Windsurf](https://codeium.com/windsurf)
* Cualquier cliente que soporte el transporte **Streamable HTTP**

## Configuración

### Claude Desktop

Ve a **Ajustes > Conectores > Añadir un conector personalizado**, introduce un nombre (ej: "Jarvi") y la URL:

```
https://mcp.jarvi.tech
```

Claude Desktop gestiona la autenticación automáticamente mediante OAuth2 — serás redirigido para iniciar sesión con tu cuenta de Jarvi.

### Otros clientes

Para clientes que no soportan OAuth2, utiliza una clave privada de API:

* **Transporte**: Streamable HTTP
* **URL**: `https://mcp.jarvi.tech`
* **Autenticación**: encabezado `x-api-key` con tu [clave privada de API](./api-keys)

<Warning>
  Tu clave privada otorga acceso completo a tus datos de Jarvi. ¡Nunca la compartas públicamente!
</Warning>

## Herramientas disponibles

Una vez conectado, las siguientes herramientas están disponibles para tu asistente de IA:

| Herramienta               | Descripción                                                                                        |
| ------------------------- | -------------------------------------------------------------------------------------------------- |
| `whoAmI`                  | Devuelve la identidad del usuario conectado (nombre, email, workspace)                             |
| `getStatuses`             | Listar los estados disponibles para perfiles, empresas o proyectos                                 |
| `getCustomFields`         | Listar los campos personalizados definidos para un tipo de entidad                                 |
| `getHistorySubtypes`      | Listar los subtipos personalizados de interacciones (ej: categorías de llamadas)                   |
| `advancedSearch`          | Buscar perfiles, empresas o proyectos en lenguaje natural                                          |
| `getEntityData`           | Obtener los datos detallados de perfiles, empresas o proyectos por IDs                             |
| `getAgenda`               | Obtener los eventos próximos de las agendas conectadas                                             |
| `getNotifications`        | Obtener las notificaciones recientes del usuario                                                   |
| `createProfile`           | Crear un nuevo perfil (talento y/o contacto)                                                       |
| `createCompany`           | Crear una nueva empresa                                                                            |
| `createProject`           | Crear un nuevo proyecto / misión de reclutamiento                                                  |
| `associateProfiles`       | Vincular un perfil a un proyecto (talento o contacto) o a una empresa                              |
| `createHistoryEntry`      | Añadir una nota o un registro de llamada al historial de un perfil                                 |
| `createTodo`              | Crear un recordatorio/tarea vinculado a un perfil, empresa o proyecto                              |
| `sendMessage`             | Enviar mensajes a uno o varios perfiles (email, LinkedIn, WhatsApp, Telegram, SMS)                 |
| `getMessageTemplates`     | Listar las plantillas de mensajes disponibles (personales y compartidas por compañeros)            |
| `uploadFile`              | Subir un archivo y vincularlo a una entidad (perfil, empresa o proyecto)                           |
| `cancelScheduledMessages` | Cancelar uno o varios mensajes programados                                                         |
| `updateProfile`           | Actualizar un perfil, añadir emails o números de teléfono                                          |
| `updateCompany`           | Actualizar una empresa, cambiar el estado por nombre, añadir emails                                |
| `updateProject`           | Actualizar un proyecto, cambiar el estado por nombre, vincular una empresa                         |
| `fillJobOffer`            | Generar o refinar una oferta de empleo a partir de los datos del proyecto                          |
| `getOutboxDiagnostic`     | Diagnosticar la bandeja de salida: listar los mensajes programados pendientes con estado y errores |
| `retryOutboxTasks`        | Reintentar las tareas con errores restableciendo su estado                                         |
| `queryGraphQL`            | Ejecutar consultas/mutaciones GraphQL en las tablas autorizadas (se aplican tus permisos)          |

<Info>
  Todas las operaciones se ejecutan con **tus permisos**. La seguridad a nivel de filas se aplica — solo puedes acceder a los datos a los que tu cuenta tiene acceso.
</Info>

## Ejemplos de prompts

Una vez conectado, intenta pedirle a tu asistente de IA:

* *"¿Quién soy?"*
* *"Busca desarrolladores React en París"*
* *"Muéstrame los detalles del proyecto X"*
* *"Crea un perfil para Jean Dupont, desarrollador"*
* *"Posiciona este candidato en el proyecto X"*
* *"Cambia el estado de la empresa Acme a Cualificado"*
* *"¿Qué campos personalizados existen en los perfiles?"*
* *"Registra una llamada con Jean Dupont: hablamos sobre su disponibilidad"*
* *"Recuérdame que contacte a Acme el próximo lunes"*
* *"Actualiza el título de Jean Dupont a Desarrollador Senior"*

## Limitaciones

* Se aplican los mismos [límites de uso](./introduction#condiciones-de-uso), contabilizados sobre el tiempo de ejecución acumulado. Si necesitas más, contacta con nuestro soporte.
* Las operaciones de eliminación están bloqueadas — usa eliminación suave (actualización de `deletedAt`) en su lugar.
* Las respuestas demasiado grandes se truncan automáticamente. Usa argumentos `limit` en tus consultas.
* Las herramientas destructivas (mutaciones, lanzamiento de campañas, reenvío de mensajes) requieren confirmación del asistente de IA antes de ejecutarse.
