{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_pp7sjch8b38x","handle":"mcp-chain","url":"https://wellknown.network/agents/mcp-chain","links":{"self":"https://wellknown.network/agents/mcp-chain/record.json","html":"https://wellknown.network/agents/mcp-chain","markdown":"https://wellknown.network/agents/mcp-chain/record.md","api":"https://wellknown.network/api/v1/agents/mcp-chain","status":"https://wellknown.network/api/v1/agents/mcp-chain/status","claim":"https://wellknown.network/agents/mcp-chain/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-chain/claim.json","badge":"https://wellknown.network/agents/mcp-chain/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mcp-chain/history","tools":"https://wellknown.network/api/v1/agents/mcp-chain/tools"},"ard":{"identifier":"urn:air::server:mcp-chain","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"mcp-chain","summary":"An MCP server proxy with to modify and enrich calls to other MCP servers","description":"# MCP Chain\n\n[![CI](https://github.com/ruliana/mcp-chain/actions/workflows/python-package.yml/badge.svg)](https://github.com/ruliana/mcp-chain/actions/workflows/python-package.yml)\n[![codecov](https://codecov.io/gh/ruliana/mcp-chain/branch/main/graph/badge.svg)](https://codecov.io/gh/ruliana/mcp-chain)\n[![PyPI version](https://badge.fury.io/py/mcp-chain.svg)](https://badge.fury.io/py/mcp-chain)\n[![GitHub release](https://img.shields.io/github/release/ruliana/mcp-chain.svg)](https://github.com/ruliana/mcp-chain/releases)\n[![Python versions](https://img.shields.io/pypi/pyversions/mcp-chain.svg)](https://pypi.org/project/mcp-chain/)\n[![License](https://img.shields.io/github/license/ruliana/mcp-chain.svg)](https://github.com/ruliana/mcp-chain/blob/main/LICENSE)\n\nA composable middleware framework for building MCP server chains, inspired by Ruby Rack. MCP Chain lets you create transparent proxies that sit between MCP clients and servers, transforming requests and responses using Python functions.\n\nMCP Chain solves the problem of adding cross-cutting concerns (authentication, logging, request transformation) to existing MCP servers without modifying them. It uses a transparent proxy pattern where each middleware layer appears as a standard MCP server to clients while forwarding requests to downstream servers. Middleware can also orchestrate multiple MCP calls behind the scenes using AI, transforming granular APIs into intelligent MCPs that perform complex multi-step tasks.\n\n## Quickstart\n\nInstall and run with `uvx` - no setup required:\n\n```python\n# cli_server.py\nfrom mcp_chain import mcp_chain, CLIMCPServer\n\ncli_server = CLIMCPServer(\n    name=\"dev-tools\",\n    commands=[\"git\", \"ls\", \"grep\"],\n    descriptions={\n        \"git\": \"Git version control operations\",\n        \"ls\": \"List directory contents\", \n        \"grep\": \"Search text patterns\"\n    }\n)\n\n# Auto-detected by CLI\nchain = mcp_chain().then(cli_server)\n```\n\n```bash\nuvx mcp-chain cli_server.py\n```\n\nAdd to your `mcp.json…","publisher":null,"homepage":null,"repository":null,"version":"0.1.9","license":"MIT License  Copyright (c) 2025 Ronie Uliana  Permission is her…","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:mcp-chain","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"},{"slug":"dev.version-control","name":"Version Control","confidence":0.745,"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-chain","registry":"pypi","observedAt":"2026-11-09T14:28:04.591Z","publishedAt":"2025-06-19T13:07:57.555882Z","latestVersion":"0.1.9"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"mcp-chain","url":"https://pypi.org/project/mcp-chain/","firstSeenAt":"2026-09-10T00:24:47.936Z","fetchedAt":"2026-11-09T14:26:54.394Z","normalizedAt":"2026-11-09T14:26:54.394Z"}]},"firstSeenAt":"2026-09-10T00:24:47.936Z","updatedAt":"2026-11-09T14:28:04.591Z"}