La page Serveur MCP démarre et arrête le serveur local du Protocole de Contexte de Modèle de l'application. MCP permet à un client compatible, tel qu'un assistant AI ou un outil d'automatisation, de découvrir les outils fournis par l'application et de demander ces outils via un point de terminaison HTTP local.

Le serveur est intégré à l'application en cours d'exécution. Ce n'est pas un service de ligne de commande séparé, et ce n'est pas un service Internet public. Démarrez-le uniquement lorsque vous souhaitez qu'un client MCP se connecte.

Ce que MCP peut contrôler

MCP expose les capacités de domaine que l'application publie explicitement. Ce n'est pas une surface de télécommande générale pour la fenêtre de l'application.

Pour ControlMyNikon, le premier module utile est NikonMCP. NikonMCP est destiné à l'état de l'appareil photo Nikon et aux actions de l'appareil photo telles que la capture, la vue en direct, le contrôle de connexion et l'autofocus de contraste.

Utilisez NikonMCP pour la liste des outils spécifiques à Nikon et les détails de l'état de l'appareil photo.

Contrôles de la page

  • Démarrer commence à héberger le point de terminaison MCP.
  • Arrêter met fin au point de terminaison MCP et libère le port.
  • Adresse définit l'adresse locale à écouter.
  • Port définit le port TCP.
  • Point de terminaison configuré montre l'URL à donner au client MCP.
  • Copier l'URL copie le point de terminaison configuré.
  • Le jeton Bearer est le jeton que les clients doivent envoyer avec les requêtes.
  • Copier le jeton copie le jeton.
  • Régénérer le jeton crée un nouveau jeton et invalide l'ancien après le redémarrage du serveur.
  • Modules liste les modules MCP déclarés par l'application, tels que NikonMCP.
  • Activé ou Désactivé contrôle si un module contribue des outils au serveur.
  • Journal montre les messages de démarrage, d'arrêt, de demande, de rejet et d'appel d'outils du serveur.
  • Effacer dans le menu contextuel du Journal efface le journal de la page visible.

Le point de terminaison par défaut est :

http://127.0.0.1:50507/mcp

Le serveur ne démarre que lorsque au moins un module est activé et que le jeton Bearer n'est pas vide. L'adresse, le port, le jeton Bearer et les paramètres de module sont sauvegardés par profil. Si le Serveur MCP est en cours d'exécution lorsque le profil est enregistré ou que l'application se ferme, ce profil peut le redémarrer la prochaine fois.

Adresse et port

Utilisez 127.0.0.1 lorsque le client MCP s'exécute sur le même ordinateur. C'est la configuration la plus sûre et la plus courante.

Utilisez une adresse IPv4 LAN attribuée à cet ordinateur uniquement lorsqu'un client de confiance sur le même réseau privé doit se connecter. Les liaisons génériques, de diffusion, non locales et non-IPv4 sont rejetées.

N'exposez pas le point de terminaison MCP via le transfert de port du routeur, le Wi-Fi public, les VPN non fiables ou les règles de pare-feu exposées à Internet. Les outils MCP peuvent demander de réelles actions de l'application, donc traitez le point de terminaison et le jeton comme une clé de contrôle locale.

Connexion d'un client

Utilisez un client HTTP MCP Streamable. Configurez le client avec :

  1. URL du point de terminaison : le point de terminaison configuré affiché sur la page.
  2. En-tête d'autorisation : Authorization: Bearer your-token.

La plupart des clients demandent l'URL et un jeton bearer ou un en-tête personnalisé. Si votre client stocke les en-têtes séparément, utilisez :

Header name: Authorization
Header value: Bearer your-token

Remplacez your-token par le jeton affiché sur la page Serveur MCP. N'incluez pas de guillemets autour du jeton.

Forme de demande technique

Les clients MCP envoient normalement ces demandes pour vous. Les détails ci-dessous sont utiles lors de la configuration ou du débogage d'un client.

Le point de terminaison accepte les requêtes HTTP POST à /mcp. Le corps de la demande est JSON-RPC. Le client doit inclure le jeton bearer lorsqu'un jeton est configuré.

Demande d'initialisation :

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"local-client","version":"1.0"}}}

Notification d'initialisation :

{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}

Lister les outils :

{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}

Appeler un outil :

{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"nikon_hello","arguments":{}}}

Le serveur renvoie des résultats d'outils structurés. Les rejets d'application attendus, tels qu'un appareil photo non connecté, sont renvoyés comme des résultats d'outils normaux avec ok défini sur false.

Statuts du serveur

  • Arrêté signifie que le point de terminaison n'écoute pas.
  • Démarré signifie que le point de terminaison écoute à l'adresse et au port configurés.
  • Prêt à démarrer le Serveur MCP signifie que la page est chargée et que les paramètres sont disponibles.
  • Hôte MCP démarré signifie que le serveur a démarré avec succès.
  • Hôte MCP arrêté signifie que le serveur s'est arrêté normalement.
  • Aucun runtime MCP enregistré signifie que l'application n'a pas déclaré de runtime MCP pour cette page.
  • Hôte MCP désactivé par le profil signifie que le profil enregistré a l'hébergement désactivé.
  • Hôte MCP n'a pas démarré car aucun module MCP déclaré n'est activé signifie que toutes les cartes de module sont désactivées.
  • Échec du démarrage de l'hôte MCP signifie que l'adresse, le port ou l'environnement local ont empêché le démarrage.

La zone Journal donne le message exact pour les échecs et les demandes rejetées.

Notes de sécurité

Le Serveur MCP utilise HTTP local en texte clair plus une autorisation par jeton bearer. Le jeton protège le chemin de la demande, mais la connexion n'est pas chiffrée. Utilisez la boucle de retour pour les clients sur le même ordinateur chaque fois que possible. Utilisez la liaison LAN uniquement sur des réseaux et des machines de confiance.

Régénérez le jeton s'il a été partagé avec un client en qui vous n'avez plus confiance. Après avoir régénéré le jeton, arrêtez et démarrez le Serveur MCP afin que les clients doivent utiliser la nouvelle valeur.

Dépannage

Si Démarrer est désactivé :

  • Activez au moins un module.
  • Confirmez que l'Adresse n'est pas vide.
  • Confirmez que le Port est compris entre 1 et 65535.
  • Confirmez que le jeton Bearer n'est pas vide.
  • Arrêtez le serveur avant de changer l'Adresse, le Port ou le jeton Bearer.

Si Démarrer échoue :

  • Un autre processus peut déjà utiliser le port.
  • L'adresse peut ne pas être attribuée à cet ordinateur.
  • Choisissez un autre port ou une autre adresse et réessayez.
  • Vérifiez le Journal pour le message d'échec exact.

Si le client ne peut pas se connecter :

  • Confirmez que le serveur indique Démarré.
  • Confirmez que l'URL du client correspond exactement au point de terminaison configuré.
  • Utilisez 127.0.0.1 uniquement pour les clients sur le même ordinateur.
  • Pour un autre ordinateur LAN, utilisez l'adresse IPv4 LAN de cet ordinateur et confirmez que les règles de pare-feu permettent la connexion.
  • Confirmez que le client prend en charge le MCP HTTP Streamable, pas le MCP uniquement stdio.

Si le client reçoit 401 Unauthorized :

  • Ajoutez l'en-tête Authorization.
  • Confirmez que l'en-tête commence par Bearer .
  • Confirmez que le jeton n'est pas vide.

Si le client reçoit 403 Forbidden :

  • Confirmez que le jeton correspond exactement au jeton Bearer actuel.
  • Si vous avez régénéré le jeton, mettez à jour le client.
  • Si la demande inclut un en-tête Origin, confirmez qu'il provient d'une origine locale autorisée.

Si le client reçoit 405 Method Not Allowed :

  • Le client utilise probablement HTTP GET.
  • Configurez le client pour des appels d'outils HTTP Streamable qui envoient POST /mcp.

Si aucun outil Nikon n'apparaît :

  • Confirmez que la carte de module NikonMCP est Activée.
  • Arrêtez et démarrez le Serveur MCP après avoir changé l'activation du module.
  • Confirmez que le client a été actualisé ou reconnecté après le redémarrage du serveur.