MCP server exposing a catalog of free APIs with embedding-based lookups
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":"public-apis-mcp","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.
## Public APIs MCP Catalog of free public APIs with semantic search. ## 🎯 Features - `search_public_apis`: embedding-based search over API names and descriptions - `get_public_api_details`: retrieve full details by `id` - Resources: `public-apis://apis`, `public-apis://api/{id}` ## 🔧 Setup (uv) Add to MCP clients (e.g., Claude Desktop) using uv. ### Claude Desktop macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` ```json { "mcpServers": { "public-apis": { "command": "uvx", "args": ["public-apis-mcp"] } } } ``` ## 🚀 Usage - Build embeddings index (optional; auto-build on first search): ```bash uvx public-apis-mcp build-index ``` - Run the MCP server over STDIO: ```bash uvx public-apis-mcp run ``` ## 📋 Tool Reference ### `search_public_apis` - Purpose: Semantic search over the catalog - Parameters: `query` (str), `limit` (int, default 5) - Returns: list of `{ id, name, score, snippet }` Example call payload: ```json { "name": "search_public_apis", "arguments": { "query": "weather", "limit": 5 } } ``` ### `get_public_api_details` - Purpose: Fetch full details by `id` - Parameters: `id` (str) - Returns: `ApiItem` Example call payload: ```json { "name": "get_public_api_details", "arguments": { "id": "a6b3a6b3-a6b3-a6b3-a6b3-a6b3a6b3a6b3" } } ``` ## 🛠️ Development Prerequisites: - Python 3.10+ - uv (`https://docs.astral.sh/uv/`) Setup: ```bash uv sync --dev ``` Run tests: ```bash FREE_APIS_MCP_TEST_MODE=1 uv run pytest -q ``` Lint and format: ```bash uv run ruff check --fix uv run ruff format ``` Type checking: ```bash uv run mypy src/ ``` ### MCP Client Dev Config ```json { "mcpServers": { "public-apis-dev": { "command": "uv", "args": [ "--directory", "<abs_path>/public-apis-mcp", "run", "public-apis-mcp" ] } } } ``` ### Build and Try ```bash uv build uv run --with dist/*.whl public-apis-mcp --help ``` ## 📦 Data & Index - Data: `s…
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.