Claude Code
Run once in a terminal; the server is available in every project.
claude mcp add --transport http needanai https://mcp.needanai.com/mcpAgent access · free
One MCP server and one JSON API over the whole catalogue: 15,000+ AI tools with pricing, pros and cons, alternatives and the date each site was last confirmed alive. Reads are free and need no account.
claude mcp add --transport http needanai https://mcp.needanai.com/mcpPick your host. Each snippet is the complete setup; there is nothing to sign up for.
Run once in a terminal; the server is available in every project.
claude mcp add --transport http needanai https://mcp.needanai.com/mcpSettings → Connectors → Add custom connector. Paste the URL; no authentication.
https://mcp.needanai.com/mcpUse the Add to Cursor button above, or add this to ~/.cursor/mcp.json.
{
"mcpServers": {
"needanai": {
"url": "https://mcp.needanai.com/mcp"
}
}
}Use the Install in VS Code button above, or add this to .vscode/mcp.json.
{
"servers": {
"needanai": {
"type": "http",
"url": "https://mcp.needanai.com/mcp"
}
}
}Settings → Connectors → Create (developer mode). Authentication: none.
https://mcp.needanai.com/mcpAdd to ~/.gemini/settings.json.
{
"mcpServers": {
"needanai": {
"httpUrl": "https://mcp.needanai.com/mcp"
}
}
}@needanai/mcp forwards stdio to https://mcp.needanai.com/mcp. Set NEEDANAI_API_KEY in the host's env for keyed tools.
{
"mcpServers": {
"needanai": {
"command": "npx",
"args": [
"-y",
"@needanai/mcp"
]
}
}
}No SDK needed. Every MCP tool is also a REST endpoint.
curl "https://api.needanai.com/v1/tools?query=video%20editing&pricing=free,freemium"
curl "https://api.needanai.com/v1/tools/claude"
curl "https://api.needanai.com/v1/recommendations?task=create%20a%20logo&budget=free"
curl https://needanai.com/tool/claude.json # same profile, no gateway
curl https://needanai.com/tool/claude.md # markdown with provenanceA live call to the public API, exactly what your AI receives when it asks recommend_for_task. Nothing runs until you press the button.
Fourteen MCP tools. Each one is also a REST route with the same inputs, and the OpenAPI document has the exact schemas.
| Tool | Does | Inputs | REST |
|---|---|---|---|
search_tools | Search by text, pricing, category or task. Returns facets, freshness labels and a separate sponsored block. | query, pricing[], category, task, sort (relevance | recent), page, perPage ≤ 25 | GET /v1/tools |
get_tool | Full profile: pricing with the date it was checked, pricing history, pros, cons, FAQs, status, alternatives. | slug | GET /v1/tools/{slug} |
find_alternatives | Ranked alternatives with a rationale for each pick. | slug, samePricing, limit ≤ 25 | GET /v1/tools/{slug}/alternatives |
compare_tools | Two to five tools side by side, attribute by attribute. | slugs[2..5] | GET /v1/compare?slugs=a,b |
recommend_for_task | Best tools for a task, in plain words, with a budget. Every pick explains itself. | task, budget (free | freemium | paid | any), limit ≤ 10 | GET /v1/recommendations |
list_taxonomy | Category or task slugs with live tool counts, for building valid queries. | kind (categories | tasks) | GET /v1/categories · /v1/tasks |
search_articles | Reviews, comparisons and guides from the blog. | query, category, limit ≤ 25 | GET /v1/articles |
get_article | One article as markdown. | slug | GET /v1/articles/{slug} |
check_status | Is the site alive, when was it last checked, how fresh is the listing. | slug | GET /v1/tools/{slug}/status |
watch_toolkey | Webhook or email when a tool’s status or pricing changes. Checked every 30 minutes. | slug, channel (webhook | email), target | POST /v1/watches |
list_watcheskey | Your active watches. | none | GET /v1/watches |
unwatch_toolkey | Stop a watch. | id | DELETE /v1/watches/{id} |
submit_toolkey | Suggest a tool for review. A known website returns the existing listing. | name, url, description, pricingType | POST /v1/submissions |
export_toolskey | Up to 2,000 matching rows as JSON or CSV behind a signed link valid for 24 hours. | query, pricing[], category, task, format (json | csv), maxRows ≤ 2000 | POST /v1/exports |
Tools marked key need a free API key sent as Authorization: Bearer nai_…. Every MCP answer carries both readable text and structured content. The server also exposes a needanai://tool/<slug> resource and a find_tool_for prompt.
Every tool page answers in three formats from the same record. No gateway, no key, cached at the edge.
A tool is fresh when its site was confirmed alive within 30 days, aging within 90, stale beyond that, and unknown when it was never checked. The label comes with the date and whether it rests on a full verification or a reachability check.
Search results carry a separate sponsored block with a disclosure. It is present on every answer, usually empty, and its items are never mixed into ranked results. Read the disclosure page for how sponsorship is labelled on the site.
Everything is free while we learn what people use. Rate-limit headers are on every response.
| Tier | Auth | Per day | Burst | Gets |
|---|---|---|---|---|
| Anonymous | none | 300 requests | 5 per second | every read tool; search pages 1–20 |
| Free key | Authorization: Bearer nai_… | 3,000 requests | 20 per second | reads plus watches, submissions and exports; search pages up to 400 |
Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (unix seconds), Retry-After on 429 and 503, X-Request-Id on everything, X-Cache on catalogue reads. Search pages hold at most 25 results.
Failures are RFC 9457 problem documents (application/problem+json). The type URL of each one points at its row below.
| Kind | Status | Meaning | What to do |
|---|---|---|---|
invalid_input | 400 | A parameter failed validation. The detail names the field. | Check the input schema in the tool list or openapi.json. |
unauthorized | 401 | The call needs an API key, or the key is unknown or revoked. | Create a key under Profile → API Keys and send it as a Bearer token. |
forbidden | 403 | The key is valid but not allowed to do this. | Use a different key, or read the limits table. |
not_found | 404 | No tool, article or watch with that identifier. | Search first; slugs are lower-case with hyphens. |
conflict | 409 | The resource already exists, for example a duplicate watch. | List watches and reuse the existing one. |
rate_limited | 429 | Too many requests in a short window. | Wait for the seconds in Retry-After, then retry. |
quota_exceeded | 429 | The daily quota is used up. | Wait for the reset in X-RateLimit-Reset, or use a free key for a higher quota. |
upstream_unavailable | 503 | The catalogue did not answer in time. Cached answers are served when one exists. | Retry after the seconds in Retry-After. |
not_configured | 501 | The feature is not enabled on this deployment, for example email delivery. | Use the alternative named in the detail, such as a webhook. |
{
"type": "https://needanai.com/developers#errors-rate_limited",
"title": "Too many requests",
"status": 429,
"detail": "Anonymous clients may make 5 requests per second.",
"kind": "rate_limited",
"requestId": "…"
}On Chrome builds that expose a model context, every page of this site registers search_tools, get_tool, compare_tools and open_tool_page for the browser’s own agent, so it can act on the site rather than scrape it.
When Chrome’s on-device models are present, a tool page offers a summary, questions and answers, and translation computed on your machine. Nothing leaves the browser, and other browsers see the page unchanged.
Yes. Reads need no account and no key. A free key unlocks watches, submissions and exports with a higher daily quota. If commercial tiers ever exist they will be announced on this page first, and the anonymous tier stays.
The same catalogue as the website: 15,000+ tools discovered by our crawlers, summarised with AI assistance, and re-checked by an automated scanner. Every answer carries the date a site was last confirmed alive. See the methodology page for the details.
Search results are cached for 15 minutes and tool profiles for 6 hours, and every tool carries a freshness label with its own date. When the catalogue is slow the gateway serves the last good answer rather than failing; the X-Cache header says whether an answer came from cache.
The gateway never sees your prompt, only the tool call your AI makes. We record which tools are called, how long they take and a salted hash of the client, to know what people use. No query text is stored.
Use export_tools with a free key: up to 2,000 rows per export as JSON or CSV. For more, run several filtered exports by category.
Every error carries an X-Request-Id. Send it, with the request you made, through the contact details on the About page, and we can find the exact log line.
Server card
https://mcp.needanai.com/.well-known/mcp/server-card.json
Machine-readable description of the MCP server.
OpenAPI 3.1
https://api.needanai.com/openapi.json
Every REST route with request and response schemas.
llms.txt
https://needanai.com/llms.txt
The site map written for language models.
Agent skill
https://needanai.com/skills/needanai/SKILL.md
A drop-in skill file for agent frameworks.
robots.txt
https://needanai.com/robots.txt
Named allows for every major AI crawler.
Hosts that only speak stdio run npx @needanai/mcp (see Connect), our published shim. The server is named com.needanai/catalog in the MCP Registry. Source and issues live with the site’s repository; see the About page for contact.