NikonMCP est le module de l'appareil photo Nikon pour le serveur MCP local de l'application. Il expose l'état sélectionné de l'appareil photo Nikon et les actions de l'appareil photo à un client MCP.

Utilisez NikonMCP lorsqu'un assistant AI, un outil de laboratoire, un client scriptable ou un contrôleur externe a besoin d'inspecter l'état de l'appareil photo Nikon connecté ou de demander un petit ensemble d'actions de l'appareil photo. Utilisez l'interface utilisateur normale de l'application lorsque vous avez besoin d'un contrôle manuel complet, de la configuration, de la navigation dans les images, de la révision des métadonnées ou de l'édition de flux de travail.

Avant de commencer

  1. Ouvrez le serveur MCP.
  2. Activez la carte du module NikonMCP.
  3. Confirmez le point de terminaison et le jeton d'accès.
  4. Démarrez le serveur MCP.
  5. Configurez votre client MCP avec le point de terminaison et le jeton.
  6. Dans le client, listez les outils et confirmez que les outils Nikon apparaissent.

Le client doit utiliser la liste des outils MCP qu'il reçoit du serveur comme source de vérité. Différentes versions de l'application peuvent exposer différents outils NikonMCP.

État de l'appareil photo

nikon_camera_get_state renvoie l'instantané de l'état actuel de Nikon. Les outils de mutation renvoient également un instantané de l'état lorsque cela est pratique.

Les premiers champs d'état de l'appareil photo NikonMCP sont :

  • canCapture: vrai lorsque l'application permet actuellement une demande de capture sans AF.
  • statusMessage: le même message d'état court de l'appareil photo affiché dans l'application.
  • canConfigureConnection: vrai lorsque les paramètres de connexion peuvent être modifiés.
  • isConnected: vrai lorsque le boîtier Nikon sélectionné est connecté.
  • isLiveViewEnabled: vrai lorsque la vue en direct est actuellement activée.
  • lastCapturedImagePath: le chemin final de l'image la plus récemment enregistrée lorsqu'il est connu.
  • lastCapturedImagePaths: tous les chemins finaux de la capture la plus récente lorsque plus d'un fichier a été enregistré.

lastCapturedImagePath est utile pour les clients qui capturent une image puis inspectent ce fichier enregistré avec un outil d'image ou de vision séparé. Pour les modes RAW plus JPEG ou autres fichiers multiples, utilisez lastCapturedImagePaths lorsque le client a besoin de chaque fichier enregistré.

Outils NikonMCP

nikon_hello

Valide que NikonMCP est activé et accessible. Il n'accède pas à l'appareil photo.

nikon_camera_get_state

Lit l'instantané de l'état actuel de Nikon. C'est le premier appel le plus sûr après la connexion d'un client. Utilisez-le avant de demander une capture, une vue en direct ou un focus afin que le client puisse voir si l'appareil photo est prêt.

nikon_camera_toggle_connection

Demande le même comportement de basculement de connexion que le contrôle de connexion de l'appareil photo de l'application. Si le boîtier est déconnecté, l'application commence la connexion. Si le boîtier est connecté, l'application commence la déconnexion.

Le résultat est normalement accepted, car la connexion et la déconnexion passent par le chemin de communication de l'appareil photo de l'application et peuvent encore être en cours après le retour de la réponse MCP.

nikon_camera_capture

Demande le même chemin de capture sans AF que le bouton de prise de vue de l'application. L'outil vérifie canCapture immédiatement avant de demander la capture.

Le résultat est normalement accepted, car la capture, le transfert, la génération de chemin final, les métadonnées et le travail de sauvegarde de fichiers peuvent continuer après le retour de la réponse MCP. Appelez nikon_camera_get_state plus tard pour inspecter le message d'état mis à jour et le chemin de l'image la plus récemment enregistrée.

nikon_camera_toggle_live_view

Demande à activer ou désactiver la vue en direct. L'appareil photo doit être connecté. Si la vue en direct n'est pas prise en charge ou ne peut pas être modifiée dans l'état actuel de l'appareil photo, l'outil est rejeté.

nikon_camera_contrast_af

Demande un autofocus par contraste pendant que la vue en direct est activée. L'appareil photo doit être connecté, la vue en direct doit être activée et l'AF par contraste doit être disponible dans l'état actuel de l'appareil photo.

Statuts des résultats

Les résultats des outils NikonMCP utilisent une structure de résultat stable :

  • ok: vrai pour les demandes réussies ou acceptées, faux pour le rejet ou l'erreur.
  • status: ok, accepted, rejected, ou error.
  • reasonCode: un code stable lorsque ok est faux.
  • message: une courte explication.
  • state: l'instantané de l'état actuel de Nikon lorsqu'il est disponible.
  • operation: détails sur les opérations futures lorsqu'une version ultérieure ajoute le suivi des opérations de longue durée.

Les statuts habituels sont :

  • ok: l'outil s'est terminé immédiatement, comme nikon_camera_get_state ou nikon_hello.
  • accepted: l'application a accepté une demande de l'appareil photo et a mis en file d'attente ou a commencé le travail.
  • rejected: la demande a été comprise, mais l'état actuel de l'appareil photo ou de l'application ne le permet pas.
  • error: une défaillance inattendue de l'implémentation ou d'exécution s'est produite.

Les problèmes d'état de l'appareil photo attendus sont normalement rejected, pas des erreurs de protocole. Par exemple, une capture alors que l'appareil photo n'est pas prêt devrait renvoyer un rejet structuré au lieu d'une réponse MCP cassée.

Codes de raison de rejet

Les codes de rejet courants de NikonMCP incluent :

  • camera_not_connected: l'outil demandé nécessite un appareil photo connecté.
  • camera_connecting: l'appareil photo est déjà en train de se connecter ou de se déconnecter.
  • capture_unavailable: la capture n'est actuellement pas autorisée.
  • live_view_unavailable: la vue en direct ne peut pas être activée dans l'état actuel.
  • contrast_af_unavailable: l'AF par contraste ne peut pas fonctionner dans l'état actuel.
  • camera_busy: l'appareil photo ou l'application est occupé.
  • user_policy_disabled: le profil ou la politique du module bloque la demande.
  • license_unavailable: l'état de la licence actuel ne permet pas l'action demandée.

Exemples d'appels d'outils

Listez d'abord les outils :

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

Obtenez l'état de l'appareil photo :

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

Capturez une image :

{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"nikon_camera_capture","arguments":{}}}

Basculez la vue en direct :

{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"nikon_camera_toggle_live_view","arguments":{}}}

Exécutez l'AF par contraste :

{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{"name":"nikon_camera_contrast_af","arguments":{}}}

La plupart des clients MCP créent ces messages JSON-RPC pour vous. Utilisez ces exemples lors du débogage d'un client personnalisé ou de la vérification des noms de demande.

Flux de travail pratique

  1. Démarrez le serveur MCP avec NikonMCP activé.
  2. Connectez le client MCP.
  3. Appelez nikon_camera_get_state.
  4. Si isConnected est faux, demandez nikon_camera_toggle_connection.
  5. Attendez que l'état signale isConnected vrai.
  6. Confirmez que canCapture est vrai.
  7. Demandez nikon_camera_capture.
  8. Interrogez nikon_camera_get_state jusqu'à ce que le statut et le dernier chemin capturé soient mis à jour.

Pour la mise au point en vue en direct :

  1. Confirmez que isConnected est vrai.
  2. Demandez nikon_camera_toggle_live_view si la vue en direct est désactivée.
  3. Attendez que isLiveViewEnabled soit vrai.
  4. Demandez nikon_camera_contrast_af.

Ce que NikonMCP ne fait pas

NikonMCP n'est pas un remplacement pour l'interface utilisateur complète de l'application. Cette première surface de l'appareil photo n'expose pas tous les paramètres de l'appareil photo, tous les flux de travail, le streaming d'images en direct, la navigation dans les images, l'édition de profils ou la navigation générale dans l'application.

MCP contrôle l'état et les demandes d'action. Les données d'image volumineuses ou continues doivent utiliser les fonctionnalités de l'application ou un futur canal latéral conçu à cet effet.

Dépannage

Si NikonMCP n'apparaît pas dans le client :

  • Confirmez que la carte du module NikonMCP est activée sur la page du serveur MCP.
  • Arrêtez et redémarrez le serveur MCP après avoir activé le module.
  • Reconnectez ou actualisez le client.
  • Confirmez que le client est connecté au bon point de terminaison et au bon jeton.

Si nikon_camera_capture est rejeté :

  • Appelez nikon_camera_get_state et vérifiez canCapture.
  • Confirmez que l'appareil photo est connecté.
  • Confirmez que l'appareil photo n'est pas occupé, en train d'enregistrer, d'écrire ou dans un autre flux de travail.
  • Confirmez que l'application peut capturer avec le bouton de prise de vue normal.

Si le basculement de connexion est rejeté ou ne se termine pas :

  • Confirmez que le boîtier sélectionné correspond à l'appareil photo Nikon physique.
  • Confirmez que l'appareil photo est allumé et connecté par USB.
  • Confirmez qu'aucune autre application n'utilise l'appareil photo Nikon.
  • Surveillez le message d'état de l'application et le journal du serveur MCP.
  • Utilisez l'aide normale de connexion du boîtier si l'appareil photo ne peut pas se connecter.

Si le basculement de la vue en direct est rejeté :

  • Confirmez que l'appareil photo est connecté.
  • Confirmez que le modèle d'appareil photo et le mode actuel prennent en charge la vue en direct à distance.
  • Confirmez que l'appareil photo n'est pas occupé à capturer ou à sauvegarder.
  • Essayez de basculer la vue en direct depuis l'interface utilisateur de l'application pour confirmer l'état de l'appareil photo.

Si l'AF par contraste est rejeté :

  • Confirmez que la vue en direct est activée.
  • Confirmez que l'objectif et le mode de mise au point de l'appareil photo prennent en charge l'autofocus.
  • Confirmez que l'appareil photo n'est pas déjà en train de faire la mise au point, de capturer, d'enregistrer ou d'être occupé.
  • Essayez l'AF par contraste depuis l'interface utilisateur de l'application pour confirmer l'état de l'appareil photo.

Si lastCapturedImagePath ne se met pas à jour :

  • Attendez que le transfert de capture et la sauvegarde finale soient terminés.
  • Confirmez que la destination de capture envoie des fichiers à l'ordinateur lorsque vous attendez un chemin côté ordinateur.
  • Vérifiez les paramètres de chemin et le message d'état de l'application.
  • Pour les captures de plusieurs fichiers, inspectez lastCapturedImagePaths.
  • Vérifiez le journal de l'application pour les erreurs de sauvegarde de capture.

Configuration associée

Utilisez le serveur MCP pour la configuration du point de terminaison, du jeton et du module. Utilisez les contrôles du boîtier pour la connexion normale de l'appareil photo Nikon et les contrôles de capture. Utilisez la vue en direct pour la configuration de la vue en direct et le comportement de la vue en direct côté appareil photo. Utilisez le chemin pour le dossier final et le nom de fichier utilisés par les images sauvegardées.