> ## 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 (KI-Assistenten)

> Verbinde KI-Assistenten wie Claude Desktop oder Cursor mit deinen Jarvi-Daten

## Was ist MCP?

Das [Model Context Protocol (MCP)](https://modelcontextprotocol.io) ist ein offener Standard, der es KI-Assistenten ermöglicht, sich mit externen Tools und Datenquellen zu verbinden. Jarvi stellt einen MCP-Server bereit, damit du KI-Assistenten nutzen kannst, um deine Jarvi-Daten direkt zu durchsuchen, zu lesen und zu aktualisieren.

## Kompatible Clients

Jeder MCP-kompatible Client kann sich mit Jarvi verbinden, darunter:

* [Claude Desktop](https://claude.ai/download)
* [Cursor](https://cursor.com)
* [Windsurf](https://codeium.com/windsurf)
* Jeder Client, der **Streamable HTTP**-Transport unterstützt

## Konfiguration

### Claude Desktop

Gehe zu **Einstellungen > Konnektoren > Benutzerdefinierten Konnektor hinzufügen**, gib einen Namen ein (z. B. "Jarvi") und die URL:

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

Claude Desktop übernimmt die Authentifizierung automatisch über OAuth2 – du wirst zur Anmeldung mit deinem Jarvi-Konto weitergeleitet.

### Andere Clients

Für Clients, die OAuth2 nicht unterstützen, verwende einen privaten API-Schlüssel:

* **Transport**: Streamable HTTP
* **URL**: `https://mcp.jarvi.tech`
* **Authentifizierung**: Header `x-api-key` mit deinem [privaten API-Schlüssel](./api-keys)

<Warning>
  Dein privater Schlüssel ermöglicht vollen Zugriff auf deine Jarvi-Daten. Teile ihn niemals öffentlich.
</Warning>

## Verfügbare Tools

Sobald du verbunden bist, stehen deinem KI-Assistenten folgende Tools zur Verfügung:

| Tool                      | Beschreibung                                                                                       |
| ------------------------- | -------------------------------------------------------------------------------------------------- |
| `whoAmI`                  | Gibt die Identität des angemeldeten Benutzers zurück (Name, E-Mail, Workspace)                     |
| `getStatuses`             | Listet verfügbare Status für Profile, Unternehmen oder Projekte auf                                |
| `getCustomFields`         | Listet benutzerdefinierte Felder für einen Entitätstyp auf                                         |
| `getHistorySubtypes`      | Listet benutzerdefinierte Interaktions-Untertypen auf (z. B. Anrufkategorien)                      |
| `advancedSearch`          | Sucht Profile, Unternehmen oder Projekte in natürlicher Sprache                                    |
| `getEntityData`           | Ruft detaillierte Daten von Profilen, Unternehmen oder Projekten anhand von IDs ab                 |
| `getAgenda`               | Ruft bevorstehende Ereignisse aus verbundenen Kalendern ab                                         |
| `getNotifications`        | Ruft aktuelle Benachrichtigungen des Benutzers ab                                                  |
| `createProfile`           | Erstellt ein neues Profil (Talent und/oder Kontakt)                                                |
| `createCompany`           | Erstellt ein neues Unternehmen                                                                     |
| `createProject`           | Erstellt ein neues Projekt / Recruiting-Mission                                                    |
| `associateProfiles`       | Verknüpft ein Profil mit einem Projekt (Talent oder Kontakt) oder mit einem Unternehmen            |
| `createHistoryEntry`      | Fügt eine Notiz oder ein Anrufprotokoll zum Verlauf eines Profils hinzu                            |
| `createTodo`              | Erstellt eine Erinnerung/Todo, die mit einem Profil, Unternehmen oder Projekt verknüpft ist        |
| `sendMessage`             | Sendet Nachrichten an ein oder mehrere Profile (E-Mail, LinkedIn, WhatsApp, Telegram, SMS)         |
| `getMessageTemplates`     | Listet verfügbare Nachrichtenvorlagen auf (persönliche und von Kollegen geteilte)                  |
| `uploadFile`              | Lädt eine Datei hoch und verknüpft sie mit einer Entität (Profil, Unternehmen oder Projekt)        |
| `cancelScheduledMessages` | Bricht eine oder mehrere geplante Nachrichten ab                                                   |
| `updateProfile`           | Aktualisiert ein Profil, fügt E-Mails oder Telefonnummern hinzu                                    |
| `updateCompany`           | Aktualisiert ein Unternehmen, ändert den Status nach Name, fügt E-Mails hinzu                      |
| `updateProject`           | Aktualisiert ein Projekt, ändert den Status nach Name, verknüpft ein Unternehmen                   |
| `fillJobOffer`            | Erstellt oder verfeinert ein Stellenangebot basierend auf Projektdaten                             |
| `getOutboxDiagnostic`     | Diagnostiziert den Postausgang: Listet ausstehende geplante Nachrichten mit Status und Fehlern auf |
| `retryOutboxTasks`        | Startet fehlgeschlagene Aufgaben neu, indem ihr Status zurückgesetzt wird                          |
| `queryGraphQL`            | Führt GraphQL-Abfragen/-Mutationen auf erlaubten Tabellen aus (deine Berechtigungen gelten)        |

<Info>
  Alle Vorgänge werden mit **deinen Berechtigungen** ausgeführt. Die Sicherheit auf Zeilenebene gilt – du hast nur Zugriff auf Daten, auf die dein Konto zugreifen darf.
</Info>

## Beispiele für Prompts

Sobald du verbunden bist, versuche deinen KI-Assistenten zu fragen:

* *"Wer bin ich?"*
* *"Suche React-Entwickler in Paris"*
* *"Zeig mir die Details von Projekt X"*
* *"Erstelle ein Profil für Jean Dupont, Entwickler"*
* *"Platziere diesen Kandidaten auf Projekt X"*
* *"Setze den Status von Firma Acme auf Qualifiziert"*
* *"Welche benutzerdefinierten Felder gibt es in den Profilen?"*
* *"Notiere einen Anruf mit Jean Dupont: Verfügbarkeit besprochen"*
* *"Erinnere mich daran, Acme nächsten Montag erneut zu kontaktieren"*
* *"Aktualisiere den Titel von Jean Dupont auf Senior-Entwickler"*

## Einschränkungen

* Es gelten dieselben [Nutzungsbeschränkungen](./introduction#nutzungsbedingungen), gerechnet auf die kumulierte Ausführungszeit. Wenn du mehr brauchst, wende dich an unseren Support.
* Löschvorgänge sind blockiert — verwende stattdessen Soft-Delete (Aktualisierung von `deletedAt`).
* Zu umfangreiche Antworten werden automatisch gekürzt. Verwende `limit`-Argumente in deinen Anfragen.
* Destruktive Tools (Mutationen, Kampagnenstart, Nachrichtenwiederholung) erfordern vor der Ausführung eine Bestätigung durch den KI-Assistenten.
