{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_bq3s6ddpmmav","handle":"mcp-unify","url":"https://wellknown.network/agents/mcp-unify","links":{"self":"https://wellknown.network/agents/mcp-unify/record.json","html":"https://wellknown.network/agents/mcp-unify","markdown":"https://wellknown.network/agents/mcp-unify/record.md","api":"https://wellknown.network/api/v1/agents/mcp-unify","status":"https://wellknown.network/api/v1/agents/mcp-unify/status","claim":"https://wellknown.network/agents/mcp-unify/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-unify/claim.json","badge":"https://wellknown.network/agents/mcp-unify/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mcp-unify/history","tools":"https://wellknown.network/api/v1/agents/mcp-unify/tools"},"ard":{"identifier":"urn:air::server:mcp-unify","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"mcp-unify","summary":"Unify multiple MCP servers behind a single endpoint with lazy loading, plugins, and role filtering.","description":"# mcp-gateway\n\n[![PyPI](https://img.shields.io/pypi/v/mcp-gateway)](https://pypi.org/project/mcp-gateway/)\n[![License](https://img.shields.io/github/license/MagnusCole/mcp-gateway)](LICENSE)\n[![Python](https://img.shields.io/pypi/pyversions/mcp-gateway)](https://pypi.org/project/mcp-gateway/)\n\nUnify multiple MCP servers behind a single endpoint. Lazy loading, auto-cleanup, Python plugins, role-based filtering.\n\n## The Problem\n\nIf you use Claude Code or any MCP client with 3+ servers, you get:\n- Multiple subprocesses (~50MB each)\n- Duplicated config\n- No centralized control\n- No way to add custom Python tools without a full MCP server\n\n## The Solution\n\n`mcp-gateway` runs **one process** that proxies N MCP servers on-demand:\n\n```\nClaude Code / MCP Client\n  │\n  ▼\nmcp-gateway (1 process)\n  ├─ [plugin] Python @tool functions     ← in-process, 0 overhead\n  ├─ [lazy]   filesystem-server          ← subprocess spawned on first call\n  ├─ [lazy]   github-server              ← subprocess spawned on first call\n  └─ [lazy]   playwright                 ← subprocess spawned on first call\n      ↑\n      5 min idle → auto-kill\n```\n\n## Install\n\n```bash\npip install mcp-gateway\n```\n\n## Quick Start\n\n### 1. Create `gateway.yaml`\n\n```yaml\nservers:\n  filesystem:\n    command: npx\n    args: [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/tmp\"]\n\n  github:\n    command: npx\n    args: [\"-y\", \"@modelcontextprotocol/server-github\"]\n    env:\n      GITHUB_TOKEN: \"${GITHUB_TOKEN}\"\n    enabled: false\n\nidle_timeout: 300\n```\n\n### 2. Run\n\n**stdio** (for Claude Code):\n```bash\nmcp-gateway stdio --config gateway.yaml\n```\n\n**SSE** (for remote clients):\n```bash\nmcp-gateway serve --config gateway.yaml --port 8765\n```\n\n### 3. Add to Claude Code\n\n```json\n{\n  \"mcpServers\": {\n    \"gateway\": {\n      \"command\": \"mcp-gateway\",\n      \"args\": [\"stdio\", \"--config\", \"/path/to/gateway.yaml\"]\n    }\n  }\n}\n```\n\n## Python Plugins\n\nAdd custom tools with zero boilerplate:\n\n```python\nfrom mcp_gateway import tool\n\n@tool(descri…","publisher":null,"homepage":"https://github.com/MagnusCole/mcp-gateway#readme","repository":"https://github.com/MagnusCole/mcp-gateway/releases","version":"0.2.0","license":null,"protocols":["mcp"],"tags":["ai","ai-tools","claude","gateway","llm","mcp","mcp-server","model-context-protocol","plugin","proxy","tools"],"pricing":null,"endpoints":[{"url":"pypi:mcp-unify","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"dev.filesystem","name":"Filesystem","confidence":0.882,"provenance":"derived"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"mcp-unify","registry":"pypi","observedAt":"2026-11-03T17:25:54.108Z","publishedAt":"2026-03-17T23:26:24.462880Z","latestVersion":"0.2.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"mcp-unify","url":"https://pypi.org/project/mcp-unify/","firstSeenAt":"2026-09-10T05:21:37.948Z","fetchedAt":"2026-11-03T17:24:01.642Z","normalizedAt":"2026-11-03T17:24:01.642Z"}]},"firstSeenAt":"2026-09-10T05:21:37.948Z","updatedAt":"2026-11-03T17:25:54.108Z"}