Builders keep reporting the same thing: put 40+ MCP tool definitions in context and the agent starts picking the wrong tool. The usual fixes are to load schemas only when needed and to cap the number of steps. Start at [fastaf.co](/).

## Answer first

*   Connect the FastAF MCP (`https://api.fastaf.co/mcp`) only in the agents that need web data, not in every agent.
*   If an agent needs only one or two sources, skip the MCP: call the REST route directly, for example `GET https://api.fastaf.co/x402/v1/serp`. No schema in context, just one HTTP call.
*   The server always lists all of its tools: `tools/list` has no filter parameter. To expose only some of them, filter on the client side.

## What tools/list returns

`tools/list` is public: it needs no key and uses no credits. It returns all 23 FastAF tools in one response (about 29 KB of JSON on 28 October 2026), with no pagination. There is no query parameter, header or argument that asks the server for a subset.

```
curl -s https://api.fastaf.co/mcp \
  -H "Content-Type: application/json" -H "Accept: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

So you choose the tools in your agent code or MCP client. Read the list once, keep the tools the task needs (for example only `google_search` and `scrape_url`) and pass just those to the model. If your MCP client lets you turn off individual tools of a server, use that. The same list is published as a static file at [https://api.fastaf.co/.well-known/mcp/server-card.json](https://api.fastaf.co/.well-known/mcp/server-card.json).

## Option A: MCP, scoped

Use the MCP when the agent has to choose among many sources (search, Amazon, Reddit, YouTube, …). Add it per project, not globally ([setup for Claude Code, Codex and Cursor](/how-to/add-fastaf-claude-code-codex-cursor/)). Tool calls need an API key or an OAuth sign-in; the MCP is not paid with x402.

## Option B: one REST route, no schema

```
curl -i "https://api.fastaf.co/x402/v1/serp?query=mcp+registry"
# 402 Payment Required -> your x402 client pays $0.003 and retries
```

The spec for every route is at [https://api.fastaf.co/openapi.json](https://api.fastaf.co/openapi.json). Your code wraps one function; the model sees one small tool you wrote.

## Cap steps, and don’t pay for failures

Hard step limits stop loops. With x402, failed calls (source errors, empty results, blocks, invalid input) are not charged: payment is settled only when FastAF answers 200, so a capped retry pays only for the attempt that works. Prices: [x402 price list](/pricing/x402-price-list/). More on retries: [why agent retries cost more than you think](/how-to/agent-tool-retry-cost/).

## Try it free

500 free credits every month after email verification, or x402 with no account. [How to try FastAF for free](/how-to/free-search-api-for-agents/).

Source of the advice: builders on X, October 2026 (tool schema bloat and lazy-loading).

## Reference

*   [MCP documentation](/docs/#mcp): every parameter and response field
*   [Docs](/docs/): authentication, errors, MCP and [x402](/docs/#x402)
*   [Pricing](/pricing/): credit packs from $10, without expiry

## Other sources

*   [How to read public Amazon data when your requests fail](/how-to/read-amazon-data/)
*   [How to read public Google Search data when your requests fail](/how-to/read-google-data/)
*   [How to read public Walmart data when your requests fail](/how-to/read-walmart-data/)
*   [How to read LinkedIn data with an API](/how-to/read-linkedin-data/)
*   [How to read public eBay data when your requests fail](/how-to/read-ebay-data/)
*   [How to read public Booking.com data when your requests fail](/how-to/read-booking-data/)
*   [How to read X profile data with an API](/how-to/read-x-data/)
*   [How to read public Zillow data when your requests fail](/how-to/read-zillow-data/)
*   [Pay-per-call web scraping for AI agents with x402](/how-to/x402-pay-per-call-web-scraping/)
*   [MCP servers for Amazon, SERP and web scraping](/how-to/best-mcp-servers-amazon-serp-scraping/)
*   [Cost per agent: monthly SaaS vs x402 pay-per-call](/how-to/cost-per-agent-saas-vs-x402/)
*   [How FastAF handles heavy pages and timeouts](/how-to/heavy-pages-timeouts/)
*   [x402 endpoint discovery checklist: how agents find a paid API (and how FastAF passes it)](/how-to/x402-discovery-checklist/)
*   [Add FastAF to Claude Code, Codex and Cursor](/how-to/add-fastaf-claude-code-codex-cursor/)
*   [How to detect poisoned or incomplete SERP results in AI agents](/how-to/detect-poisoned-incomplete-serp-results/)
*   [Cap agent spend per call with fixed x402 prices](/how-to/agent-spend-caps-per-call-pricing/)
*   [Use FastAF from the Cloudflare Agents SDK](/how-to/fastaf-cloudflare-agents-sdk/)
*   [FastAF as a fallback search provider](/how-to/search-api-fallback-provider/)
*   [Budget a scraping job before you run it](/how-to/budget-scraping-job-fixed-prices/)
*   [Try FastAF for free, no card](/how-to/free-search-api-for-agents/)
*   [How agents find an API (and where FastAF is)](/how-to/agent-discovery-files/)
*   [Why agent retries cost more than you think](/how-to/agent-tool-retry-cost/)
*   [All how-to guides](/how-to/)

## Compare

*   [FastAF vs SerpApi](/compare/serpapi/)
*   [FastAF vs Exa](/compare/exa/)
*   [FastAF vs Tavily](/compare/tavily/)
*   [FastAF vs Firecrawl](/compare/firecrawl/)
*   [FastAF vs Apify](/compare/apify/)
*   [FastAF vs toll402](/compare/toll402/)
*   [FastAF vs serp402](/compare/serp402/)
*   [FastAF vs AgentBIT](/compare/agentbit/)
*   [FastAF vs Amazon PA-API](/compare/amazon-pa-api/)
*   [FastAF vs Serper](/compare/serper/)
*   [FastAF vs ScrapingBee](/compare/scrapingbee/)
*   [FastAF vs ScraperAPI](/vs/scraperapi/)
*   [FastAF vs Bright Data](/vs/bright-data/)
*   [Benchmarks](/benchmarks/): latency and cost per 1,000 requests, measured

## Try it on your own request

500 free credits every month after email verification, no card.

[Start free](/signup/)[MCP documentation](/docs/#mcp)

## Related

*   [How to read public Amazon data when your requests fail](/how-to/read-amazon-data/)
*   [How to read public Google Search data when your requests fail](/how-to/read-google-data/)
*   [How to read public Walmart data when your requests fail](/how-to/read-walmart-data/)
