A Python framework for building multi-agent MCP servers
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"agent-mcp-framework","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# agent-mcp-framework [](https://github.com/Jbermingham1/agent-mcp-framework/actions/workflows/ci.yml) [](https://pypi.org/project/agent-mcp-framework/) [](https://github.com/Jbermingham1/agent-mcp-framework/blob/main/Dockerfile) [](https://www.python.org/downloads/) A Python framework for building multi-agent MCP (Model Context Protocol) servers. Compose multi-agent systems with sequential, parallel, conditional, and map-reduce pipeline patterns, agent lifecycle hooks, and structured outputs — and expose the result as MCP tools for Claude, VSCode, or any MCP-compatible client. ## Features - **Agent abstractions** — `Agent`, `LLMAgent`, `FunctionAgent` with lifecycle hooks - **Pipeline composition** — Sequential, Parallel, Conditional, and MapReduce patterns - **MCP integration** — Expose agent pipelines as MCP tools over stdio or SSE - **Output formatting** — JSON, Markdown, and plain text output modes - **CLI** — Run servers and pipelines from the command line - **Docker ready** — Dockerfile, docker-compose, and container health checks - **CI** — GitHub Actions matrix (Python 3.10–3.13): lint, tests, Docker build ## Installation ```bash pip install agent-mcp-framework ``` ## Quick Start ```python from agent_mcp_framework import Agent, AgentContext, AgentResult, SequentialPipeline, AgentMCPServer class AnalyzerAgent(Agent): async def run(self, context: AgentContext) -> AgentResult: code = context.get("code", "") issues = [] if len(code.splitlines()) > 500: issues.append("File exceeds 500 lines — consider splitting") if "import *" in code: issues.append("Wildcard imports detected") context.set("issues", iss…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.