Skip to main content
Glama
Mzzj114

nt-mcp-server

by Mzzj114

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NT_RECORDINGS_DIRNoDirectory where offline recording tools read recordings from../recordings

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
nt_connectB

Start the NT4 client and wait for a live connection.

nt_disconnectA

Stop the NT4 client and tear down any persistent subscriptions.

nt_connection_infoC

Return {"connected": bool, "connections": [...]}.

nt_getB

Return the JSON-normalized value of topic.

Response: {"connected": bool, "value": jsonable | null} when connected, or {"connected": false, "error": "..."} when disconnected.

nt_get_multipleB

Return values for every requested topic.

Response: {"connected": bool, "values": {topic: value}}.

nt_get_infoC

Return metadata for topic.

Response: {"connected": bool, "info": {...} | null}.

nt_setA

Publish value to topic.

Response: {"connected": bool, "ok": bool, "warning": str | null}. strict_type_check=True refuses mismatched writes instead of only warning about them.

nt_set_multipleB

Write every {topic: value} pair.

Response: {"connected": bool, "results": {topic: bool}, "warnings": {topic: str | null}}.

nt_list_topicsB

Return topic names, filtered by prefix, regex, and/or wildcard.

Response: {"connected": bool, "topics": [...]}.

nt_subscribeA

Sample value updates under prefixes for duration seconds.

Response: {"connected": bool, "samples": {topic: [...] | summary}}. sample_interval decimates events to one per topic per interval. change_only skips numeric changes at or below the threshold. format="summary" returns min/max/mean/last per topic.

nt_start_subscriptionA

Open a persistent subscription and start collecting samples.

Response: {"connected": bool, "subscription_id": str, "started": bool}. Use nt_poll_subscription to read the buffered samples in later turns, and nt_stop_subscription to tear it down.

nt_poll_subscriptionA

Return buffered samples for a persistent subscription.

Response: {"connected": bool, "samples": {topic: [{"time", "value"}, ...]}}. clear=True empties the buffer after reading.

nt_stop_subscriptionB

Stop a persistent subscription and free its resources.

nt_list_recordingsA

List available NDJSON recordings in the output directory.

Each entry includes id, path, size_bytes, modified (Unix float) and modified_iso (UTC ISO-8601).

nt_get_historyB

Return event history for one topic from a recording.

last_seconds selects the most recent N seconds of the recording. sample_interval and format="summary" behave like live nt_subscribe.

nt_get_recording_infoC

Return metadata about a recording.

Includes duration, total sample count, topic count, file size and timestamps.

nt_list_topics_offlineC

List unique topic names in a recording, optionally filtered.

nt_subscribe_offlineB

Return events for every topic under prefixes from a recording.

last_seconds selects the most recent N seconds. sample_interval decimates per-topic samples, and format="summary" returns min/max/mean/last per topic.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 18 tools

Disambiguation5/5

Each tool serves a distinct purpose: connection management, get/set operations, topic listing, subscriptions (both transient and persistent), and recording access. No overlapping functionality.

Naming Consistency5/5

All tools use a consistent 'nt_' prefix and follow a verb_noun pattern (e.g., nt_get, nt_set_multiple, nt_list_topics, nt_start_subscription). Naming is uniform and predictable.

Tool Count4/5

With 18 tools, the set is slightly larger than typical but justified by the breadth of NetworkTables features (live/offline, subscriptions, recordings). It remains manageable and not overwhelming.

Completeness5/5

The tool surface covers all major operations: connect/disconnect, get/set (individual and bulk), topic listing, both transient and persistent subscriptions, and comprehensive recording access (list, info, history, offline subscription). No obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues