NikonMCP es el módulo de cámara Nikon para el servidor MCP local de la aplicación. Expone el estado de la cámara Nikon seleccionada y las acciones de la cámara a un cliente MCP.

Utiliza NikonMCP cuando un asistente de IA, herramienta de laboratorio, cliente programable o controlador externo necesita inspeccionar el estado de la cámara Nikon conectada o solicitar un pequeño conjunto de acciones de la cámara. Utiliza la interfaz de usuario normal de la aplicación cuando necesites control manual completo, configuración, navegación de imágenes, revisión de metadatos o edición de flujo de trabajo.

Antes de empezar

  1. Abre el Servidor MCP.
  2. Habilita la tarjeta del módulo NikonMCP.
  3. Confirma el endpoint y el token de portador.
  4. Inicia el Servidor MCP.
  5. Configura tu cliente MCP con el endpoint y el token.
  6. En el cliente, lista las herramientas y confirma que las herramientas Nikon aparezcan.

El cliente debe utilizar la lista de herramientas MCP que recibe del servidor como fuente de verdad. Diferentes versiones de la aplicación pueden exponer diferentes herramientas NikonMCP.

Estado de la cámara

nikon_camera_get_state devuelve la instantánea del estado actual de Nikon. Las herramientas que mutan también devuelven una instantánea del estado cuando es práctico.

Los primeros campos del estado de la cámara NikonMCP son:

  • canCapture: verdadero cuando la aplicación actualmente permite una solicitud de captura sin AF.
  • statusMessage: el mismo mensaje corto de estado de la cámara que se muestra en la aplicación.
  • canConfigureConnection: verdadero cuando se pueden cambiar los ajustes de conexión.
  • isConnected: verdadero cuando el cuerpo Nikon seleccionado está conectado.
  • isLiveViewEnabled: verdadero cuando la vista en vivo está actualmente habilitada.
  • lastCapturedImagePath: la ruta final de la imagen guardada más reciente cuando se conoce una.
  • lastCapturedImagePaths: todas las rutas finales de la captura más reciente cuando se guardaron más de un archivo.

lastCapturedImagePath es útil para clientes que capturan una imagen y luego inspeccionan ese archivo guardado con una herramienta de imagen o visión separada. Para modos de múltiples archivos como RAW más JPEG, utiliza lastCapturedImagePaths cuando el cliente necesite cada archivo guardado.

Herramientas NikonMCP

nikon_hello

Valida que NikonMCP esté habilitado y sea accesible. No accede a la cámara.

nikon_camera_get_state

Lee la instantánea del estado actual de Nikon. Esta es la primera llamada más segura después de conectar un cliente. Úsala antes de solicitar captura, vista en vivo o enfoque para que el cliente pueda ver si la cámara está lista.

nikon_camera_toggle_connection

Solicita el mismo comportamiento de alternancia de conexión que el control de conexión de la cámara de la aplicación. Si el cuerpo está desconectado, la aplicación inicia la conexión. Si el cuerpo está conectado, la aplicación inicia la desconexión.

El resultado es normalmente accepted, porque la conexión y desconexión pasan por la ruta de comunicación de la cámara de la aplicación y pueden seguir en progreso después de que la respuesta MCP regrese.

nikon_camera_capture

Solicita el mismo camino de captura sin AF que el botón de disparo de la aplicación. La herramienta verifica canCapture inmediatamente antes de solicitar la captura.

El resultado es normalmente accepted, porque la captura, transferencia, generación de ruta final, metadatos y trabajo de guardado de archivos pueden continuar después de que la respuesta MCP regrese. Llama a nikon_camera_get_state más tarde para inspeccionar el mensaje de estado actualizado y la ruta de la imagen guardada más reciente.

nikon_camera_toggle_live_view

Solicita alternar la vista en vivo encendida o apagada. La cámara debe estar conectada. Si la vista en vivo no es compatible o no se puede cambiar en el estado actual de la cámara, la herramienta es rechazada.

nikon_camera_contrast_af

Solicita enfoque automático por contraste mientras la vista en vivo está habilitada. La cámara debe estar conectada, la vista en vivo debe estar activada y el AF por contraste debe estar disponible en el estado actual de la cámara.

Estados de resultado

Los resultados de las herramientas NikonMCP utilizan una forma de resultado estructurada estable:

  • ok: verdadero para solicitudes exitosas o aceptadas, falso para rechazo o error.
  • status: ok, accepted, rejected, o error.
  • reasonCode: un código estable cuando ok es falso.
  • message: una breve explicación.
  • state: la instantánea del estado actual de Nikon cuando esté disponible.
  • operation: detalles de operación futura cuando una versión posterior agregue seguimiento de operaciones de larga duración.

Los estados habituales son:

  • ok: la herramienta se completó inmediatamente, como nikon_camera_get_state o nikon_hello.
  • accepted: la aplicación aceptó una solicitud de cámara y puso en cola o comenzó a trabajar.
  • rejected: la solicitud fue entendida, pero el estado actual de la cámara o de la aplicación no lo permite.
  • error: ocurrió un fallo inesperado de implementación o en tiempo de ejecución.

Los problemas esperados del estado de la cámara son normalmente rejected, no errores de protocolo. Por ejemplo, capturar mientras la cámara no está lista debería devolver un rechazo estructurado en lugar de una respuesta MCP rota.

Códigos de razón de rechazo

Los códigos de rechazo comunes de NikonMCP incluyen:

  • camera_not_connected: la herramienta solicitada necesita una cámara conectada.
  • camera_connecting: la cámara ya se está conectando o desconectando.
  • capture_unavailable: la captura no está permitida actualmente.
  • live_view_unavailable: la vista en vivo no se puede alternar en el estado actual.
  • contrast_af_unavailable: el AF por contraste no se puede ejecutar en el estado actual.
  • camera_busy: la cámara o la aplicación están ocupadas.
  • user_policy_disabled: el perfil o la política del módulo bloquea la solicitud.
  • license_unavailable: el estado de licencia actual no permite la acción solicitada.

Ejemplos de llamadas a herramientas

Lista de herramientas primero:

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

Obtener estado de la cámara:

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

Capturar una imagen:

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

Alternar vista en vivo:

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

Ejecutar AF por contraste:

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

La mayoría de los clientes MCP crean estos mensajes JSON-RPC por ti. Utiliza estos ejemplos al depurar un cliente personalizado o al verificar nombres de solicitudes.

Flujo de trabajo práctico

  1. Inicia el Servidor MCP con NikonMCP habilitado.
  2. Conecta el cliente MCP.
  3. Llama a nikon_camera_get_state.
  4. Si isConnected es falso, solicita nikon_camera_toggle_connection.
  5. Espera hasta que el estado informe que isConnected es verdadero.
  6. Confirma que canCapture es verdadero.
  7. Solicita nikon_camera_capture.
  8. Consulta nikon_camera_get_state hasta que el estado y la última ruta capturada se actualicen.

Para el enfoque de vista en vivo:

  1. Confirma que isConnected es verdadero.
  2. Solicita nikon_camera_toggle_live_view si la vista en vivo está apagada.
  3. Espera hasta que isLiveViewEnabled sea verdadero.
  4. Solicita nikon_camera_contrast_af.

Lo que NikonMCP no hace

NikonMCP no es un reemplazo para la interfaz de usuario completa de la aplicación. Esta primera superficie de cámara no expone todos los ajustes de la cámara, todos los flujos de trabajo, la transmisión de imágenes en vivo, la navegación de imágenes, la edición de perfiles o la navegación genérica de la aplicación.

MCP controla el estado y las solicitudes de acción. Los datos de imagen grandes o continuos deben utilizar las características de la aplicación o un futuro canal lateral diseñado para ese propósito.

Solución de problemas

Si NikonMCP no aparece en el cliente:

  • Confirma que la tarjeta del módulo NikonMCP está habilitada en la página del Servidor MCP.
  • Detén e inicia el Servidor MCP después de habilitar el módulo.
  • Reconecta o actualiza el cliente.
  • Confirma que el cliente está conectado al endpoint y token correctos.

Si nikon_camera_capture es rechazado:

  • Llama a nikon_camera_get_state y verifica canCapture.
  • Confirma que la cámara está conectada.
  • Confirma que la cámara no está ocupada, grabando, escribiendo o en otro flujo de trabajo.
  • Confirma que la aplicación puede capturar desde el botón de disparo normal.

Si el alternar conexión es rechazado o no finaliza:

  • Confirma que el cuerpo seleccionado coincide con la cámara Nikon física.
  • Confirma que la cámara está encendida y conectada por USB.
  • Confirma que ninguna otra aplicación está utilizando la cámara Nikon.
  • Observa el mensaje de estado de la aplicación y el registro del Servidor MCP.
  • Utiliza la ayuda de conexión del Cuerpo normal si la cámara no puede conectarse.

Si el alternar vista en vivo es rechazado:

  • Confirma que la cámara está conectada.
  • Confirma que el modelo de la cámara y el modo actual admiten vista en vivo remota.
  • Confirma que la cámara no está ocupada capturando o guardando.
  • Intenta alternar la vista en vivo desde la interfaz de usuario de la aplicación para confirmar el estado de la cámara.

Si el AF por contraste es rechazado:

  • Confirma que la vista en vivo está habilitada.
  • Confirma que el modo de enfoque del lente y la cámara admiten enfoque automático.
  • Confirma que la cámara no está ya enfocando, capturando, grabando o ocupada.
  • Intenta el AF por contraste desde la interfaz de usuario de la aplicación para confirmar el estado de la cámara.

Si lastCapturedImagePath no se actualiza:

  • Espera a que la transferencia de captura y el guardado final se completen.
  • Confirma que el destino de captura envía archivos a la computadora cuando esperas una ruta del lado de la computadora.
  • Verifica la configuración de la ruta y el mensaje de estado de la aplicación.
  • Para capturas de múltiples archivos, inspecciona lastCapturedImagePaths.
  • Revisa el registro de la aplicación en busca de errores de guardado de captura.

Configuración relacionada

Utiliza el Servidor MCP para la configuración de endpoint, token y módulo. Utiliza Controles del Cuerpo para la conexión normal de la cámara Nikon y los controles de captura. Utiliza Vista en Vivo para la configuración de vista en vivo y el comportamiento de vista en vivo del lado de la cámara. Utiliza Ruta para la carpeta final y el nombre de archivo utilizados por las imágenes guardadas.