Skip to main content
Glama
Mzzj114

nt-mcp-server

by Mzzj114

nt-mcp-server

Автономный MCP-сервер для чтения, записи и мониторинга данных NetworkTables во FRC. Он позволяет ИИ-агенту обмениваться данными с роботом по протоколу NetworkTables. Основная цель — локальная симуляция RobotPy (python -m robotpy sim на 127.0.0.1:5810).

закреплённые зависимости (fastmcp==3.4.7, pyntcore==2026.2.2).

Запуск сервера

uv run nt-mcp-server

Или, из локальной копии репозитория без использования uv:

python -m nt_mcp_server

Сервер работает через stdio — именно так MCP-клиенты (например, opencode) подключаются к нему.

Related MCP server: agent-comm

Подключение к симуляции RobotPy NetworkTables

Перед чтением или записью данных симуляция должна быть запущена. Запустите её из своего проекта и виртуального окружения:

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

По умолчанию сервер подключается к 127.0.0.1:5810 — именно там работает симуляция.

Подключение к реальному роботу NetworkTables

В большинстве случаев достаточно записать данные и проанализировать их с помощью MCP.

Если нужно подключиться к реальному роботу в реальном времени, потребуется два сетевых адаптера на устройстве: один для интернета, другой для связи с роботом. Один из вариантов — использовать беспроводной адаптер для Wi-Fi и Ethernet-кабель для подключения к роботу. Либо использовать USB-адаптер в качестве второго адаптера. В любом случае может потребоваться настройка сетевой маршрутизации устройства.

Запись NetworkTables в NDJSON (офлайн)

CLI-инструмент nt-recorder подключается к работающему серверу NT4 и записывает события значений в файл .ndjson с временными метками. Он запускается на компьютере разработчика и читает данные из симуляции или робота; изменения на стороне робота не требуются.

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

Параметры:

  • --prefixes — префиксы тем для подписки (по умолчанию: /)

  • --output-dir — каталог для выходных файлов (по умолчанию: ./recordings)

  • --duration — записывать в течение N секунд, затем завершить работу (по умолчанию: до нажатия Ctrl+C)

  • --team — подключиться по номеру команды вместо IP/порта сервера

  • --server-ip / --server-port — адрес сервера NT4 (по умолчанию: 127.0.0.1:5810)

  • --identity — строка идентификации клиента (по умолчанию: nt-recorder)

  • --quiet — подавить вывод статуса в stderr

Выходные файлы называются nt-record-<ГГГГ-ММ-ДДTЧЧ-ММ-СС>.ndjson (без двоеточий, совместимо с Windows). Каждая строка — {"time": float, "topic": str, "value": jsonable}. Коды завершения: 0 — успешно, 1 — ошибка подключения, 2 — ошибка диска/ввода-вывода.

Инструменты

Сервер предоставляет 17 инструментов (13 для работы в реальном времени + 4 для офлайн-анализа). Каждый ответ инструмента реального времени включает флаг connected.

Инструменты реального времени

Инструмент

Описание

nt_connect

Запустить клиент NT4 и дождаться активного подключения. Возвращает {"connected": bool, "status": "connected" | "not connected"}.

nt_disconnect

Остановить клиент NT4 и закрыть постоянные подписки. Возвращает {"connected": false, "status": "disconnected"}.

nt_connection_info

Вернуть состояние подключения: {"connected": bool, "connections": [...]}.

nt_get

Вернуть нормализованное JSON-значение одной темы. Ответ: {"connected": bool, "value": jsonable | null}.

nt_get_multiple

Вернуть значения всех запрошенных тем. Ответ: {"connected": bool, "values": {topic: value}}.

nt_get_info

Вернуть метаданные темы. Ответ: {"connected": bool, "info": {name, type_str, properties} | null}.

nt_set

Опубликовать значение. Ответ: {"connected": bool, "ok": bool, "warning": str | null}. Добавьте strict_type_check=True, чтобы отклонять несоответствия типов.

nt_set_multiple

Записать каждую пару {topic: value}. Ответ: {"connected": bool, "results": {...}, "warnings": {...}}.

nt_list_topics

Список имён тем, отфильтрованных по prefix, regex и/или wildcard. Ответ: {"connected": bool, "topics": [...]}.

nt_subscribe

Собирать обновления по префиксам в течение duration секунд. Ответ: {"connected": bool, "samples": {topic: [...] | summary}}. Поддерживает sample_interval, change_only и format="summary".

nt_start_subscription

Открыть постоянную подписку. Ответ: {"connected": bool, "subscription_id": str, "started": bool}.

nt_poll_subscription

Прочитать буферизованные выборки из постоянной подписки. Ответ: {"connected": bool, "samples": {topic: [...]}}.

nt_stop_subscription

Остановить постоянную подписку. Ответ: {"connected": bool, "stopped": bool}.

Офлайн-инструменты для записей

Инструмент

Описание

nt_list_recordings

Список записей. Каждая запись включает id, path, size_bytes, modified (Unix float) и modified_iso (UTC ISO-8601).

nt_get_recording_info

Вернуть длительность, общее количество выборок, количество тем и метаданные файла для записи.

nt_get_history

Вернуть историю событий для одной темы. Поддерживает last_seconds, sample_interval и format="summary".

nt_list_topics_offline

Список уникальных имён тем в записи, отфильтрованных по prefix, regex и/или wildcard.

nt_subscribe_offline

Вернуть события для всех тем по префиксам. Поддерживает last_seconds, sample_interval и format="summary".

Офлайн-инструменты читают данные из каталога, заданного переменной окружения NT_RECORDINGS_DIR (по умолчанию ./recordings). Записи хранятся только локально — рекордер запускается на компьютере разработчика и читает NT из симуляции или робота; изменения на стороне робота не требуются.

Регистрация в любом агенте

Сервер — это пакет, запускаемый через uvx из git-репозитория, поэтому любой MCP-клиент может запустить его без локальной копии или предустановленного виртуального окружения. Запуск по требованию:

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

Или установите консольный скрипт один раз и запускайте где угодно:

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

Добавьте эту запись в конфигурацию MCP вашего агента (здесь показано для opencode в файле opencode.jsonc на уровне проекта):

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

Проверьте с помощью opencode mcp list из корня проекта: сервер nt должен отображаться как подключённый.

Разработка

  • Виртуальное окружение Python 3.14.0 в .venv; зависимости установлены из requirements.txt (fastmcp==3.4.7, pyntcore==2026.2.2).

  • Тесты: uv run pytest tests/ -v

Лицензия

Этот проект распространяется под лицензией 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