Yamcs MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | MCP host | 127.0.0.1 |
| MCP_PORT | No | MCP port | 8000 |
| YAMCS_URL | No | Yamcs server URL | http://localhost:8090 |
| MCP_TRANSPORT | No | MCP transport type | stdio |
| YAMCS_INSTANCE | No | Yamcs instance name | simulator |
| YAMCS_PASSWORD | No | Yamcs password | password |
| YAMCS_USERNAME | No | Yamcs username | admin |
| YAMCS_ENABLE_MDB | No | Enable MDB tools | true |
| YAMCS_ENABLE_LINKS | No | Enable link tools | true |
| YAMCS_ENABLE_ALARMS | No | Enable alarm tools | true |
| YAMCS_ENABLE_STORAGE | No | Enable storage tools | true |
| YAMCS_ENABLE_COMMANDS | No | Enable command tools | true |
| YAMCS_ENABLE_INSTANCES | No | Enable instance tools | true |
| YAMCS_ENABLE_PROCESSOR | No | Enable processor tools | true |
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
| Capability | Details |
|---|---|
| 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
| Name | Description |
|---|---|
| health_checkA | Check overall server health. Returns: dict: Server health status |
| test_connectionB | Test connection to Yamcs server. Returns: dict: Connection test results |
| mdb_parametersC | List parameters from the Mission Database. |
| mdb_get_parameterC | Get detailed information about a specific parameter. |
| mdb_commandsC | List commands from the Mission Database. |
| mdb_get_commandC | Get detailed information about a specific command. |
| mdb_space_systemsB | List space systems from the Mission Database. |
| processors_list_processorsA | List all processors. |
| processors_describe_processorB | Get comprehensive information about a processor. |
| processors_delete_processorB | Delete a processor. |
| links_list_linksB | List all data links. |
| links_describe_linkB | Get comprehensive information about a specific link. |
| links_enable_linkC | Enable a data link. |
| links_disable_linkC | Disable a data link. |
| storage_bucketsC | List storage buckets. |
| storage_objectsB | List objects in a bucket. |
| storage_get_object_infoC | Get information about a specific object. |
| storage_delete_objectC | Delete an object from storage. |
| storage_create_bucketB | Create a new storage bucket. |
| instances_list_instancesA | List all Yamcs instances. Returns: dict: List of instances |
| instances_describe_instanceB | Get comprehensive information about a Yamcs instance. |
| instances_start_instanceC | Start a Yamcs instance. |
| instances_stop_instanceB | Stop a Yamcs instance. |
| alarms_list_alarmsB | List active alarms on a processor. |
| alarms_describe_alarmA | Get detailed information about a specific alarm. |
| alarms_acknowledge_alarmB | Acknowledge a specific alarm. |
| alarms_shelve_alarmB | Shelve (temporarily suspend) an alarm. |
| alarms_unshelve_alarmB | Unshelve (reactivate) a previously shelved alarm. |
| alarms_clear_alarmC | Clear a specific alarm. |
| alarms_read_logC | Read alarm history from the archive. |
| commands_list_commandsC | List available commands for execution. |
| commands_describe_commandB | Get detailed information about a command including arguments. |
| commands_run_commandA | Execute a command on Yamcs. To execute SWITCH_VOLTAGE_OFF with voltage_num=1, call this tool with: command="/YSS/SIMULATOR/SWITCH_VOLTAGE_OFF" args={"voltage_num": 1} To execute with multiple arguments: command="/YSS/SIMULATOR/SOME_CMD" args={"arg1": "value1", "arg2": 123} The args parameter should be a dictionary mapping argument names to values. If you pass a JSON string, it will be automatically parsed. |
| commands_read_logC | Read command execution history. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_parameters_summary | Get a summary of available parameters. |
| get_commands_summary | Get a summary of available commands. |
| list_processors_resource | Get a summary of all processors. |
| get_all_links_status | Get current status of all links. |
| get_storage_overview | Get an overview of storage usage. |
| list_instances_resource | Get a summary of all instances. |
| list_alarms_resource | Get a summary of active alarms across all processors. |
TDQS
Scored across 34 tools
Each tool has a clearly distinct purpose, grouped by resource type (alarms, commands, instances, etc.) with specific actions (list, describe, run, etc.). No overlapping functionality.
Tool names consistently use snake_case and a prefix_group_verb_noun pattern, though the 'mdb' group mixes noun-only names (mdb_commands, mdb_parameters) with verb-noun names (mdb_get_command), creating minor inconsistency.
With 34 tools, the count exceeds the recommended range for coherence. While the server covers a broad domain, the large number may confuse agents and dilute focus.
The tool set covers major operations for alarms, commands, instances, links, MDB, processors, and storage. Missing creation tools for links and processors are notable but likely intentional given the domain.