Highway MCP
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., "@Highway MCPrun_goal 'summarize files in /tmp'"
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.
Highway MCP
The MCP front door for Highway Agents. It lets any MCP host (Claude Desktop/Code, opencode, Cursor, Claude mobile) drive durable, always-on agents that run server-side on the Highway Workflow Engine — the user runs no infrastructure, just an MCP client and a Highway API key.
It exposes three tools, each a thin wrapper over the Highway REST API:
Tool | What it does | REST call |
| Start a durable agent run; returns |
|
| Status, progress, result, and |
|
| Resolve a human-in-the-loop approval to resume the run (works across devices/sessions). |
|
The agent loop itself is the engine tool tools.agent.run_goal driven by the
agent_run_goal workflow (one durable model turn per iteration, HITL approval
before outbound actions). See the engine repo (enterprise/tools/agent.py,
api/dsl_templates/agent_run_goal.py) and issue #749.
Prerequisites
The Highway stack running and reachable (default
http://localhost:7822).A Highway API key (
hw_k1_...) with permissionssubmit_workflows,view_workflows,view_approvals,approve_workflows. Mint one viaPOST /api/v1/admin/api-keys(see engine docs).
Related MCP server: workflows-mcp
Run
pip install -e .
# stdio (for a local host like opencode/Claude Desktop)
HIGHWAY_BASE_URL=http://localhost:7822 HIGHWAY_API_KEY=hw_k1_xxx highway-mcp
# remote / streamable-http (reachable by laptop + mobile clients)
TRANSPORT=http PORT=8848 HIGHWAY_BASE_URL=https://highway.rodmena.app \
HIGHWAY_API_KEY=hw_k1_xxx highway-mcpConnect from opencode (dogfood)
Add to the host's MCP config (stdio example):
{
"mcpServers": {
"highway-agents": {
"command": "highway-mcp",
"env": {
"HIGHWAY_BASE_URL": "http://localhost:7822",
"HIGHWAY_API_KEY": "hw_k1_xxx"
}
}
}
}Then: run_goal("summarise what files are in /tmp") → the agent asks to run a
shell command → get_status(<id>) shows a pending approval → approve(<key>) →
the run resumes and completes; get_status returns the result.
Configuration
Env var | Default | Purpose |
|
| Engine base URL |
| (required) |
|
|
|
|
|
| HTTP port when |
Status / follow-ups (Phase 0 spike)
Auth is single-key from env. Production needs per-connection auth so each customer's own key (from the MCP session/OAuth) is forwarded — not one shared server key.
Tool surface is a placeholder (
shell_run→tools.shell.run, approval required). Validate the argument contract live and replace with the real connector tools (Gmail etc.) in Phase 1.Long-running calls already use the start→poll pattern (
run_goalreturns a handle;get_statuspolls). Progress-notification/resource streaming is a later nicety.Engine-side durability caveat for side-effecting tools: issue #750.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/rodmena-limited/highway-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server