Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,19 @@ curl -s -X POST https://api.getanyapi.com/agent/signup

| Variable | Required | Default | Meaning |
| --- | --- | --- | --- |
| `ANYAPI_API_KEY` | No | none | Your AnyAPI key. Every tool call needs it. Connecting and listing the tools does not. |
| `ANYAPI_API_KEY` | No | none | Your AnyAPI key. Running an API needs it. Connecting, listing the tools, and the four catalog tools do not. |
| `ANYAPI_MCP_URL` | No | `https://api.getanyapi.com/mcp` | The hosted endpoint to proxy to. |

The key is optional on purpose, but be precise about what that buys. The hosted
server answers `initialize` and `tools/list` without a credential, so a client
connects and sees the ten tools with no account. **Every `tools/call` needs a
key, including the discovery tools** - `search_apis`, `list_apis` and `get_api`
all return 401 without one.

To read the catalog with no account at all, use the public REST endpoints
instead: `GET https://api.getanyapi.com/catalog` and
`GET https://api.getanyapi.com/catalog/search`. Both answer keyless.
connects and sees the ten tools with no account. It also answers the four
catalog tools without one - `search_apis`, `list_apis`, `get_api` and
`quote_api` - so a keyless install can find an API, read its input schema and
price a call. **`run_api` and the account tools return 401 without a key.**

The same catalog is public over REST as well:
`GET https://api.getanyapi.com/catalog` and
`GET https://api.getanyapi.com/catalog/search`.

## Tools

Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "anyapi-mcp",
"version": "0.1.3",
"version": "0.1.4",
"mcpName": "io.github.getanyapi-com/anyapi",
"description": "Local stdio MCP server for AnyAPI - hundreds of scraping and data APIs behind one key, priced per request in USD. Proxies to the hosted AnyAPI MCP server.",
"license": "Apache-2.0",
Expand Down
12 changes: 6 additions & 6 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.getanyapi-com/anyapi",
"description": "Hundreds of scraping & data APIs through one key. USD pay-per-request, normalized schemas, failover.",
"version": "0.1.3",
"version": "0.1.4",
"websiteUrl": "https://getanyapi.com",
"repository": {
"url": "https://github.com/getanyapi-com/mcp",
Expand All @@ -15,7 +15,7 @@
"headers": [
{
"name": "Authorization",
"description": "AnyAPI API key as a Bearer token (format: Bearer aa_live_...). Mint one at https://getanyapi.com/dashboard/keys. Every tool call requires it, including the discovery tools; connecting and listing the tools does not.",
"description": "AnyAPI API key as a Bearer token (format: Bearer aa_live_...). Mint one at https://getanyapi.com/dashboard/keys. Needed to run an API; connecting, listing the tools, and the catalog tools (list_apis, search_apis, get_api, quote_api) all work without it.",
"isRequired": true,
"isSecret": true
}
Expand All @@ -27,31 +27,31 @@
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"identifier": "anyapi-mcp",
"version": "0.1.3",
"version": "0.1.4",
"runtimeHint": "npx",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"name": "ANYAPI_API_KEY",
"description": "AnyAPI API key (format: aa_live_...). Mint one at https://getanyapi.com/dashboard/keys. Every tool call requires it, including the discovery tools; connecting and listing the tools does not.",
"description": "AnyAPI API key (format: aa_live_...). Mint one at https://getanyapi.com/dashboard/keys. Needed to run an API; connecting, listing the tools, and the catalog tools (list_apis, search_apis, get_api, quote_api) all work without it.",
"isRequired": false,
"isSecret": true
}
]
},
{
"registryType": "oci",
"identifier": "ghcr.io/getanyapi-com/mcp:0.1.3",
"identifier": "ghcr.io/getanyapi-com/mcp:0.1.4",
"runtimeHint": "docker",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"name": "ANYAPI_API_KEY",
"description": "AnyAPI API key (format: aa_live_...). Mint one at https://getanyapi.com/dashboard/keys. Every tool call requires it, including the discovery tools; connecting and listing the tools does not.",
"description": "AnyAPI API key (format: aa_live_...). Mint one at https://getanyapi.com/dashboard/keys. Needed to run an API; connecting, listing the tools, and the catalog tools (list_apis, search_apis, get_api, quote_api) all work without it.",
"isRequired": false,
"isSecret": true
}
Expand Down
Loading