mcp-router
mcp-router
TypeScript MCP server for Linksys router control with a read-only-first tool surface.
Full operational reference (network path, credentials location, deployment status, open issues):
docs/linksys-router.mdin theBlahBlahBlahrepo.
Features
router_get_details:core/GetDeviceInforouter_list_devices:devicelist/GetDevicesrouter_jnap_read: generic read-only JNAP actions (Get*/Check*only)router_reboot: optional write action gated byROUTER_ENABLE_WRITES=trueandconfirm=true
Setup (Local)
Copy env file:
cp .env.example .envFill
.env:ROUTER_URL(for examplehttp://192.168.76.1)ROUTER_USERNAME(usuallyadmin)ROUTER_PASSWORDROUTER_TIMEOUT_MS(optional, default10000)ROUTER_ENABLE_WRITES(falseby default)
Confirm the runtime is on the same trusted LAN as the router before calling JNAP. The Linksys device is reachable only from a host connected to the
192.168.76.0/24segment (for example Dragon's USB Ethernet path), not from a generic off-LAN Windows host.Install and build:
pnpm install pnpm buildRun:
pnpm dev
Deployment to Dragon
Option 1: Systemd Service
./deploy-dragon.shThis will:
Clone the repo to
/opt/mcp-routerInstall dependencies with pnpm
Build the TypeScript
Install and start the systemd service
Check logs:
journalctl -u mcp-router -fOption 2: Docker Compose
docker-compose up -dThe service will restart automatically on failure.
Set the ROUTER_PASSWORD environment variable before running:
export ROUTER_PASSWORD="<your-password>"
docker-compose up -dConfiguration
Environment Variables
ROUTER_URL: HTTP URL to the router (e.g.,http://192.168.76.1)ROUTER_USERNAME: JNAP username (default:admin)ROUTER_PASSWORD: JNAP password (required)ROUTER_TIMEOUT_MS: Request timeout in milliseconds (default:10000, min:1000)ROUTER_ENABLE_WRITES: Enable write operations (default:false)
Security Notes
Keep write operations disabled by default
Use
router_jnap_readfor discovery and status checks before adding new mutating toolsStore credentials in
.env(local) or environment variables (deployment)Credentials are sent via Basic Auth over HTTP — ensure the router is on a trusted LAN only
Testing
Run the included test script:
pnpm tsx test-router.tsThis validates connectivity and runs sample read-only operations against the router.
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/macbeth76/mcp-router'
If you have feedback or need assistance with the MCP directory API, please join our Discord server