Skip to main content
Glama
Mzzj114

nt-mcp-server

by Mzzj114

nt-mcp-server

Ein eigenständiger MCP-Server zum Lesen, Schreiben und Überwachen von FRC-NetworkTables-Daten. Er ermöglicht es einem KI-Agenten, über das NetworkTables-Protokoll mit den Netzwerktabellen eines Roboters zu kommunizieren. Das primäre Ziel ist die lokale RobotPy-Simulation (python -m robotpy sim auf 127.0.0.1:5810).

festgelegte Abhängigkeiten (fastmcp==3.4.7, pyntcore==2026.2.2).

Server ausführen

uv run nt-mcp-server

Oder, äquivalent, aus einem Checkout ohne uv-Shim:

python -m nt_mcp_server

Der Server läuft auf stdio, so kommunizieren MCP-Clients (wie opencode) mit ihm.

Related MCP server: agent-comm

Verbindung zu RobotPy-sim-NetworkTables herstellen

Die Simulation muss laufen, bevor der Server etwas Nützliches lesen oder schreiben kann. Starten Sie sie aus ihrem eigenen Projekt und ihrer venv:

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

Der Server verbindet sich standardmäßig mit 127.0.0.1:5810, wo die Simulation lauscht.

Verbindung zu echten Robot-NetworkTables herstellen

In den meisten Fällen reicht es, NetworkTables aufzuzeichnen und den MCP zur Analyse der Aufzeichnungen zu verwenden.

Wenn Sie sich in Echtzeit mit den NetworkTables eines echten Roboters verbinden möchten, benötigen Sie zwei Netzwerkadapter an Ihrem Gerät: einen für das Internet und den anderen für die Roboter-Kommunikation. Ein Ansatz ist, Ihren WLAN-Adapter für die WLAN-Verbindung zu nutzen und ein Ethernet-Kabel für die Verbindung zum Roboter. Alternativ können Sie einen USB-Netzwerkadapter als zweiten Adapter verwenden. In beiden Fällen müssen Sie möglicherweise das Netzwerk-Routing Ihres Geräts konfigurieren.

NetworkTables in NDJSON aufzeichnen (offline)

Die nt-recorder-CLI verbindet sich mit einem Live-NT4-Server und schreibt Werteereignisse in eine mit Zeitstempel versehene .ndjson-Datei. Sie läuft auf dem Entwicklungs-Laptop und liest NT von der Simulation oder dem Roboter; keine Änderungen auf der Roboterseite sind erforderlich.

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

Optionen:

  • --prefixes — Themenpräfixe, die abonniert werden sollen (Standard: /)

  • --output-dir — Verzeichnis für Ausgabedateien (Standard: ./recordings)

  • --duration — N Sekunden aufzeichnen, dann beenden (Standard: bis Strg+C)

  • --team — Verbindung über Teamnummer statt Server-IP/Port

  • --server-ip / --server-port — NT4-Serveradresse (Standard: 127.0.0.1:5810)

  • --identity — Client-Identitätszeichenfolge (Standard: nt-recorder)

  • --quiet — Statusausgabe auf stderr unterdrücken

Ausgabedateien werden als nt-record-<YYYY-MM-DDTHHMMSSZ>.ndjson benannt (keine Doppelpunkte, Windows-sicher). Jede Zeile ist {"time": float, "topic": str, "value": jsonable}. Exit-Codes: 0 sauber, 1 Verbindungsfehler, 2 Datenträger-/E/A-Fehler.

Werkzeuge

Der Server stellt 17 Werkzeuge bereit (13 live + 4 offline). Jede Live-Werkzeugantwort enthält ein connected-Flag.

Live-Werkzeuge

Tool

Beschreibung

nt_connect

Startet den NT4-Client und wartet auf eine Live-Verbindung. Gibt {"connected": bool, "status": "connected" | "not connected"} zurück.

nt_disconnect

Stoppt den NT4-Client und baut persistente Abonnements ab. Gibt {"connected": false, "status": "disconnected"} zurück.

nt_connection_info

Gibt den Verbindungsstatus zurück: {"connected": bool, "connections": [...]}.

nt_get

Gibt den JSON-normalisierten Wert eines Themas zurück. Antwort: {"connected": bool, "value": jsonable | null}.

nt_get_multiple

Gibt jedes angeforderte Thema zurück. Antwort: {"connected": bool, "values": {topic: value}}.

nt_get_info

Gibt Themen-Metadaten zurück. Antwort: {"connected": bool, "info": {name, type_str, properties} | null}.

nt_set

Veröffentlicht einen Wert. Antwort: {"connected": bool, "ok": bool, "warning": str | null}. Fügen Sie strict_type_check=True hinzu, um Typkonflikte abzulehnen.

nt_set_multiple

Schreibt jedes {topic: value}-Paar. Antwort: {"connected": bool, "results": {...}, "warnings": {...}}.

nt_list_topics

Listet Themennamen auf, gefiltert nach prefix, regex und/oder wildcard. Antwort: {"connected": bool, "topics": [...]}.

nt_subscribe

Sampelt Aktualisierungen unter Präfixen für duration Sekunden. Antwort: {"connected": bool, "samples": {topic: [...] | summary}}. Unterstützt sample_interval, change_only und format="summary".

nt_start_subscription

Öffnet ein persistentes Abonnement. Antwort: {"connected": bool, "subscription_id": str, "started": bool}.

nt_poll_subscription

Liest gepufferte Stichproben aus einem persistenten Abonnement. Antwort: {"connected": bool, "samples": {topic: [...]}}.

nt_stop_subscription

Stoppt ein persistentes Abonnement. Antwort: {"connected": bool, "stopped": bool}.

Offline-Aufzeichnungswerkzeuge

Tool

Beschreibung

nt_list_recordings

Listet Aufzeichnungen auf. Jeder Eintrag enthält id, path, size_bytes, modified (Unix-Float) und modified_iso (UTC ISO-8601).

nt_get_recording_info

Gibt Dauer, Gesamtzahl der Stichproben, Themenanzahl und Dateimetadaten für eine Aufzeichnung zurück.

nt_get_history

Gibt den Ereignisverlauf für ein Thema zurück. Unterstützt last_seconds, sample_interval und format="summary".

nt_list_topics_offline

Listet eindeutige Themennamen in einer Aufzeichnung auf, gefiltert nach prefix, regex und/oder wildcard.

nt_subscribe_offline

Gibt Ereignisse für jedes Thema unter Präfixen zurück. Unterstützt last_seconds, sample_interval und format="summary".

Die Offline-Werkzeuge lesen aus dem Verzeichnis, das durch die Umgebungsvariable NT_RECORDINGS_DIR festgelegt ist (Standard: ./recordings). Aufzeichnungen sind nur lokal – der Recorder läuft auf dem Entwicklungs-Laptop und liest NT von der Simulation/dem Roboter; keine Änderungen auf der Roboterseite sind erforderlich.

In jedem Agenten registrieren

Der Server ist ein über uvx ausführbares Paket aus Git, sodass jeder MCP-Client ihn ohne lokalen Checkout oder vorgefertigte venv starten kann. Führen Sie ihn bei Bedarf aus:

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

Oder installieren Sie das Konsolenskript einmal und führen Sie es überall aus:

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

Fügen Sie diesen Eintrag zur MCP-Konfiguration Ihres Agenten hinzu (hier gezeigt als projektweites opencode.jsonc von opencode):

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

Überprüfen Sie mit opencode mcp list aus dem Projektstammverzeichnis: Der nt-Server sollte als verbunden angezeigt werden.

Entwicklung

  • Python 3.14.0-venv in .venv; Abhängigkeiten aus requirements.txt installiert (fastmcp==3.4.7, pyntcore==2026.2.2).

  • Tests: uv run pytest tests/ -v

Lizenz

Dieses Projekt steht unter der MIT-Lizenz.

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