pytest for MCP servers — test any server, no LLM required
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":"forge-mcp-2","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.
# 🔨 mcp-forge **pytest for MCP servers — test any server, no LLM required.** [](https://pypi.org/project/forge-mcp/) [](https://pypi.org/project/forge-mcp/) [](https://github.com/ioteverythin/forgemcp/actions/workflows/ci.yml) [](https://opensource.org/licenses/MIT) mcp-forge is a testing framework for [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) servers. It works with **any** MCP server — Python, TypeScript, Go, Rust — and requires **zero LLM calls**. Tests are deterministic, fast, and free to run in CI/CD. ## Why? Most MCP server testing today looks like this: spin up Claude Desktop, type a prompt, squint at the output, and hope it called the right tool. That's vibe-testing. mcp-forge gives you real tests: ```python import pytest from mcp_forge import MCPTestClient @pytest.fixture async def client(): async with MCPTestClient.from_command("python my_server.py") as c: yield c async def test_tool_exists(client): tools = await client.list_tools() assert "search_files" in [t.name for t in tools] async def test_search_works(client): result = await client.call_tool("search_files", {"query": "README"}) assert result.is_success assert "README.md" in result.text async def test_search_snapshot(client, forge_snapshot): result = await client.call_tool("search_files", {"query": "README"}) forge_snapshot.assert_match(result) ``` ## Installation ```bash pip install forge-mcp ``` With FastMCP in-memory testing support: ```bash pip install "forge-mcp[fastmcp]" ``` ## Quick Start ### 1. Write tests directly ```python from mcp_forge import MCPTestClient async def test_my_server(): async with MCPTestClient.from_command("python my_server.py") as clien…
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.