API MCP (Model Context Protocol)
Un endpoint. 11 outils. JSON-RPC 2.0. Connectez Claude Desktop, Windsurf, Cursor, ou faites du cURL à l'ancienne. On ne juge pas vos choix technologiques. (Enfin, presque pas.)
Pourquoi MCP ?
Parce que REST c'est bien, mais MCP c'est mieux. Un seul endpoint, un protocole standardisé, et vos outils IA peuvent directement interagir avec vos données. Plus besoin de coder des intégrations à la main. Claude fait le boulot pour vous.
Endpoint
POST https://api.skemacms.com/mcp
En local : http://localhost:3000/mcp
Authentification
Header Authorization: Bearer pk_live_xxx. Pas de OAuth, pas de refresh tokens, pas de danse du ventre. Juste votre clé API. Simple. Efficace. Comme on aime.
Les 11 outils disponibles
| Outil | Description | Permission |
|---|---|---|
get_collections | Liste les collections accessibles | read |
get_collection | Schéma d'une collection (champs, types, relations) | read |
get_collection_items | Liste les items (pagination, tri, filtres, populate) | read |
get_collection_item | Récupère un item par ID (avec populate) | read |
search_collection_items | Recherche textuelle dans une collection | read |
count_collection_items | Compte les items (avec filtres) | read |
create_collection_item | Crée un nouvel item | create |
update_collection_item | Met à jour un item (merge partiel) | update |
delete_collection_item | Supprime un item. Irréversible. Comme vos regrets. | delete |
batch_create_items | Crée plusieurs items d'un coup | create |
batch_update_items | Met à jour plusieurs items d'un coup | update |
Exemple rapide
Lister les commandes avec les clients associés :
curl -X POST https://api.skemacms.com/mcp \
-H "Authorization: Bearer pk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_collection_items",
"arguments": {
"collection": "commandes",
"perPage": 10,
"populate": "id_client"
}
}
}'Format de réponse
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{
"type": "text",
"text": "{"data": [...], "count": 42, "page": 1}"
}]
}
}Le résultat est dans result.content[0].text. C'est du JSON stringifié. Parsez-le et c'est bon.