{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_npav3e8v8qr3","handle":"forge-mcp-2","url":"https://wellknown.network/agents/forge-mcp-2","links":{"self":"https://wellknown.network/agents/forge-mcp-2/record.json","html":"https://wellknown.network/agents/forge-mcp-2","markdown":"https://wellknown.network/agents/forge-mcp-2/record.md","api":"https://wellknown.network/api/v1/agents/forge-mcp-2","status":"https://wellknown.network/api/v1/agents/forge-mcp-2/status","claim":"https://wellknown.network/agents/forge-mcp-2/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/forge-mcp-2/claim.json","badge":"https://wellknown.network/agents/forge-mcp-2/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/forge-mcp-2/history","tools":"https://wellknown.network/api/v1/agents/forge-mcp-2/tools"},"ard":{"identifier":"urn:air::server:forge-mcp-2","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"forge-mcp","summary":"pytest for MCP servers — test any server, no LLM required","description":"# 🔨 mcp-forge\n\n**pytest for MCP servers — test any server, no LLM required.**\n\n[![PyPI](https://img.shields.io/pypi/v/forge-mcp)](https://pypi.org/project/forge-mcp/)\n[![Python](https://img.shields.io/pypi/pyversions/forge-mcp)](https://pypi.org/project/forge-mcp/)\n[![CI](https://github.com/ioteverythin/forgemcp/actions/workflows/ci.yml/badge.svg)](https://github.com/ioteverythin/forgemcp/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nmcp-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.\n\n## Why?\n\nMost 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.\n\nmcp-forge gives you real tests:\n\n```python\nimport pytest\nfrom mcp_forge import MCPTestClient\n\n@pytest.fixture\nasync def client():\n    async with MCPTestClient.from_command(\"python my_server.py\") as c:\n        yield c\n\nasync def test_tool_exists(client):\n    tools = await client.list_tools()\n    assert \"search_files\" in [t.name for t in tools]\n\nasync def test_search_works(client):\n    result = await client.call_tool(\"search_files\", {\"query\": \"README\"})\n    assert result.is_success\n    assert \"README.md\" in result.text\n\nasync def test_search_snapshot(client, forge_snapshot):\n    result = await client.call_tool(\"search_files\", {\"query\": \"README\"})\n    forge_snapshot.assert_match(result)\n```\n\n## Installation\n\n```bash\npip install forge-mcp\n```\n\nWith FastMCP in-memory testing support:\n```bash\npip install \"forge-mcp[fastmcp]\"\n```\n\n## Quick Start\n\n### 1. Write tests directly\n\n```python\nfrom mcp_forge import MCPTestClient\n\nasync def test_my_server():\n    async with MCPTestClient.from_command(\"python my_server.py\") as clien…","publisher":null,"homepage":"https://github.com/ioteverythin/forgemcp#readme","repository":"https://github.com/ioteverythin/forgemcp#readme","version":"0.1.0","license":null,"protocols":["mcp"],"tags":["agents","ai","ci-cd","claude","fastmcp","llm","mcp","model-context-protocol","pytest","schema-validation","snapshot-testing","testing","tool-testing"],"pricing":null,"endpoints":[{"url":"pypi:forge-mcp","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":"code.testing","name":"Testing","confidence":1,"provenance":"declared"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":1,"provenance":"declared"}],"categories":["code","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":"forge-mcp","registry":"pypi","observedAt":"2026-10-28T01:26:38.868Z","publishedAt":"2026-03-21T11:47:16.636949Z","latestVersion":"0.1.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"forge-mcp","url":"https://pypi.org/project/forge-mcp/","firstSeenAt":"2026-09-09T15:23:35.419Z","fetchedAt":"2026-10-28T01:25:28.115Z","normalizedAt":"2026-10-28T01:25:28.115Z"}]},"firstSeenAt":"2026-09-09T15:23:35.419Z","updatedAt":"2026-10-28T01:26:38.868Z"}