Give your AI coding agent the ability to find, test, and integrate any of 1,500+ free public APIs — instantly.
Data sourced from the community-maintained public-apis list · synced daily
An MCP (Model Context Protocol) server that gives AI coding agents real-time access to the public-apis dataset. Instead of copy-pasting API documentation, your agent can search, probe, and generate working code — all in one conversation.
You: "Find me a free weather API with no auth that supports HTTPS"
Agent: [calls search_apis] → returns top matches with auth/HTTPS/CORS details
You: "Test the first one — show me what the response looks like"
Agent: [calls probe_api] → live GET request, returns status + response shape
You: "Generate an axios snippet for it"
Agent: [calls generate_snippet] → ready-to-paste curl, fetch, and axios code
Pick the config for your client and paste it in. No build step required — npx handles everything.
Claude Desktop
File: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
File: %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"public-apis": {
"command": "npx",
"args": ["mcp-public-apis"]
}
}
}Cursor
File: .cursor/mcp.json in your project root (or ~/.cursor/mcp.json globally)
{
"mcpServers": {
"public-apis": {
"command": "npx",
"args": ["mcp-public-apis"]
}
}
}Windsurf
File: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"public-apis": {
"command": "npx",
"args": ["mcp-public-apis"]
}
}
}Cline (VS Code)
Open VS Code → Cline sidebar → MCP Servers tab → Add Server → paste:
{
"public-apis": {
"command": "npx",
"args": ["mcp-public-apis"]
}
}Local build
git clone https://github.com/josephsenior/pblic-apis-mcp-server
cd pblic-apis-mcp-server
npm install
npm run build
node dist/index.js| Tool | What it does | Key parameters |
|---|---|---|
search_apis |
Fuzzy-search 1,500+ APIs by keyword, category, auth type, and HTTPS | query, category, auth, httpsOnly, limit |
get_categories |
List every category with its API count | — |
get_api_detail |
Full record for one API by name | name |
probe_api |
Live HTTP GET to any endpoint — returns status, latency, and response preview | url, apiKey, timeoutMs |
compare_apis |
Side-by-side view of all APIs in a category | category, limit |
find_no_auth_apis |
Only APIs that need zero authentication | category, httpsOnly, limit |
generate_snippet |
Paste-ready curl, fetch, and axios snippets |
url, apiKey, headers |
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
string | — | Fuzzy-match against API name and description |
category |
string | — | Exact category name (use get_categories to browse) |
auth |
"No" | "apiKey" | "OAuth" |
— | Filter by auth requirement |
httpsOnly |
boolean | true |
Exclude non-HTTPS APIs |
limit |
number | 5 |
Max results (1–20) |
MCP Client (Claude / Cursor / etc.)
│ JSON-RPC over stdio
▼
mcp-public-apis server
│
├─ In-memory cache (24 h TTL)
│
└─ GitHub raw · public-apis/public-apis README.md
- On first use the server fetches the public-apis README from GitHub, parses every Markdown table row into structured
PublicAPIobjects, and stores them in a 24-hour in-memory cache. - All search and filter operations run locally against that cache — no external call per query.
probe_apiis the only tool that makes a request to a third-party endpoint (the one you explicitly pass in).
All API records come from public-apis/public-apis — a community-maintained list of 1,500+ free APIs across 60+ categories. The data is fetched fresh every 24 hours.