by zazencodes
Discover free APIs with semantic search across a curated catalog. Find APIs by use case, retrieve metadata, and explore
Searches a catalog of free public APIs using natural language queries and provides detailed metadata including authentication and CORS requirements.
Public APIs is a community-built MCP server published by zazencodes that provides AI assistants with tools and capabilities via the Model Context Protocol. Discover free APIs with semantic search across a curated catalog. Find APIs by use case, retrieve metadata, and explore It is categorized under search web. This server exposes 2 tools that AI clients can invoke during conversations and coding sessions.
You can install Public APIs in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
Public APIs is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Fetch and extract information from websites automatically
Example
Research competitor pricing, scrape product reviews, monitor news mentions
Automate 5-10 hours/week of manual web research
Track website changes, new content, price updates
Example
Monitor competitor blog for new posts, track stock availability, watch for pricing changes
Stay informed without manual checking, never miss important updates
Extract structured data from multiple websites
Example
Compile product listings from 10 e-commerce sites, aggregate job postings, collect real estate data
Build datasets 100x faster than manual copying
Share your MCP server with the developer community
Public APIs is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Public APIs is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Public APIs has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
Public APIs reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
We evaluated Public APIs against two servers with overlapping tools; this profile had the clearer scope statement.
Public APIs reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
We wired Public APIs into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
We wired Public APIs into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
We evaluated Public APIs against two servers with overlapping tools; this profile had the clearer scope statement.
We wired Public APIs into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
showing 1-10 of 72
Catalog of free public APIs with semantic search.
The catalog includes an extensive list of APIs from the public-apis GitHub repo.
Thank you to all the maintainers, contributors and API creators! 💯
search_public_apis: embedding-based search over API names and descriptionsget_public_api_details: retrieve full details by idpublic-apis://apis, public-apis://api/{id}Add to MCP clients (e.g., Claude Desktop) using uv.
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"public-apis": {
"command": "uvx",
"args": ["public-apis-mcp"]
}
}
}
uvx public-apis-mcp build-index
uvx public-apis-mcp run
search_public_apisquery (str), limit (int, default 5){ id, name, score, snippet }Example call payload:
{ "name": "search_public_apis", "arguments": { "query": "weather", "limit": 5 } }
get_public_api_detailsidid (str)ApiItemExample call payload:
{ "name": "get_public_api_details", "arguments": { "id": "a6b3a6b3-a6b3-a6b3-a6b3-a6b3a6b3a6b3" } }
Prerequisites:
https://docs.astral.sh/uv/)Setup:
uv sync --dev
Run tests:
FREE_APIS_MCP_TEST_MODE=1 uv run pytest -q
Lint and format:
uv run ruff check --fix
uv run ruff format
Type checking:
uv run mypy src/
{
"mcpServers": {
"public-apis-dev": {
"command": "uv",
"args": [
"--directory",
"<abs_path>/public-apis-mcp",
"run",
"public-apis-mcp"
]
}
}
}
uv build
uv run --with dist/*.whl public-apis-mcp --help
src/public_apis_mcp/datastore/free_apis.jsonsrc/public_apis_mcp/datastore/index.npz (auto-built)For exploring and/or developing this server, use the MCP Inspector npm utility:
# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector
# Run local development server with the inspector
npx @modelcontextprotocol/inspector uv run public-apis-mcp
# Run PyPI production server with the inspector
npx @modelcontextprotocol/inspector uvx public-apis-mcp
MIT License - see LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
Interact with services that don't offer APIs
Example
Check form submissions, validate website functionality, test user flows
Automate interactions with any website, even without API
Prerequisites
Time Estimate
20-40 minutes including configuration and testing
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
MCP server handles HTTP requests, HTML parsing, JavaScript rendering (if headless browser), and returns structured data to Claude.
Protocols
Compatibility
✓ Use when
Use for research automation, content monitoring, data aggregation from multiple sources, and when official APIs don't exist. Best for read-only information gathering.
✗ Avoid when
Avoid for sites with APIs (use API instead), sites that explicitly forbid scraping, when data is copyrighted, or for login-required content without proper authorization.