{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_xv6rp8tgyy7t","handle":"mcp-plugin","url":"https://wellknown.network/agents/mcp-plugin","links":{"self":"https://wellknown.network/agents/mcp-plugin/record.json","html":"https://wellknown.network/agents/mcp-plugin","markdown":"https://wellknown.network/agents/mcp-plugin/record.md","api":"https://wellknown.network/api/v1/agents/mcp-plugin","status":"https://wellknown.network/api/v1/agents/mcp-plugin/status","claim":"https://wellknown.network/agents/mcp-plugin/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-plugin/claim.json","badge":"https://wellknown.network/agents/mcp-plugin/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:mcp-plugin","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"slife-mcp","summary":"Standalone MCP proxy service — manages persistent connections to external MCP servers","description":"# slife-mcp\n\nStandalone MCP proxy service — manages persistent connections to external MCP servers and exposes them through a single MCP endpoint.\n\n## Quick Start\n\n```bash\npip install slife-mcp\n\n# Run — auto-detects mode:\nslife-mcp                      # with slife.json5 → HTTP, without → stdio\nslife-mcp --port 8888          # HTTP on custom port\nslife-mcp --host 0.0.0.0 --port 9876  # HTTP on all interfaces\n```\n\n## How It Works\n\n```\nMCP clients ←→ slife-mcp ←→ external MCP servers (filesystem, search, fetch, …)\n```\n\nslife-mcp acts as a **proxy layer** between MCP clients and external MCP servers. Instead of each client managing its own server connections, slife-mcp maintains persistent connections centrally and exposes all tools through a single endpoint.\n\nKey design decisions:\n\n- **Raw JSON-RPC over subprocess pipes** — no `anyio`, no `ClientSession`. Avoids `TaskGroup` conflicts with FastMCP and keeps the implementation simple and debuggable.\n- **Connection pooling** — servers are kept alive across requests. Disconnected servers can be reconnected at runtime without restarting slife-mcp.\n- **Stderr capture** — when a server fails to connect, its stderr output is included in the error message so the LLM (or human operator) can understand and fix the problem.\n- **Progressive disclosure** — servers default to eager mode (tools loaded at startup), but can be configured as lazy (connected, tools hidden) to keep the tool list lean. Switch between modes at runtime with `mcp_set_disclosure`.\n\nThis supports any MCP-compatible server, including:\n\n- **Pre-built MCP servers** — filesystem, web search (Serper, Tavily), fetch, etc.\n- **REST API servers** — [anyapi-mcp-server](https://github.com/quiloos39/anyapi-mcp-server) converts OpenAPI specs to MCP tools, making any REST API (GitHub, Jira, GitLab, Slack…) callable as tools.\n\n## Configuration\n\nCreate `slife.json5` in your working directory:\n\n```json5\n{\n  mcp: {\n    // wrapper.url — where clients connect to slife-mcp\n    wr…","publisher":null,"homepage":"https://github.com/juzcn/slife","repository":"https://github.com/juzcn/slife","version":"0.1.3","license":"MIT","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:mcp-plugin","type":"package_pypi","auth":null,"probeable":false},{"url":"pypi:slife-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"dev.filesystem","name":"Filesystem","confidence":1,"provenance":"derived"},{"slug":"data.web-search","name":"Web Search","confidence":0.825,"provenance":"derived"},{"slug":"data.apis","name":"API Access","confidence":0.814,"provenance":"derived"},{"slug":"dev.version-control","name":"Version Control","confidence":0.779,"provenance":"derived"}],"categories":["data","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":"slife-mcp","registry":"pypi","observedAt":"2026-09-10T12:23:35.327Z","publishedAt":"2026-07-14T08:52:47.345617Z","latestVersion":"0.1.3"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"slife-mcp","url":"https://pypi.org/project/slife-mcp/","firstSeenAt":"2026-09-10T12:22:33.188Z","fetchedAt":"2026-09-10T12:22:33.188Z","normalizedAt":"2026-09-10T12:22:33.188Z"},{"source":"pypi","key":"mcp-plugin","url":"https://pypi.org/project/mcp-plugin/","firstSeenAt":"2026-09-10T02:24:50.279Z","fetchedAt":"2026-09-10T02:24:50.279Z","normalizedAt":"2026-09-10T02:24:50.279Z"}]},"firstSeenAt":"2026-09-10T02:24:50.279Z","updatedAt":"2026-09-10T12:23:35.327Z"}