Helios Field Service
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Helios Field ServiceCheck stock for part HX2-BMS-03 and create an RMA"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Helios Field Service — Production MCP Server & Client
Module 4 Lab — Model Context Protocol
Turns the Helios Robotics parts, inventory and RMA systems into an MCP capability that any MCP-aware client can plug into. Built with FastMCP 3.x against the MCP specification.
Requirement | Implementation |
≥3 tools | 4 — |
≥2 resources | 3 — |
≥1 prompt |
|
Client discovers + invokes each |
|
Transport + justification | stdio (default), HTTP supported — rationale |
Client-side safety | Both — elicitation on the write, roots on the client |
Security design summary | |
Error handling | Invalid input, unknown record, and unreachable backing store |
Docs: architecture + transport ·
tools/resources/prompts ·
security · logs: logs/
Quick start
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python seed_data.py
python client.py # spawns the server over stdio and runs the full demoNo API key, no model, no cost — MCP is a protocol, and the client invokes the server directly.
Other runs
AUTO_APPROVE=1 python client.py # non-interactive (CI, log capture)
SIMULATE_DB_OUTAGE=1 python client.py # backing data source unreachable
MCP_TRANSPORT=http python server.py # serve on 127.0.0.1:8000
MCP_TRANSPORT=http python client.py # ...and connect to itUse it from any MCP host
{
"mcpServers": {
"helios-field-service": {
"command": "python",
"args": ["/absolute/path/to/helios-mcp/server.py"]
}
}
}That is the point of the exercise — built once, usable by every MCP-aware client.
Related MCP server: semantic-runtime
What the demo shows
logs/demo.log — full discovery-and-invocation flow:
1. DISCOVERY — tools
• search_parts [read-only] Search the Helios spare parts catalogue...
• get_inventory [read-only] Stock level and lead time for a part...
• analyse_failure [read-only] Correlate a fault code with known issues...
• create_rma [WRITE] Raise a Return Material Authorisation.
1. DISCOVERY — resources
• helios://catalog/summary Catalogue summary
• helios://parts/{part_number} Catalogue entry (template)
• helios://kb/{doc_id} Knowledge base article (template)
1. DISCOVERY — prompts
• diagnose_fault(fault_code, sku, site)The write, gated by elicitation:
┌─ SERVER REQUESTS CONFIRMATION ──────────────────────────────────
│ Raise an RMA for 1 x HX2-BMS-03 (HX-200 Battery Management Board rev C)?
│ Serial: HX200-PHX-0442
│ Total value: $1,240.00
└─────────────────────────────────────────────────────────────────
{"created": true, "rma_id": "RMA-00001", "value_usd": 1240.0,
"requested_by": "mahesh.s"}logs/demo-db-outage.log — the backing store unreachable. What the client sees:
TOOL UNAVAILABLE — Failure analysis is temporarily unavailable.
Quote reference dddc45d0fc07 to support if this persists.What the server logged, on stderr (logs/server-errors.log):
ERROR [helios-mcp] [dddc45d0fc07] Failure analysis failed:
OperationalError: could not connect to helios-db-prod-01.internal:5432: timeoutThe hostname and port never cross the protocol boundary. The correlation id is the bridge between the two.
Design notes
Resources and tools are not interchangeable. search_parts finds a part when
you don't know its id; helios://parts/{pn} fetches one you already have. Same
data, different access pattern.
The prompt lives on the server on purpose. The diagnostic procedure is Helios domain knowledge, not host logic. Every connecting client gets the same rules — rule out firmware before condemning hardware, never quote a superseded part — rather than each reimplementing them and drifting.
All logging goes to stderr. On stdio, stdout carries the JSON-RPC frames. A
stray print() corrupts the protocol stream; there are none in the server.
The client controls the server's environment. A spawned stdio server does not
inherit the parent environment automatically, so PythonStdioTransport(env=...)
passes an explicit allow-list rather than handing over the caller's whole shell.
Layout
server.py MCP server: 4 tools, 3 resources, 1 prompt
client.py MCP client: discovery, invocation, elicitation, roots
seed_data.py Creates data/helios.db
docs/
architecture.md Diagrams + transport justification
capabilities.md Every tool, resource and prompt documented
security.md Auth, least privilege, error redaction
logs/
demo.log Successful discovery-and-invocation flow
demo-db-outage.log Backing store unreachable, client view
server-errors.log Server-side detail with correlation idsThis server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityBmaintenanceEnables AI-driven customer support operations including conversation management, knowledge base, contacts, metrics, and settings via MCP.MIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP clients to serve and query semantic models, providing tools for entity descriptions, metric lookups, context resolution, and operation validation for AI agents.MIT
- FlicenseAqualityCmaintenanceEnables browsing Hedra's model catalog and managing AI generation jobs, including submitting, polling, and uploading files, through MCP clients.14
- FlicenseNot gradedqualityBmaintenanceThis MCP server exposes industrial maintenance and work-order intelligence tools, allowing users to search assets, retrieve and correlate alarm events, and query CMMS work orders through a standardized protocol.
Related MCP Connectors
Workflow diagnostics, capability routing, and x402 settlement for MCP-compatible agents.
Manage products, EU Digital Product Passports, operator parties, and GS1 EPCIS supply-chain events.
MCP server for AI access to Swagger by SmartBear.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/pavansunkara958/helios-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server