Serveur MCP SmartDoc
Le serveur MCP (Model Context Protocol) permet aux assistants IA comme Claude Desktop et Cursor d'acceder directement a vos donnees SmartDoc. L'IA peut ainsi consulter votre documentation, rechercher des actifs, lister des identifiants et bien plus, le tout de maniere securisee via votre cle API.
Qu'est-ce que MCP ?
Le Model Context Protocol est un standard ouvert qui permet aux applications IA de se connecter a des sources de donnees externes. Au lieu de copier-coller des informations, l'IA peut interroger SmartDoc directement.
Exemple d'utilisation avec Claude :
« Liste-moi tous les serveurs du client Acme Corp »
Claude utilise l'outil
smartdoc_assets_listavec le filtre compagnie pour retourner les resultats directement depuis votre base SmartDoc.
Configuration Claude Desktop
Ajoutez la configuration suivante dans votre fichier Claude Desktop :
macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
Windows : %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"smartdoc": {
"url": "https://smartdoc.mspsmart.ca/mcp",
"headers": {
"Authorization": "Bearer sk-smartdoc-VOTRE_CLE_ICI"
}
}
}
}
Redemarrez Claude Desktop apres la modification. Le serveur SmartDoc apparaitra dans la liste des outils disponibles.
Configuration Cursor
Dans les parametres de Cursor, ajoutez un serveur MCP :
- Ouvrez Settings > MCP Servers
- Ajoutez un nouveau serveur avec :
{
"smartdoc": {
"url": "https://smartdoc.mspsmart.ca/mcp",
"headers": {
"Authorization": "Bearer sk-smartdoc-VOTRE_CLE_ICI"
}
}
}
Configuration Claude Code
Ajoutez dans votre fichier .claude/settings.json :
{
"mcpServers": {
"smartdoc": {
"url": "https://smartdoc.mspsmart.ca/mcp",
"headers": {
"Authorization": "Bearer sk-smartdoc-VOTRE_CLE_ICI"
}
}
}
}
Outils disponibles
Le serveur MCP expose automatiquement ~68 outils generes depuis le meme registre d'entites que l'API REST. Chaque entite genere 3 outils : list, get et create.
Convention de nommage
smartdoc_{entite}_{action}
Exemples : smartdoc_documents_list, smartdoc_assets_get, smartdoc_companies_create
Outils par entite
| Entite | List | Get | Create |
|---|---|---|---|
companies | smartdoc_companies_list | smartdoc_companies_get | smartdoc_companies_create |
documents | smartdoc_documents_list | smartdoc_documents_get | smartdoc_documents_create |
document_types | smartdoc_document_types_list | smartdoc_document_types_get | smartdoc_document_types_create |
kb_articles | smartdoc_kb_articles_list | smartdoc_kb_articles_get | smartdoc_kb_articles_create |
kb_categories | smartdoc_kb_categories_list | smartdoc_kb_categories_get | smartdoc_kb_categories_create |
assets | smartdoc_assets_list | smartdoc_assets_get | smartdoc_assets_create |
asset_types | smartdoc_asset_types_list | smartdoc_asset_types_get | smartdoc_asset_types_create |
credentials | smartdoc_credentials_list | smartdoc_credentials_get | smartdoc_credentials_create |
certificates | smartdoc_certificates_list | smartdoc_certificates_get | smartdoc_certificates_create |
applications | smartdoc_applications_list | smartdoc_applications_get | smartdoc_applications_create |
serials | smartdoc_serials_list | smartdoc_serials_get | smartdoc_serials_create |
vpn | smartdoc_vpn_list | smartdoc_vpn_get | smartdoc_vpn_create |
wifi | smartdoc_wifi_list | smartdoc_wifi_get | smartdoc_wifi_create |
agreements | smartdoc_agreements_list | smartdoc_agreements_get | smartdoc_agreements_create |
websites | smartdoc_websites_list | smartdoc_websites_get | smartdoc_websites_create |
network_diagrams | smartdoc_network_diagrams_list | smartdoc_network_diagrams_get | smartdoc_network_diagrams_create |
tags | smartdoc_tags_list | smartdoc_tags_get | smartdoc_tags_create |
folders | smartdoc_folders_list | smartdoc_folders_get | smartdoc_folders_create |
entity_links | smartdoc_entity_links_list | smartdoc_entity_links_get | smartdoc_entity_links_create |
racks | smartdoc_racks_list | smartdoc_racks_get | smartdoc_racks_create |
changelogs | smartdoc_changelogs_list | smartdoc_changelogs_get | smartdoc_changelogs_create |
photos | smartdoc_photos_list | smartdoc_photos_get | — |
processes | smartdoc_processes_list | smartdoc_processes_get | smartdoc_processes_create |
Outils speciaux
smartdoc_search
Recherche globale cross-entites.
| Parametre | Type | Description |
|---|---|---|
q | string | Terme de recherche (obligatoire) |
entity_types | string | Types d'entites separes par virgule |
limit | number | Max resultats par type (defaut : 10) |
Exemple d'utilisation IA :
« Cherche tout ce qui concerne 'firewall' dans SmartDoc »
smartdoc_whoami
Retourne les informations sur la cle API courante : portee, filtrage par compagnie, tenant et liste des entites disponibles.
Exemple d'utilisation IA :
« Quels sont mes droits d'acces sur SmartDoc ? »
Parametres des outils List
Tous les outils _list acceptent les parametres suivants :
| Parametre | Type | Defaut | Description |
|---|---|---|---|
page | number | 1 | Page a recuperer |
limit | number | 25 | Elements par page (max: 100) |
search | string | — | Recherche textuelle |
sort_by | string | varie | Colonne de tri |
sort_order | asc | desc | desc | Ordre |
company_id | string | — | Filtrer par compagnie (si applicable) |
status | string | — | Filtrer par statut |
Parametres des outils Get
| Parametre | Type | Description |
|---|---|---|
id | string | UUID de l'enregistrement (obligatoire) |
Parametres des outils Create
Les parametres varient selon l'entite. L'IA recoit automatiquement la description des champs disponibles. La portee de la cle doit etre read-write ou full-access.
Protocole technique
Le serveur MCP SmartDoc utilise le transport Streamable HTTP :
| Methode | Endpoint | Description |
|---|---|---|
POST | /mcp | Appels d'outils et initialisation de session |
GET | /mcp | Reconnexion SSE (flux evenements) |
DELETE | /mcp | Fermeture de session |
Gestion des sessions
- Chaque connexion cree une session unique identifiee par un UUID
- L'en-tete
Mcp-Session-Idest retourne apres l'initialisation - Les sessions expirent apres 30 minutes d'inactivite
- L'authentification est verifiee a chaque requete POST
Securite
- Meme authentification par cle API que l'API REST
- Meme filtrage par compagnie et portee
- Les champs chiffres ne sont jamais exposes
- Rate limiting partage avec l'API REST
Cas d'utilisation
Documentation client
« Montre-moi tous les documents du client Acme Corp »
L'IA appelle
smartdoc_documents_listaveccompany_idpour filtrer.
Inventaire reseau
« Quels serveurs ont une garantie qui expire dans les 90 prochains jours ? »
L'IA appelle
smartdoc_assets_listet filtre les resultats.
Recherche rapide
« Trouve tous les identifiants lies au VPN du bureau de Montreal »
L'IA appelle
smartdoc_searchavec la requete « VPN Montreal ».
Creation de documentation
« Cree un document de procedure pour le client XYZ avec les etapes suivantes... »
L'IA appelle
smartdoc_documents_createavec le contenu genere.
Audit de securite
« Liste-moi tous les certificats SSL qui expirent ce mois-ci »
L'IA appelle
smartdoc_certificates_listet filtre parvalid_until.
Depannage
L'outil n'apparait pas dans Claude Desktop
- Verifiez que le fichier de configuration est au bon emplacement
- Verifiez que la cle API est valide (testez avec
curl) - Redemarrez completement Claude Desktop
- Verifiez les logs Claude Desktop pour des erreurs de connexion
Erreur 401
La cle API est invalide, expiree ou revoquee. Creez une nouvelle cle dans l'onglet API Keys.
Erreur 403
La portee de la cle ne permet pas cette operation. Utilisez une cle read-write ou full-access.
Erreur 429
Limite de requetes depassee (1 000/heure). Attendez ou utilisez une autre cle.
Resultats vides
Verifiez le filtrage par compagnie de votre cle API. Si la cle est en mode include, seules les compagnies selectionnees sont accessibles.