Discovery,
built into your agent.
Give your agent a source-backed directory to search and compare. Start with a compact shortlist, then request the details and connection requirements you need.
Try the API// Start with what you need. search_services( { requestJson: JSON.stringify({ query: "web research", protocol: "MCP" }) } ) // Get the details that matter. → compact candidates & match reasons → sourced connection details → explicit gaps & check datesDiscovery is read-only
Open discovery for your agents.
The application’s discovery MCP endpoint at /api/mcp supports read-only discovery, alongside the REST API. Public discovery works without a ToolSkipper account or API key. The quick start includes a working connection check and a downloadable JavaScript client. Execution and saved results use the separate signed-in connection.
Discovery quotas
Anonymous discovery stays open: 120 requests per minute and 6,000 per UTC day per network, shared across public pages, REST and MCP. Approved integration keys allow 600 per minute and 50,000 per UTC day; network and site-wide limits still apply. Keys expire after 90 days. Send an optional key only in the X-ToolSkipper-Key header to ToolSkipper. It grants no sign-in, private data, execution or administrator rights.
HTTP 429 includes Retry-After in seconds. Stop and wait; do not automatically retry, switch routes or rotate identities. No CAPTCHA is used for discovery. Shared networks share the anonymous quota.
Start with a shortlist
Get compact results with keyword matches, filters and source check dates.
Plan the connection
Read documented endpoints, access requirements and missing information before connecting.
Keep control
Plan first, then run a supported public task. ToolSkipper sends no credentials or payments.
Try a real task.
Use get_task_options to inspect the provider and access requirements, then execute_task to run the same request. Exa accepts public search text; Jina reads approved documentation URLs. Both use limited anonymous access. Browserless returns account setup guidance.
{
"requestJson": "{\"task\":\"web_search\",\"input\":\"Official x402 payment documentation\",\"maxSpendUsd\":0}"
}Only maxSpendUsd: 0 is accepted. Input is sent to the named provider on execution. No automatic retries, no paid fallback and no result storage. A completed result checks response shape, not factual quality. Execution through MCP also requires a trusted signed-in visitor identity. REST uses POST /api/tasks/plan and /api/tasks/run with the same body, signed-in identity and matching Origin.
Open the task workbenchMove past anonymous access.
Use get_connection_handoff with {"provider":"exa"} for reviewed account setup. Exa and Browserless support OAuth through a compatible MCP host; Jina uses a key in your host’s secure settings. The response includes official endpoints, setup steps and source dates.
This is a connection plan, not a connected account. ToolSkipper does not accept credentials, inspect your host, grant spending permission or execute authenticated tasks. The host must discover the provider’s live tool schemas and check billing controls before an authorized task. Recheck availability before configuring; edited or unpublished records have no usable options.
Open account setupPlan a measurable comparison.
Read GET /api/benchmarks for 20 documentation tasks across English, Turkish, German and Spanish. Each case has a stable ID, source references and review criteria. Send its ID and optional constraints to POST /api/benchmarks/plan. Agents can use get_benchmark_suite and plan_benchmark through MCP with the same planning contract.
{
"requestJson": "{\"caseId\":\"search-payment-flow-en\",\"constraints\":{\"maxTaskCostUsd\":0,\"maxDurationMs\":10000,\"requireMeasuredQuality\":true}}"
}Planning only. The response includes documented candidates, source dates, unknown account and quota status, and unmeasured cost, duration and quality. A $0 requirement is not a free-access guarantee; unknown constraints are never treated as satisfied. The plan does not call providers, connect an account, authorize payments or choose a performance winner. Translated page-reading cases share their English source page and do not represent independent retrieval samples.
Explore the benchmark labA service plan for a custom task.
Use recommend_services through MCP or POST /api/recommendations with a single requestJson string. Include a task type, the original query and structured conditions. The response preserves every condition and explains documented connection options, exclusions and unknowns.
{
"requestJson": "{\"task\":\"web_search\",\"query\":\"x402 ödeme akışını açıklayan resmi belgeleri bul.\",\"constraints\":{\"access\":\"no_account\",\"protocol\":\"MCP\",\"maxTaskCostUsd\":0,\"outputLanguage\":\"tr\"},\"requirements\":[\"Only primary sources\"]}"
}Task, access and protocol filter documented options. The query is not translated or interpreted as filters; agents must explicitly preserve conditions in the structured fields. Free text, additional requirements, cost, duration, quality and output language need evidence. A candidate is never a confirmed task match or a performance winner. Planning makes no provider call, connects no account and authorizes no spending.
Find service optionsKeep a private result receipt.
For a fixed benchmark case, use POST /api/benchmark-runs or run_benchmark with explicit consent. ToolSkipper saves the bounded output and timing from its anonymous Exa or Jina adapter. Read the receipt with get_benchmark_run, list your recent receipts with list_benchmark_runs, and record a source comparison with review_benchmark_run.
{
"requestJson": "{\"runId\":\"00000000-0000-4000-8000-000000000001\",\"caseId\":\"search-payment-flow-en\",\"consent\":true,\"isTest\":true,\"maxSpendUsd\":0}"
}Requires a trusted signed-in Sites visitor identity; a service-access credential alone cannot access private results. Keep the same runId after an uncertain response and read its receipt. The same claim never executes again, including after expiry. A test run still contacts the provider when explicitly started; isTest labels the record, it is not simulation mode. Outputs and reviews expire after 90 days; minimal duplicate-prevention records remain. Source comparisons are self reviews, not independently verified quality scores. Provider cost stays unknown; ToolSkipper sends no payment. Native tool availability depends on your host receiving the updated tool inventory.
Open saved resultsFits the way you build.
A small API. Useful answers.
Search the catalogue, get an individual service, and build your own discovery experience.
- GET /api/services
- GET /api/services/:slug
- GET /api/services/:slug/connection
- GET /api/connections/:provider
- GET /api/benchmarks
- POST /api/benchmarks/plan
- POST /api/recommendations
- GET / POST /api/benchmark-runs
- GET /api/benchmark-runs/:id
- POST /api/benchmark-runs/:id/review
- GET /api/openapi
GET /api/services?q=%E7%BD%91%E9%A1%B5%E6%90%9C%E7%B4%A2&q_en=web+search&protocol=MCP&view=compact&limit=3
Query parameters: q, q_en, category, protocol, pricing, sort, limit, view. q_en is an optional English translation supplied by your agent; the original q is required. REST defaults to full records; use view=compact for a shortlist.
Take it for a spin.
Run a request to see the live catalogue response here.
Inspect a connection.
Use a service slug from a search result. ToolSkipper returns sourced connection information and clearly marks what still needs checking. Your agent’s host handles authorization and provider connections.
Inspect a service to see its connection details. No provider tools will be called.
The catalogue is a reviewed snapshot. Retrieval dates describe the source check; they do not certify service uptime, quality or current pricing. Read our methodology.