Aller au contenu principal

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_list avec 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 :

  1. Ouvrez Settings > MCP Servers
  2. 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

EntiteListGetCreate
companiessmartdoc_companies_listsmartdoc_companies_getsmartdoc_companies_create
documentssmartdoc_documents_listsmartdoc_documents_getsmartdoc_documents_create
document_typessmartdoc_document_types_listsmartdoc_document_types_getsmartdoc_document_types_create
kb_articlessmartdoc_kb_articles_listsmartdoc_kb_articles_getsmartdoc_kb_articles_create
kb_categoriessmartdoc_kb_categories_listsmartdoc_kb_categories_getsmartdoc_kb_categories_create
assetssmartdoc_assets_listsmartdoc_assets_getsmartdoc_assets_create
asset_typessmartdoc_asset_types_listsmartdoc_asset_types_getsmartdoc_asset_types_create
credentialssmartdoc_credentials_listsmartdoc_credentials_getsmartdoc_credentials_create
certificatessmartdoc_certificates_listsmartdoc_certificates_getsmartdoc_certificates_create
applicationssmartdoc_applications_listsmartdoc_applications_getsmartdoc_applications_create
serialssmartdoc_serials_listsmartdoc_serials_getsmartdoc_serials_create
vpnsmartdoc_vpn_listsmartdoc_vpn_getsmartdoc_vpn_create
wifismartdoc_wifi_listsmartdoc_wifi_getsmartdoc_wifi_create
agreementssmartdoc_agreements_listsmartdoc_agreements_getsmartdoc_agreements_create
websitessmartdoc_websites_listsmartdoc_websites_getsmartdoc_websites_create
network_diagramssmartdoc_network_diagrams_listsmartdoc_network_diagrams_getsmartdoc_network_diagrams_create
tagssmartdoc_tags_listsmartdoc_tags_getsmartdoc_tags_create
folderssmartdoc_folders_listsmartdoc_folders_getsmartdoc_folders_create
entity_linkssmartdoc_entity_links_listsmartdoc_entity_links_getsmartdoc_entity_links_create
rackssmartdoc_racks_listsmartdoc_racks_getsmartdoc_racks_create
changelogssmartdoc_changelogs_listsmartdoc_changelogs_getsmartdoc_changelogs_create
photossmartdoc_photos_listsmartdoc_photos_get
processessmartdoc_processes_listsmartdoc_processes_getsmartdoc_processes_create

Outils speciaux

Recherche globale cross-entites.

ParametreTypeDescription
qstringTerme de recherche (obligatoire)
entity_typesstringTypes d'entites separes par virgule
limitnumberMax 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 :

ParametreTypeDefautDescription
pagenumber1Page a recuperer
limitnumber25Elements par page (max: 100)
searchstringRecherche textuelle
sort_bystringvarieColonne de tri
sort_orderasc | descdescOrdre
company_idstringFiltrer par compagnie (si applicable)
statusstringFiltrer par statut

Parametres des outils Get

ParametreTypeDescription
idstringUUID 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 :

MethodeEndpointDescription
POST/mcpAppels d'outils et initialisation de session
GET/mcpReconnexion SSE (flux evenements)
DELETE/mcpFermeture de session

Gestion des sessions

  • Chaque connexion cree une session unique identifiee par un UUID
  • L'en-tete Mcp-Session-Id est 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_list avec company_id pour filtrer.

Inventaire reseau

« Quels serveurs ont une garantie qui expire dans les 90 prochains jours ? »

L'IA appelle smartdoc_assets_list et filtre les resultats.

Recherche rapide

« Trouve tous les identifiants lies au VPN du bureau de Montreal »

L'IA appelle smartdoc_search avec 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_create avec le contenu genere.

Audit de securite

« Liste-moi tous les certificats SSL qui expirent ce mois-ci »

L'IA appelle smartdoc_certificates_list et filtre par valid_until.


Depannage

L'outil n'apparait pas dans Claude Desktop

  1. Verifiez que le fichier de configuration est au bon emplacement
  2. Verifiez que la cle API est valide (testez avec curl)
  3. Redemarrez completement Claude Desktop
  4. 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.