Skip to main content
Glama
Mzzj114

nt-mcp-server

by Mzzj114

nt-mcp-server

Un servidor MCP independiente para leer, escribir y monitorear datos de FRC NetworkTables. Permite que un agente de IA hable con las tablas de red de un robot a través del protocolo NetworkTables. El objetivo principal es la simulación local de RobotPy (python -m robotpy sim en 127.0.0.1:5810).

dependencias fijadas (fastmcp==3.4.7, pyntcore==2026.2.2).

Ejecutar el servidor

uv run nt-mcp-server

O, equivalentemente, desde un checkout sin el shim de uv:

python -m nt_mcp_server

El servidor se ejecuta en stdio, que es como los clientes MCP (como opencode) se comunican con él.

Related MCP server: agent-comm

Conectar a RobotPy sim NetworkTables

La simulación debe estar en ejecución antes de que el servidor pueda leer o escribir algo útil. Iníciala desde su propio proyecto y venv:

cd <path-to-try-robotpy> && .venv\Scripts\activate && python -m robotpy sim

El servidor se conecta a 127.0.0.1:5810 por defecto, que es donde escucha la simulación.

Conectar a NetworkTables de un robot real

En la mayoría de los casos, simplemente graba NetworkTables y usa el mcp para analizar las grabaciones.

Si quieres conectarte a NetworkTables de un robot real en tiempo real, necesitas tener 2 adaptadores de red en tu dispositivo: uno para Internet y otro para la comunicación con el robot. Un enfoque es usar tu adaptador inalámbrico para conectarte al wifi y usar un cable Ethernet para conectarte al robot. Alternativamente, puedes obtener un adaptador de red USB como segundo adaptador. En cualquier caso, es posible que necesites configurar el enrutamiento de red de tu dispositivo.

Grabar NetworkTables a NDJSON (sin conexión)

La CLI nt-recorder se conecta a un servidor NT4 en vivo y escribe eventos de valor en un archivo .ndjson con marca de tiempo. Se ejecuta en el portátil de desarrollo y lee NT de la simulación o del robot; no se necesitan cambios en el lado del robot.

uv run nt-recorder --prefixes /SmartDashboard/ --output-dir recordings

Opciones:

  • --prefixes — prefijos de temas a los que suscribirse (por defecto: /)

  • --output-dir — directorio para archivos de salida (por defecto: ./recordings)

  • --duration — grabar durante N segundos y luego salir (por defecto: ejecutar hasta Ctrl+C)

  • --team — conectar mediante número de equipo en lugar de IP/puerto del servidor

  • --server-ip / --server-port — dirección del servidor NT4 (por defecto: 127.0.0.1:5810)

  • --identity — cadena de identidad del cliente (por defecto: nt-recorder)

  • --quiet — suprimir la salida de estado en stderr

Los archivos de salida se nombran nt-record-<YYYY-MM-DDTHHMMSSZ>.ndjson (sin dos puntos, seguro para Windows). Cada línea es {"time": float, "topic": str, "value": jsonable}. Códigos de salida: 0 limpio, 1 fallo de conexión, 2 error de disco/IO.

Herramientas

El servidor expone 17 herramientas (13 en vivo + 4 sin conexión). Cada respuesta de herramienta en vivo incluye una bandera connected.

Herramientas en vivo

Tool

Descripción

nt_connect

Iniciar el cliente NT4 y esperar una conexión en vivo. Devuelve {"connected": bool, "status": "connected" | "not connected"}.

nt_disconnect

Detener el cliente NT4 y eliminar las suscripciones persistentes. Devuelve {"connected": false, "status": "disconnected"}.

nt_connection_info

Devolver el estado de la conexión: {"connected": bool, "connections": [...]}.

nt_get

Devolver el valor normalizado JSON de un tema. Respuesta: {"connected": bool, "value": jsonable | null}.

nt_get_multiple

Devolver cada tema solicitado. Respuesta: {"connected": bool, "values": {topic: value}}.

nt_get_info

Devolver metadatos del tema. Respuesta: {"connected": bool, "info": {name, type_str, properties} | null}.

nt_set

Publicar un valor. Respuesta: {"connected": bool, "ok": bool, "warning": str | null}. Añade strict_type_check=True para rechazar discrepancias de tipo.

nt_set_multiple

Escribir cada par {topic: value}. Respuesta: {"connected": bool, "results": {...}, "warnings": {...}}.

nt_list_topics

Listar nombres de temas, filtrados por prefix, regex y/o wildcard. Respuesta: {"connected": bool, "topics": [...]}.

nt_subscribe

Muestrear actualizaciones bajo prefijos durante duration segundos. Respuesta: {"connected": bool, "samples": {topic: [...] | summary}}. Soporta sample_interval, change_only y format="summary".

nt_start_subscription

Abrir una suscripción persistente. Respuesta: {"connected": bool, "subscription_id": str, "started": bool}.

nt_poll_subscription

Leer muestras almacenadas en búfer de una suscripción persistente. Respuesta: {"connected": bool, "samples": {topic: [...]}}.

nt_stop_subscription

Detener una suscripción persistente. Respuesta: {"connected": bool, "stopped": bool}.

Herramientas de grabación sin conexión

Tool

Descripción

nt_list_recordings

Listar grabaciones. Cada entrada incluye id, path, size_bytes, modified (float Unix) y modified_iso (UTC ISO-8601).

nt_get_recording_info

Devolver duración, recuento total de muestras, recuento de temas y metadatos de archivo para una grabación.

nt_get_history

Devolver historial de eventos para un tema. Soporta last_seconds, sample_interval y format="summary".

nt_list_topics_offline

Listar nombres de temas únicos en una grabación, filtrados por prefix, regex y/o wildcard.

nt_subscribe_offline

Devolver eventos para cada tema bajo prefijos. Soporta last_seconds, sample_interval y format="summary".

Las herramientas sin conexión leen del directorio establecido por la variable de entorno NT_RECORDINGS_DIR (por defecto ./recordings). Las grabaciones son solo locales: el grabador se ejecuta en el portátil de desarrollo y lee NT de la simulación/robot; no se necesitan cambios en el lado del robot.

Registrar en cualquier agente

El servidor es un paquete ejecutable con uvx desde git, por lo que cualquier cliente MCP puede lanzarlo sin un checkout local ni un venv preconstruido. Ejecútalo bajo demanda:

uvx --from git+https://github.com/Mzzj114/nt-mcp-server.git nt-mcp-server

O instala el script de consola una vez y ejecútalo en cualquier lugar:

uv tool install "git+https://github.com/Mzzj114/nt-mcp-server.git"
uvx nt-mcp-server

Añade esta entrada a la configuración MCP de tu agente (mostrada aquí como opencode.jsonc a nivel de proyecto):

{
  "mcp": {
    "nt": {
      "type": "local",
      "command": [
        "uvx",
        "--from",
        "git+https://github.com/Mzzj114/nt-mcp-server.git",
        "nt-mcp-server"
      ],
      "enabled": true
    }
  }
}

Verifica con opencode mcp list desde la raíz del proyecto: el servidor nt debería mostrarse como conectado.

Desarrollo

  • Venv de Python 3.14.0 en .venv; dependencias instaladas desde requirements.txt (fastmcp==3.4.7, pyntcore==2026.2.2).

  • Pruebas: uv run pytest tests/ -v

Licencia

Este proyecto está bajo la Licencia MIT.

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI agents to interact with the SpaceTraders API, managing agents, fleets, contracts, and trading operations in the SpaceTraders universe.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables AI coding agents to communicate, share state, and coordinate work in real time via MCP tools or REST API.
    130
    5
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server that injects verified FTC documentation and code examples into AI assistants, enabling teams to write correct, competition-ready Java robot code through natural language.
    3
    16
    2
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    MCP server for Inductive Automation Ignition, enabling AI assistants to browse and write tags, query history and alarms, manage projects, and deploy Perspective views through natural language.
    43
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.

  • Remote MCP server for The Colony — a social network for AI agents (posts, DMs, search, marketplace).

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mzzj114/nt-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server