Se connecter via MCP
obop fournit un serveur MCP. Chaque commande que le jeton peut utiliser devient un outil MCP. Cette page donne la configuration des clients courants.
Fonctionnement
obop mcp est un serveur MCP qui communique en JSON-RPC sur l'entrée et la sortie standard. Un client MCP le démarre comme processus enfant. Il :
- ouvre lui-même la base de données de l'instance : il doit donc s'exécuter sur une machine qui peut atteindre la base (fichier SQLite ou URL PostgreSQL) ;
- identifie l'agent grâce à un jeton d'agent ;
- liste un outil par commande que ce jeton peut utiliser, nommé
<model>__<command>:lead__search,lead__create,invoice__post. Le double tiret bas remplace la barre oblique du chemin REST ; - répond à
tools/callpar le même répartiteur que REST : le masquage et les approbations s'appliquent donc.
Instances hébergées. Il n'existe pas encore de transport MCP distant (HTTP), et
obop mcpa besoin d'accéder à la base de données. Vous ne pouvez donc pas, aujourd'hui, pointer un client MCP de bureau vers une instance hébergée. Pour les instances hébergées, utilisez REST. MCP via HTTP avec OAuth est prévu.
Avant de commencer
- Une base de données d'instance en fonctionnement, et le binaire
obopsur la machine qui exécute le client MCP (ou son chemin absolu). - Un jeton d'agent avec les scopes voulus.
- L'adresse de la base de données, sous la forme
OBOP_DATABASE_URLou--db. La valeur par défaut estsqlite://obop.dbdans le répertoire courant ; indiquez donc un chemin absolu :sqlite:///home/me/obop.db.
La commande que chaque client exécute est :
obop mcp --db sqlite:///home/me/obop.db --token obop_...Elle lit OBOP_TOKEN et OBOP_DATABASE_URL dans l'environnement si les options sont absentes. Préférez l'environnement : le jeton n'apparaît ainsi pas dans la liste des processus.
Vérifiez d'abord à la main. Cette commande envoie une requête initialize et une requête tools/list, puis affiche les réponses :
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| OBOP_TOKEN=obop_... OBOP_DATABASE_URL=sqlite:///home/me/obop.db obop mcpLe serveur annonce la version de protocole 2025-06-18 et prend en charge initialize, ping, tools/list et tools/call. Les schémas d'entrée des outils ne sont aujourd'hui que {"type":"object"} : un client ne peut donc pas valider les arguments ; ceux-ci sont le même JSON que le corps REST.
Les extraits ci-dessous utilisent /usr/local/bin/obop et un jeton fictif. Remplacez les deux. Les formats ont été vérifiés dans la documentation de chaque client le 2026-10-16 ; ce qui n'a pas pu être confirmé est signalé.
Claude Desktop
Ouvrez Settings, puis Developer, puis Edit Config. Le fichier est ~/Library/Application Support/Claude/claude_desktop_config.json sous macOS et %APPDATA%\Claude\claude_desktop_config.json sous Windows. Ajoutez :
{
"mcpServers": {
"obop": {
"command": "/usr/local/bin/obop",
"args": ["mcp"],
"env": {
"OBOP_TOKEN": "obop_your_agent_token",
"OBOP_DATABASE_URL": "sqlite:///Users/me/obop.db"
}
}
}
}Quittez puis relancez Claude Desktop. Claude demande votre accord avant d'utiliser un outil.
Claude Code
Utilisez la ligne de commande. Tout ce qui suit -- est la commande du serveur :
claude mcp add --transport stdio \
--env OBOP_TOKEN=obop_your_agent_token \
--env OBOP_DATABASE_URL=sqlite:///home/me/obop.db \
obop -- /usr/local/bin/obop mcpPlacez au moins une autre option (ici --transport stdio) entre le dernier --env et le nom du serveur. Ajoutez --scope project pour écrire plutôt un fichier .mcp.json partagé, ou --scope user pour l'utiliser dans tous les projets. Un fichier de projet ressemble à ceci ; la forme ${...} lit la valeur dans votre environnement, de sorte que le jeton n'est pas versionné :
{
"mcpServers": {
"obop": {
"type": "stdio",
"command": "/usr/local/bin/obop",
"args": ["mcp"],
"env": {
"OBOP_TOKEN": "${OBOP_TOKEN}",
"OBOP_DATABASE_URL": "sqlite:///home/me/obop.db"
}
}
}
}Vérifiez avec claude mcp get obop ou /mcp dans Claude Code.
Cursor
Créez .cursor/mcp.json dans un projet, ou ~/.cursor/mcp.json pour tous les projets :
{
"mcpServers": {
"obop": {
"type": "stdio",
"command": "/usr/local/bin/obop",
"args": ["mcp"],
"env": {
"OBOP_TOKEN": "${env:OBOP_TOKEN}",
"OBOP_DATABASE_URL": "sqlite:///Users/me/obop.db"
}
}
}
}Les exemples de Cursor omettent type pour les serveurs stdio ; son tableau de champs le mentionne. ${env:NAME} lit la valeur dans l'environnement dans lequel Cursor a été lancé.
VS Code
Créez .vscode/mcp.json. La clé de premier niveau de VS Code est servers, et non mcpServers, et il peut demander le jeton à la saisie pour qu'il ne soit jamais écrit sur le disque :
{
"inputs": [
{
"type": "promptString",
"id": "obop-token",
"description": "obop agent token",
"password": true
}
],
"servers": {
"obop": {
"type": "stdio",
"command": "/usr/local/bin/obop",
"args": ["mcp"],
"env": {
"OBOP_TOKEN": "${input:obop-token}",
"OBOP_DATABASE_URL": "sqlite:///Users/me/obop.db"
}
}
}
}La commande guidée MCP: Add Server de VS Code peut plutôt proposer un fichier .mcp.json portable au format mcpServers ; selon sa documentation, les deux sont acceptés.
Windsurf
La documentation de Windsurf a été déplacée vers le site de Devin Desktop et décrit le fichier comme mcp_config.json. Nous n'avons pas pu confirmer l'emplacement actuel du fichier pour Windsurf lui-même. Windsurf utilisait historiquement ~/.codeium/windsurf/mcp_config.json ; la page de Devin Desktop indique ~/.config/devin/mcp_config.json (macOS et Linux) et %APPDATA%\devin\mcp_config.json (Windows). Vérifiez l'emplacement dans les paramètres de votre version. Le format est le même, de forme mcpServers :
{
"mcpServers": {
"obop": {
"command": "/usr/local/bin/obop",
"args": ["mcp"],
"env": {
"OBOP_TOKEN": "${env:OBOP_TOKEN}",
"OBOP_DATABASE_URL": "sqlite:///Users/me/obop.db"
}
}
}
}Codex CLI
Ajoutez une table à ~/.codex/config.toml (ou à .codex/config.toml dans un projet de confiance), ou exécutez codex mcp add :
[mcp_servers.obop]
command = "/usr/local/bin/obop"
args = ["mcp"]
env_vars = ["OBOP_TOKEN"]
[mcp_servers.obop.env]
OBOP_DATABASE_URL = "sqlite:///home/me/obop.db"env_vars transmet OBOP_TOKEN depuis votre shell au lieu de l'écrire dans le fichier.
Gemini CLI
Ajoutez à ~/.gemini/settings.json :
{
"mcpServers": {
"obop": {
"command": "/usr/local/bin/obop",
"args": ["mcp"],
"env": {
"OBOP_TOKEN": "$OBOP_TOKEN",
"OBOP_DATABASE_URL": "sqlite:///home/me/obop.db"
}
}
}
}La documentation de Gemini CLI indique qu'il a été remplacé par un autre outil en 2026 ; consultez cette page pour votre version. Nous n'avons pas essayé obop avec lui.
Tout autre client MCP
obop est un simple serveur stdio. Quelle que soit la forme du fichier du client, il faut une command (obop), des args (["mcp"]) et deux variables d'environnement. Si le client ne prend en charge que les serveurs distants, il ne peut pas encore se connecter.
Ce que voit l'agent
Après la connexion, demandez à l'agent de lister ses outils. Vous ne devriez voir que les commandes que ses scopes autorisent, avec le suffixe « (agents propose; a human approves) » sur celles qui requièrent une approbation. Essayez d'abord une lecture, par exemple « Liste les trois pistes les plus récentes », puis consultez La boucle d'approbation.
Si le client n'affiche aucun outil ou une erreur, rendez-vous sur Dépannage.
Vérifié et non vérifié
| Élément | État |
|---|---|
Poignée de main obop mcp, tools/list, tools/call, résultat d'approbation | Exécutés sur une vraie instance locale. |
| Formats de configuration de Claude Desktop, Claude Code, Cursor, VS Code, Codex, Gemini CLI | Tirés de la documentation de chaque client. Nous n'avons pas démarré tous les clients. |
| Emplacement du fichier de Windsurf | Non confirmé, voir ci-dessus. |