About mcp-trmm
mcp-trmm is an MCP server for managing TRMM instances, aimed at IT operations and smaller local models. Its narrowly scoped, clearly named tools translate simple arguments into API requests, with a read-first design and limited state-changing actions.
Key features
- 01Look up and control agents
- 02Manage checks, software, and services
- 03Run scripts, commands, and tasks
- 04Handle updates, alerts, and reports
- 05Translate tool arguments into API requests
Use cases
- 01Find a device and reboot or shut it down
- 02Inspect and control device services
- 03Check for and install Windows updates
MCP support
It exposes TRMM operations as MCP tools for clients, covering agents, checks, software, services, updates, alerts, and automation.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMETRMM MCP Server
A focused MCP server for TRMM-style remote management operations.
This project exposes a curated set of MCP tools for common IT operations tasks such as:
- agent lookup and control
- checks
- scripts
- services
- software
- Windows updates
- reporting
- alerts
- automation
- tasks
The server is designed specifically for local or smaller models that are not reliable at constructing raw API paths, HTTP methods, or JSON payloads.
Instead of exposing one generic “call any endpoint” tool, this server exposes small, strongly-named tools with only a few arguments. The backend then translates those arguments into valid API requests.
Why this exists
Smaller local models tend to struggle with:
- choosing the correct endpoint
- selecting the right HTTP method
- building valid JSON payloads
- keeping IDs and object types straight
- avoiding destructive or overly broad actions
This server solves that by giving the model:
- a small tool surface
- explicit tool names
- simple arguments
- backend-side request translation
- consistent result handling
In short, the model decides what it wants to do, and the backend decides how to call the real API.
Architecture
The project is split into four main layers:
server.py
Hosts the FastAPI application and mounts the MCP ASGI app at /mcp.
Also includes:
- bearer token protection for the MCP route
- a simple
/healthzendpoint
rmm_tools.py
Defines the MCP tools exposed to the model.
These are the only functions the model should see.
Examples:
list_agents()get_agent(agent_id)reboot_agent(agent_id, mode="normal")run_agent_command(agent_id, command, shell="cmd")
translator.py
Converts model-friendly arguments into actual API requests.
This layer handles:
- endpoint selection
- method selection
- JSON body construction
- argument normalization
- simple action mapping
Example:
- model calls
reboot_agent(agent_id="abc", mode="force") - translator turns that into
PATCH /agents/{agent_id}/reboot/with the correct request body
api_client.py
Sends the final HTTP request to the upstream TRMM/PAI API and returns a normalized result object.
This layer handles:
- authentication headers
- timeouts
- JSON parsing
- status handling
- structured error reporting
Design goals
This MCP server is intentionally opinionated.
1. Small tool surface
The server only includes useful tools, not every endpoint in the upstream schema.
2. Model-friendly tools
Each tool is designed to be easy for a smaller model to call correctly.
3. Read-first behavior
Where possible, the model should inspect first and act second.
4. Backend-owned request formatting
The model should never be responsible for building raw endpoint paths or request payloads.
5. Safer operations
Destructive or state-changing tools are kept limited and clearly named.
Current tool coverage
Agents
list_agentsget_agentget_agent_historyget_agent_notescreate_agent_noteget_agent_taskscreate_agent_taskreboot_agentshutdown_agentwake_agentrun_agent_commandrun_agent_scriptget_agent_eventloglist_agent_processesget_agent_processkill_agent_process
Checks
list_checksget_checklist_agent_checksrun_checksrun_checks_for_agentreset_checkreset_all_checks_for_agent
Software
get_agent_softwareuninstall_agent_softwarelist_choco_packages
Windows Updates
get_agent_winupdatesscan_agent_winupdatesinstall_agent_winupdates
Services
list_agent_servicesget_agent_servicecontrol_agent_service
Scripts
list_scriptsget_scriptdownload_scripttest_script_on_agent
Reporting
list_report_historyrun_report_historylist_report_schedulesget_report_schedulerun_report_schedule
Alerts
get_alertupdate_alert_status
Automation
get_automation_policies_overviewget_automation_policylist_automation_policy_checkslist_automation_policy_tasksrun_automation_taskget_automation_task_statusget_automation_check_status
Tasks
list_tasksget_taskrun_task
What is intentionally not included
This server does not attempt to expose every endpoint from the upstream schema.
The following kinds of endpoints are intentionally avoided unless they are truly needed:
- generic CRUD for every object type
- broad administrative mutation endpoints
- highly ambiguous update endpoints
- raw pass-through API tools
- configuration-heavy endpoints that require large request bodies
- tools that overlap too heavily with clearer existing tools
This keeps the model from being overwhelmed and reduces incorrect tool selection.
Example tool behavior
Example 1: Reboot an agent by name
The model should:
- call
list_agents - identify the correct agent
- call
reboot_agent(agent_id, mode="normal")
Example 2: Investigate a service issue
The model should:
- find the agent
- call
get_agent_service(...)orlist_agent_services(...) - inspect the result
- only then call
control_agent_service(...)if requested or clearly appropriate
Example 3: Check Windows updates
The model should:
- call
get_agent_winupdates(agent_id) - inspect the result
- only call
scan_agent_winupdates(...)orinstall_agent_winupdates(...)when requested
Running the server
Start the FastAPI app with Uvicorn:
uvicorn server:app --host 0.0.0.0 --port 8000
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.