{
  "schemaVersion": 1,
  "publishedAt": "2026-10-15T18:04:57.641Z",
  "method": "Three separately prompted AI agents used the public MCP endpoint. These are internal discovery observations, not independent certification, model-quality scores or end-to-end provider benchmarks.",
  "endpoint": "https://toolskipper.com/api/mcp",
  "totalRequests": 12,
  "cases": [
    {
      "id": "free-llm-access",
      "title": "Find a free LLM without losing access requirements",
      "outcome": "Requirements unresolved",
      "testedAt": "2026-10-15T17:58:46.304Z",
      "originalRequest": "Find an LLM API with an ongoing free quota, no account, no credit card, tool calling and strict JSON output. Do not connect accounts, execute inference, or pay.",
      "summary": "The agent retrieved documented free-quota candidates but did not establish a full match for no account, no card, tool calling and strict JSON. It retained the unresolved requirements instead of treating a free-plan label as proof.",
      "candidateLinks": [
        {
          "name": "Current LLM provider observations",
          "href": "/llm-providers"
        }
      ],
      "unresolvedRequirements": [
        "Account-free API access is not established.",
        "No credit card requirement is not established.",
        "Tool calling for a specific model is unassessed.",
        "Strict JSON output for a specific model is unassessed.",
        "Exact available free quota and runtime access are not tested."
      ],
      "steps": [
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 1,
            "method": "tools/list",
            "params": {}
          },
          "httpStatus": 200,
          "responseProjection": {
            "toolNames": [
              "search_llm_providers",
              "search_discovered_services",
              "get_service_evidence",
              "recommend_services",
              "get_benchmark_suite",
              "plan_benchmark",
              "search_services",
              "get_service",
              "compare_services",
              "get_connection_spec",
              "get_connection_handoff",
              "get_task_options"
            ]
          },
          "responseProjectionNote": "Tool names only; schemas and transport headers omitted.",
          "rawBodySha256": "1abc63a272a50b8e80b0651d914c219788538ee32bc1c7ce100d794188384f63"
        },
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 2,
            "method": "tools/call",
            "params": {
              "name": "search_llm_providers",
              "arguments": {
                "planType": "free-tier",
                "limit": 50,
                "offset": 0
              }
            }
          },
          "httpStatus": 200,
          "responseProjection": {
            "schemaVersion": 1,
            "generatedAt": "2026-10-15T17:32:42.968Z",
            "coverage": {
              "discoveredProviders": 29,
              "documentationChecked": 6,
              "heldProviders": 23,
              "modelRecords": 0,
              "recentDocumentationChecked": 6
            },
            "appliedFilters": {
              "query": "",
              "planType": "free-tier",
              "limit": 50,
              "offset": 0
            },
            "total": 4,
            "returned": 4,
            "nextOffset": null,
            "providers": [
              {
                "id": "cloudflare-workers-ai",
                "name": "Cloudflare Workers AI",
                "website": "https://ai.cloudflare.com/",
                "kind": "llm-provider",
                "verification": "documentation-checked",
                "planType": "free-tier",
                "summary": "A daily free compute allocation is documented. Model costs vary; some models require a paid billing method.",
                "quota": "10,000 Neurons per day across eligible models; this is compute usage, not 10,000 requests.",
                "conditions": "Paid Workers usage above the allocation is charged. Some models require Workers Paid or prepaid credits.",
                "source": {
                  "url": "https://developers.cloudflare.com/workers-ai/platform/pricing/",
                  "checkedAt": "2026-10-15T17:32:41.868Z",
                  "sha256": "82c16546f479bf5001ae41f3d902f09f096ab0d42e9e91b51bee00d83bcd1de7",
                  "passages": [
                    "e allocation allows anyone to use a total of 10,000 Neurons per day at no charge . To use more than 10,000 Neurons per day, you need to sign up for the Worke",
                    "Neurons per day $0.011 / 1,000 Neurons Note Some models require a paid billing method. This applies to @cf/moonshotai/kimi-k2.6 , @cf/moonshotai/kimi-k2.7-code , @cf/zai-org/g"
                  ]
                },
                "accountEligibility": "unknown",
                "creditCardRequired": "unknown",
                "modelCapabilities": "unassessed",
                "liveAvailability": "not-tested",
                "models": [],
                "observedPlanType": "free-tier",
                "evidenceState": "recent"
              },
              {
                "id": "google-gemini",
                "name": "Google Gemini",
                "website": "https://ai.google.dev/",
                "kind": "llm-provider",
                "verification": "documentation-checked",
                "planType": "free-tier",
                "summary": "The pricing table includes free-tier access for selected models and operations. It does not make every Gemini model free.",
                "quota": "Model and project limits apply. Exact remaining quota requires checking the provider account.",
                "conditions": "Free-tier pricing rows disclose use of data to improve products. Check the provider terms, model row and regional eligibility before sending data.",
                "source": {
                  "url": "https://ai.google.dev/gemini-api/docs/pricing",
                  "checkedAt": "2026-10-15T17:32:42.855Z",
                  "sha256": "caaed84a4667a28ab554cf91fe2746336fe5f8f56365e42a178a659f5ac77014",
                  "passages": [
                    "Note: Gemini 4 Argon is not available on the Free tier or on the Google AI Pro plan. Standard Free Tier Paid Tier, per 1M tokens in USD Input pr",
                    "Gemini Developer API pricing Start building free of charge with generous limits, then scale up with prepaid and pay-as-you-go pricing for your produ",
                    "Google AI Studio access check_circle Content used to improve our products * Get started for Free Paid For production applications that require higher volumes and a"
                  ]
                },
                "accountEligibility": "unknown",
                "creditCardRequired": "unknown",
                "modelCapabilities": "unassessed",
                "liveAvailability": "not-tested",
                "models": [],
                "observedPlanType": "free-tier",
                "evidenceState": "recent"
              },
              {
                "id": "groq",
                "name": "Groq",
                "website": "https://groq.com/",
                "kind": "llm-provider",
                "verification": "documentation-checked",
                "planType": "free-tier",
                "summary": "A free plan is documented with separate per-model request and token limits.",
                "quota": "Limits vary by model and organization. Request limits and token limits can be reached independently.",
                "conditions": "The current account limits are authoritative. Reaching a limit returns HTTP 429; an upgrade has separate terms.",
                "source": {
                  "url": "https://console.groq.com/docs/rate-limits",
                  "checkedAt": "2026-10-15T17:32:42.316Z",
                  "sha256": "70df933d5a7b33368944dd8265cc33daebd4d4f1e4ef127d82585cf1dcdac735",
                  "passages": [
                    "r select workloads and enterprise use cases. Free Plan Limits Developer Plan Limits MODEL ID RPM RPD TPM TPD ASH ASD canopylabs/orpheus-arabic-saudi 10",
                    "s your rate limits. Rate limits apply at the organization level, not individual users. You can hit any limit type depending on which threshold you reach",
                    "en you exceed rate limits, our API returns a 429 Too Many Requests HTTP status code. Note : retry-after is only set if you hit the rate limit and status cod"
                  ]
                },
                "accountEligibility": "unknown",
                "creditCardRequired": "unknown",
                "modelCapabilities": "unassessed",
                "liveAvailability": "not-tested",
                "models": [],
                "observedPlanType": "free-tier",
                "evidenceState": "recent"
              },
              {
                "id": "openrouter",
                "name": "OpenRouter",
                "website": "https://openrouter.ai/",
                "kind": "llm-provider",
                "verification": "documentation-checked",
                "planType": "free-tier",
                "summary": "Free model variants are documented separately from paid models and paid credit purchases.",
                "quota": "Free models have low rate limits; the purchased-credit tier can change the allowance. Check the current limits page.",
                "conditions": "Provider privacy settings and model availability apply. Credit purchases and automatic top-ups are separate paid actions.",
                "source": {
                  "url": "https://openrouter.ai/docs/faq",
                  "checkedAt": "2026-10-15T17:32:42.949Z",
                  "sha256": "901f0acbaa6bfc8a48990f2b64d3ee50050330a9dc4aca3108bef4b90d3d31f4",
                  "passages": [
                    "on](/docs/api_reference/authentication). For free models, rate limits are determined by the credits that you have purchased. If you have purchased",
                    ") available on OpenRouter. These models have low rate limits ({FREE_MODEL_NO_CREDITS_RPD} requests per day total) and are usually not suitable for pro",
                    "RPD} requests per day total) and are usually not suitable for production use. If you have purchased at least {FREE_MODEL_CREDITS_THRESHOLD} credits, the free models w"
                  ]
                },
                "accountEligibility": "unknown",
                "creditCardRequired": "unknown",
                "modelCapabilities": "unassessed",
                "liveAvailability": "not-tested",
                "models": [],
                "observedPlanType": "free-tier",
                "evidenceState": "recent"
              }
            ],
            "policy": {
              "providerInferenceCalls": 0,
              "accountConnections": 0,
              "payments": 0,
              "modelsImported": 0,
              "evidenceMaxAgeDays": 7
            },
            "limitations": [
              "Documentation observations are not live API tests, verified account access or a price guarantee.",
              "After seven days, planType becomes unknown and cannot match a free-plan filter; observedPlanType preserves the dated observation.",
              "Provider identity and model identity are separate. No third-party model counts, model capabilities, keys, rankings or free-plan claims were imported.",
              "Account eligibility, card requirements, tool calling, JSON mode, exact remaining quota and production suitability require separate checks. Search is literal metadata matching, not a suitability assessment."
            ]
          },
          "responseProjectionNote": "Public structuredContent only; transport headers omitted.",
          "rawBodySha256": "406ec953fcff5d053a97323d1592e0373efa40c83d203fb3fbf348467619a033"
        },
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 3,
            "method": "tools/call",
            "params": {
              "name": "search_llm_providers",
              "arguments": {
                "planType": "recurring-credit",
                "limit": 50,
                "offset": 0
              }
            }
          },
          "httpStatus": 200,
          "responseProjection": {
            "schemaVersion": 1,
            "generatedAt": "2026-10-15T17:32:42.968Z",
            "coverage": {
              "discoveredProviders": 29,
              "documentationChecked": 6,
              "heldProviders": 23,
              "modelRecords": 0,
              "recentDocumentationChecked": 6
            },
            "appliedFilters": {
              "query": "",
              "planType": "recurring-credit",
              "limit": 50,
              "offset": 0
            },
            "total": 0,
            "returned": 0,
            "nextOffset": null,
            "providers": [],
            "policy": {
              "providerInferenceCalls": 0,
              "accountConnections": 0,
              "payments": 0,
              "modelsImported": 0,
              "evidenceMaxAgeDays": 7
            },
            "limitations": [
              "Documentation observations are not live API tests, verified account access or a price guarantee.",
              "After seven days, planType becomes unknown and cannot match a free-plan filter; observedPlanType preserves the dated observation.",
              "Provider identity and model identity are separate. No third-party model counts, model capabilities, keys, rankings or free-plan claims were imported.",
              "Account eligibility, card requirements, tool calling, JSON mode, exact remaining quota and production suitability require separate checks. Search is literal metadata matching, not a suitability assessment."
            ]
          },
          "responseProjectionNote": "Public structuredContent only; transport headers omitted.",
          "rawBodySha256": "bf9e5fd1e446fc952eb89016eaa848cd089b575a06d464be6ec806ddd40359aa"
        }
      ],
      "policy": {
        "providerInferenceCalls": 0,
        "providerToolCalls": 0,
        "documentUploads": 0,
        "accountConnections": 0,
        "payments": 0
      },
      "scope": "Historical six-provider baseline. The directory has since expanded; these observed counts are dated, not current availability."
    },
    {
      "id": "web-research",
      "title": "Inspect an MCP web-research candidate",
      "outcome": "Candidate found; connection evidence conflicts",
      "testedAt": "2026-10-15T17:59:04.574Z",
      "originalRequest": "Find a web research service that can return source links, has an MCP connection and can be tried without paying. Do not connect any account, run provider tools or pay. Show what is documented and what is unverified.",
      "summary": "The agent found Exa as a documentation-based candidate and checked its connection specification and evidence. The evidence records an authentication failure, so the agent did not claim that a keyless connection or a research task had succeeded.",
      "candidateLinks": [
        {
          "name": "Exa service profile",
          "href": "/services/exa"
        },
        {
          "name": "Exa dated evidence",
          "href": "/evidence/exa"
        }
      ],
      "unresolvedRequirements": [
        "Exact current keyless quota and eligibility for this user or IP",
        "Source URL output shape and usefulness of returned sources",
        "Successful MCP connection in the intended client",
        "Whether documented keyless search is currently reachable despite the recorded authentication failure",
        "Actual task quality, relevance and answer accuracy",
        "Any account-specific eligibility or remaining credits"
      ],
      "steps": [
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 1,
            "method": "tools/list"
          },
          "httpStatus": 200,
          "responseProjection": {
            "toolNames": [
              "search_llm_providers",
              "search_discovered_services",
              "get_service_evidence",
              "recommend_services",
              "get_benchmark_suite",
              "plan_benchmark",
              "search_services",
              "get_service",
              "compare_services",
              "get_connection_spec",
              "get_connection_handoff",
              "get_task_options"
            ]
          },
          "responseProjectionNote": "Tool names only; schemas and transport headers omitted.",
          "rawBodySha256": "1abc63a272a50b8e80b0651d914c219788538ee32bc1c7ce100d794188384f63"
        },
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 2,
            "method": "tools/call",
            "params": {
              "name": "search_services",
              "arguments": {
                "requestJson": "{\"query\":\"web research\",\"category\":\"search\",\"protocol\":\"MCP\",\"limit\":5,\"view\":\"full\",\"originalRequest\":\"Find a web research service that can return source links, has an MCP connection and can be tried without paying. Do not connect any account, run provider tools or pay. Show what is documented and what is unverified.\",\"requirements\":[\"Returns source links\",\"Has an MCP connection\",\"Can be tried without paying\",\"Show documented facts and unverified requirements\"],\"executionPolicy\":{\"providerCalls\":false,\"accountConnections\":false,\"payments\":false}}"
              }
            }
          },
          "httpStatus": 200,
          "responseProjection": {
            "services": [
              {
                "id": "svc-exa",
                "slug": "exa",
                "name": "Exa",
                "provider": "Exa",
                "tagline": "Find the web content your agent needs.",
                "description": "Search for relevant web sources, retrieve their content and support multi-step research using Exa's hosted MCP server.",
                "website": "https://exa.ai",
                "docsUrl": "https://github.com/exa-labs/exa-mcp-server",
                "category": "search",
                "tags": [
                  "Web search",
                  "Research",
                  "Content retrieval"
                ],
                "capabilities": [
                  "Search web sources",
                  "Fetch page content",
                  "Support multi-step research"
                ],
                "protocols": [
                  "MCP",
                  "REST"
                ],
                "auth": "oauth",
                "pricing": {
                  "model": "usage-based",
                  "summary": "Paid API usage is charged by operation and selected features. Starter accounts receive $10 in monthly credits plus a $10 onboarding bonus, without a payment method. Keyless MCP is separately rate limited.",
                  "url": "https://exa.ai/docs/get-started/exa-mcp",
                  "checkedAt": "2026-10-11T07:44:40Z"
                },
                "endpoint": "https://mcp.exa.ai/mcp",
                "registryName": "ai.exa/exa",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.exa%2Fexa/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-10T07:21:39.725Z",
                "verification": "listed",
                "notes": "Provider documentation describes limited keyless search, OAuth sign-in and API-key authentication. Paid agent runs require authentication. Relay has not tested these modes.",
                "featured": true,
                "color": "#526CF5"
              },
              {
                "id": "svc-linkup",
                "slug": "linkup",
                "name": "Linkup",
                "provider": "Linkup",
                "tagline": "Find source-backed web answers.",
                "description": "Retrieve current web information through Linkup's hosted MCP server for source-led research tasks.",
                "website": "https://linkup.so",
                "docsUrl": "https://github.com/LinkupPlatform/linkup-mcp-server",
                "category": "search",
                "tags": [
                  "Web search",
                  "Sources",
                  "Research"
                ],
                "capabilities": [
                  "Search current web information",
                  "Retrieve source-backed answers"
                ],
                "protocols": [
                  "MCP"
                ],
                "auth": "api-key",
                "pricing": {
                  "model": "usage-based",
                  "summary": "Pay-as-you-go pricing varies across search, fetch and research requests. An introductory free allowance is advertised.",
                  "url": "https://www.linkup.so/pricing",
                  "checkedAt": "2026-10-10T07:24:56.136586+00:00"
                },
                "endpoint": "https://mcp.linkup.so",
                "registryName": "so.linkup.mcp/linkup-mcp-server",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/so.linkup.mcp%2Flinkup-mcp-server/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-10T07:21:39.788Z",
                "verification": "listed",
                "notes": "The registry lists the server origin. Follow the provider documentation for the current connection path and authentication. Relay has not executed tools.",
                "featured": false,
                "color": "#439786"
              },
              {
                "id": "svc-parallel-search",
                "slug": "parallel-search",
                "name": "Parallel Search",
                "provider": "Parallel",
                "tagline": "Search the web from agent workflows.",
                "description": "Use Parallel's dedicated search MCP server to find web information. This catalogue entry covers search, separately from its research task service.",
                "website": "https://parallel.ai",
                "docsUrl": "https://github.com/parallel-web/search-mcp",
                "category": "search",
                "tags": [
                  "Web search",
                  "Agent research"
                ],
                "capabilities": [
                  "Search web information",
                  "Support research workflows"
                ],
                "protocols": [
                  "MCP"
                ],
                "auth": "unknown",
                "pricing": {
                  "model": "freemium",
                  "summary": "The provider documents limited anonymous Search MCP access. Account-backed Search API usage is billed by request mode and result allowance.",
                  "url": "https://docs.parallel.ai/getting-started/pricing",
                  "checkedAt": "2026-10-11T00:35:41.488887+00:00"
                },
                "endpoint": "https://search-mcp.parallel.ai/mcp",
                "registryName": "ai.parallel/search-mcp",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.parallel%2Fsearch-mcp/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-10T07:21:39.973Z",
                "verification": "listed",
                "notes": "Current provider documentation uses https://search.parallel.ai/mcp for anonymous access and API-key upgrades, with /mcp-oauth for OAuth. The captured Registry address differs; authentication at that listed address is unconfirmed. Follow the current provider setup guide.",
                "featured": false,
                "color": "#5B77B7"
              },
              {
                "id": "svc-perplexity",
                "slug": "perplexity",
                "name": "Perplexity",
                "provider": "Perplexity",
                "tagline": "Search, ask and research with sources.",
                "description": "Use Perplexity's hosted MCP tools for web search, questions and research. Tool calls are billed to the connected API organization.",
                "website": "https://www.perplexity.ai",
                "docsUrl": "https://docs.perplexity.ai/docs/getting-started/integrations/mcp-server",
                "category": "search",
                "tags": [
                  "Web search",
                  "Deep research",
                  "Answers"
                ],
                "capabilities": [
                  "Search the web",
                  "Ask research questions",
                  "Run research tasks"
                ],
                "protocols": [
                  "MCP"
                ],
                "auth": "oauth",
                "pricing": {
                  "model": "usage-based",
                  "summary": "API charges vary by tool, request and model token usage. Calls are billed to the connected API organization.",
                  "url": "https://docs.perplexity.ai/docs/getting-started/pricing",
                  "checkedAt": "2026-10-10T07:24:56.136586+00:00"
                },
                "endpoint": "https://api.perplexity.ai/mcp",
                "registryName": null,
                "sourceUrl": "https://docs.perplexity.ai/docs/getting-started/integrations/mcp-server",
                "sourceType": "provider",
                "sourceCheckedAt": "2026-10-10T07:20:09.015484+00:00",
                "verification": "documented",
                "notes": "OAuth and bearer API keys are documented. Billing belongs to the connected organization. Relay has not called these tools.",
                "featured": false,
                "color": "#4F919A"
              },
              {
                "id": "svc-tavily",
                "slug": "tavily",
                "name": "Tavily",
                "provider": "Tavily",
                "tagline": "Web search built for research workflows.",
                "description": "Search the live web and extract content from selected pages. The hosted MCP integration supports both OAuth sign-in and API keys.",
                "website": "https://www.tavily.com",
                "docsUrl": "https://docs.tavily.com/documentation/mcp",
                "category": "search",
                "tags": [
                  "Web search",
                  "Sources",
                  "Extraction"
                ],
                "capabilities": [
                  "Search the web",
                  "Extract page content",
                  "Filter by domain"
                ],
                "protocols": [
                  "MCP",
                  "REST"
                ],
                "auth": "oauth",
                "pricing": {
                  "model": "freemium",
                  "summary": "Account usage consumes credits; paid monthly plans and pay-as-you-go are available. Accounts receive 1,000 free credits per month without a card. Keyless search/extract have a separate free allowance.",
                  "url": "https://docs.tavily.com/documentation/keyless",
                  "checkedAt": "2026-10-11T07:44:40Z"
                },
                "endpoint": "https://mcp.tavily.com/mcp/",
                "registryName": null,
                "sourceUrl": "https://docs.tavily.com/documentation/mcp",
                "sourceType": "provider",
                "sourceCheckedAt": "2026-10-10T07:20:09.015484+00:00",
                "verification": "documented",
                "notes": "OAuth and API-key access are documented. Keyless access has separate limits. Relay has not executed searches.",
                "featured": true,
                "color": "#D5A354"
              }
            ],
            "total": 5,
            "returned": 5,
            "generatedAt": "2026-10-14T20:27:05.516Z",
            "view": "full",
            "search": {
              "originalQuery": "web research",
              "effectiveQuery": "web research",
              "mode": "keywords",
              "terms": [
                "web",
                "research"
              ],
              "appliedFilters": {
                "category": "search",
                "protocol": "MCP",
                "pricing": null
              },
              "reasonCodes": [],
              "warnings": [
                "The caller separated service-search terms from the preserved original request. This decomposition and all free-text requirements are unassessed. Results are metadata candidates, not verified matches for the whole request."
              ],
              "suggestions": [
                "Use recommend_services with explicit task, protocol, account and payment filters for reviewed connection options. Keep remaining requirements for evidence review. Prohibiting payment now does not mean only free services may be listed."
              ],
              "discovery": {
                "originalRequest": "Find a web research service that can return source links, has an MCP connection and can be tried without paying. Do not connect any account, run provider tools or pay. Show what is documented and what is unverified.",
                "requirements": [
                  "Returns source links",
                  "Has an MCP connection",
                  "Can be tried without paying",
                  "Show documented facts and unverified requirements"
                ],
                "executionPolicy": {
                  "providerCalls": false,
                  "accountConnections": false,
                  "payments": false
                },
                "decomposition": "caller_supplied",
                "assessment": "unassessed",
                "resultsAre": "metadata_candidates"
              }
            }
          },
          "responseProjectionNote": "Public structuredContent only; transport headers omitted.",
          "rawBodySha256": "e8b2ea734012ba53a077a6a72cbcdbe147d7ffe5bf06dab02c82dea4b50c0ebc"
        },
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 3,
            "method": "tools/call",
            "params": {
              "name": "get_connection_spec",
              "arguments": {
                "slug": "exa"
              }
            }
          },
          "httpStatus": 200,
          "responseProjection": {
            "connection": {
              "schemaVersion": "1",
              "service": {
                "slug": "exa",
                "name": "Exa"
              },
              "declaredInterfaces": [
                "MCP",
                "REST"
              ],
              "endpoint": "https://mcp.exa.ai/mcp",
              "deployment": {
                "kind": "remote",
                "transport": "streamable-http",
                "evidence": {
                  "url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.exa%2Fexa/versions/latest",
                  "checkedAt": "2026-10-10T07:21:39.725Z"
                }
              },
              "packages": [],
              "authentication": {
                "method": "oauth",
                "requirements": [
                  "confirm-whether-oauth-is-needed-for-selected-connection",
                  "confirm-client-support-if-using-oauth"
                ],
                "notes": "Provider documentation describes limited keyless search, OAuth sign-in and API-key authentication. Paid agent runs require authentication. Relay has not tested these modes.",
                "evidence": {
                  "url": "https://exa.ai/docs/get-started/exa-mcp",
                  "checkedAt": "2026-10-11T00:35:41.488887+00:00"
                }
              },
              "setupGuide": {
                "slug": "exa",
                "reviewedAt": "2026-10-11T07:44:40Z",
                "sources": [
                  {
                    "id": "exa-mcp",
                    "url": "https://exa.ai/docs/get-started/exa-mcp",
                    "title": "Exa MCP: access modes and tool availability",
                    "checkedAt": "2026-10-11T07:44:40Z"
                  },
                  {
                    "id": "exa-transport",
                    "url": "https://github.com/exa-labs/exa-mcp-server",
                    "title": "Exa: official MCP server configuration",
                    "checkedAt": "2026-10-11T07:44:40Z"
                  },
                  {
                    "id": "exa-search",
                    "url": "https://exa.ai/docs/reference/search",
                    "title": "Exa Search API reference",
                    "checkedAt": "2026-10-11T07:44:40Z"
                  },
                  {
                    "id": "exa-pricing",
                    "url": "https://exa.ai/pricing",
                    "title": "Exa API pricing",
                    "checkedAt": "2026-10-11T07:44:40Z"
                  }
                ],
                "options": [
                  {
                    "id": "keyless-mcp",
                    "label": "Keyless remote MCP search",
                    "protocol": "MCP",
                    "transport": "streamable-http",
                    "endpoint": "https://mcp.exa.ai/mcp",
                    "authentication": {
                      "method": "none",
                      "requirement": "optional",
                      "placement": "No credential is needed for this keyless search/fetch option.",
                      "sourceIds": [
                        "exa-mcp"
                      ]
                    },
                    "steps": [
                      {
                        "text": "Add the endpoint as a remote Streamable HTTP server in a compatible MCP client.",
                        "sourceIds": [
                          "exa-transport"
                        ]
                      },
                      {
                        "text": "Start with the documented keyless search and fetch tools. Agent runs require a separate authenticated access mode.",
                        "sourceIds": [
                          "exa-mcp"
                        ]
                      }
                    ],
                    "sourceIds": [
                      "exa-mcp",
                      "exa-transport"
                    ]
                  },
                  {
                    "id": "search-rest",
                    "label": "Account-based Search REST API",
                    "protocol": "REST",
                    "transport": "https",
                    "endpoint": "https://api.exa.ai/search",
                    "authentication": {
                      "method": "api-key",
                      "requirement": "required",
                      "placement": "Place the account API key in the x-api-key request header.",
                      "sourceIds": [
                        "exa-search"
                      ]
                    },
                    "steps": [
                      {
                        "text": "Obtain an API key from the Exa dashboard.",
                        "sourceIds": [
                          "exa-pricing"
                        ]
                      },
                      {
                        "text": "Configure an HTTPS POST with a JSON query field and the x-api-key header.",
                        "sourceIds": [
                          "exa-search"
                        ]
                      },
                      {
                        "text": "Choose the search mode and content features before use; their charges differ.",
                        "sourceIds": [
                          "exa-pricing"
                        ]
                      }
                    ],
                    "sourceIds": [
                      "exa-search",
                      "exa-pricing"
                    ]
                  }
                ],
                "pricing": {
                  "summary": "Paid API usage is charged by operation and selected features.",
                  "freeAccess": "Starter accounts receive $10 in monthly credits plus a $10 onboarding bonus, without a payment method. Keyless MCP is separately rate limited.",
                  "limits": [
                    "Starter lists 10 Search queries per second.",
                    "A numeric anonymous MCP quota was not confirmed in the reviewed MCP guide."
                  ],
                  "sourceIds": [
                    "exa-pricing",
                    "exa-mcp"
                  ]
                },
                "limitations": [
                  "Account plan quotas must not be treated as the anonymous MCP allowance.",
                  "Authenticated MCP using OAuth or x-api-key is documented for agent runs; the keyless option above does not enable them.",
                  "Documentation was reviewed; no connection or provider tool was executed."
                ]
              },
              "testing": {
                "connectionTestedByRelay": false,
                "taskTestedByRelay": false
              },
              "documentationUrl": "https://github.com/exa-labs/exa-mcp-server",
              "source": {
                "url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.exa%2Fexa/versions/latest",
                "type": "registry",
                "checkedAt": "2026-10-10T07:21:39.725Z",
                "verification": "listed"
              },
              "providerToolSchemas": null,
              "gaps": [
                "provider-tool-schemas-not-recorded",
                "live-availability-not-checked",
                "package-options-not-recorded"
              ],
              "nextSteps": [
                {
                  "action": "review-provider-documentation",
                  "url": "https://github.com/exa-labs/exa-mcp-server"
                },
                {
                  "action": "confirm-authentication-needs-before-client-setup",
                  "url": "https://github.com/exa-labs/exa-mcp-server"
                },
                {
                  "action": "check-current-provider-pricing",
                  "url": "https://exa.ai/docs/get-started/exa-mcp"
                },
                {
                  "action": "inspect-live-tool-schemas-with-your-mcp-client",
                  "url": "https://github.com/exa-labs/exa-mcp-server"
                }
              ]
            }
          },
          "responseProjectionNote": "Public structuredContent only; transport headers omitted.",
          "rawBodySha256": "c4366ad94d95b9dd3d77b63d784d952ffaad3c01f65939fc91db223cda455c3f"
        },
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 4,
            "method": "tools/call",
            "params": {
              "name": "get_service_evidence",
              "arguments": {
                "slug": "exa"
              }
            }
          },
          "httpStatus": 200,
          "responseProjection": {
            "schemaVersion": "1",
            "slug": "exa",
            "serviceName": "Exa",
            "available": true,
            "evidencePath": "/evidence/exa",
            "badgePath": "/badges/exa.svg",
            "source": {
              "status": "reviewed",
              "checkedAt": "2026-10-10T07:21:39.725Z",
              "scope": "Published catalogue metadata compared with ToolSkipper's captured source review; not a connection or task test.",
              "sources": [
                {
                  "url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.exa%2Fexa/versions/latest",
                  "title": "Official registry record"
                },
                {
                  "url": "https://github.com/exa-labs/exa-mcp-server",
                  "title": "Provider documentation"
                }
              ]
            },
            "connection": {
              "status": "not_observed",
              "observationId": "relay-internal-20261012-exa-01",
              "observedAt": "2026-10-12T20:27:51.549Z",
              "outcome": "connection_required"
            },
            "task": {
              "status": "not_reviewed",
              "observationId": null,
              "reviewedAt": null,
              "qualityVerified": false,
              "independentReview": false
            },
            "latestAttempt": {
              "id": "relay-internal-20261012-exa-01",
              "provenance": "internal_live",
              "observedAt": "2026-10-12T20:27:51.549Z",
              "adapterEndpoint": "https://mcp.exa.ai/mcp",
              "transport": "MCP",
              "task": "web_search",
              "input": "Find the official Model Context Protocol Registry aggregator documentation and identify its metadata license.",
              "status": "connection_required",
              "reasonCode": "PROVIDER_AUTH_REQUIRED",
              "durationMs": 16,
              "connectionObserved": false,
              "responseShapeChecked": false,
              "outputExcerpt": null,
              "sourceUrls": [
                "https://exa.ai/docs/get-started/exa-mcp"
              ],
              "cost": {
                "relayChargeUsd": 0,
                "paymentSentUsd": 0,
                "providerCostUsd": null
              },
              "review": null,
              "fresh": true,
              "expiresAt": "2026-11-11T20:27:51.549Z",
              "independentReview": false,
              "qualityVerified": false
            },
            "observations": [
              {
                "id": "relay-internal-20261012-exa-01",
                "provenance": "internal_live",
                "observedAt": "2026-10-12T20:27:51.549Z",
                "adapterEndpoint": "https://mcp.exa.ai/mcp",
                "transport": "MCP",
                "task": "web_search",
                "input": "Find the official Model Context Protocol Registry aggregator documentation and identify its metadata license.",
                "status": "connection_required",
                "reasonCode": "PROVIDER_AUTH_REQUIRED",
                "durationMs": 16,
                "connectionObserved": false,
                "responseShapeChecked": false,
                "outputExcerpt": null,
                "sourceUrls": [
                  "https://exa.ai/docs/get-started/exa-mcp"
                ],
                "cost": {
                  "relayChargeUsd": 0,
                  "paymentSentUsd": 0,
                  "providerCostUsd": null
                },
                "review": null,
                "fresh": true,
                "expiresAt": "2026-11-11T20:27:51.549Z",
                "independentReview": false,
                "qualityVerified": false
              }
            ],
            "limitations": [
              "A source review is not a successful connection, security certification or endorsement.",
              "Observations are curated internal live attempts on public inputs, not independent user evidence. Private benchmark records are never published here.",
              "Connection and task claims expire 30 days after an observation and disappear when the listing no longer matches the reviewed source snapshot.",
              "Each observation applies only to its stated task, input, transport and adapter endpoint; it does not establish other capabilities or current availability.",
              "A failed attempt's duration is time to that failure, not a latency benchmark. No cross-provider or cross-language quality ranking is established.",
              "No payment was sent for these observations. Provider billed cost was not measured and remains unknown.",
              "An internal task review records explicit rubric judgments; it is not independent quality verification. External self-reports do not grant a badge."
            ]
          },
          "responseProjectionNote": "Public structuredContent only; transport headers omitted.",
          "rawBodySha256": "2c8e939aee94494a58224b4bf61490b74d3df2a266cfb2474a758f1e4a0f54a4"
        }
      ],
      "policy": {
        "providerInferenceCalls": 0,
        "providerToolCalls": 0,
        "documentUploads": 0,
        "accountConnections": 0,
        "payments": 0
      },
      "scope": "Live public metadata and setup evidence only; source pages and provider tool outputs were not independently tested in this scenario."
    },
    {
      "id": "pdf-tables",
      "title": "Find an MCP candidate for PDF tables",
      "outcome": "Documentation candidates found",
      "testedAt": "2026-10-15T17:58:21.000Z",
      "originalRequest": "Find an MCP service for extracting tables from PDF documents. I need structured output. Do not upload a document, connect accounts, run a provider tool or pay. Show the source and explain what remains untested.",
      "summary": "The full keyword query returned no match. The agent explicitly broadened metadata retrieval to PDF while keeping table extraction, structured output and all action restrictions in the original request. It inspected Reducto and Docspeed as candidates; no document was uploaded or parsed.",
      "candidateLinks": [
        {
          "name": "Reducto service profile",
          "href": "/services/reducto"
        },
        {
          "name": "Docspeed service profile",
          "href": "/services/docspeed"
        }
      ],
      "unresolvedRequirements": [
        "Actual PDF table extraction and fidelity",
        "Exact table structured-output schema, cell order, merged cells and validation",
        "Live provider tool schemas and availability",
        "Authentication/account eligibility and applicable remaining quota",
        "Performance and OCR accuracy on scanned or complex PDFs",
        "Current execution price and any credit eligibility"
      ],
      "steps": [
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 1,
            "method": "tools/list",
            "params": {}
          },
          "httpStatus": 200,
          "responseProjection": {
            "toolNames": [
              "search_llm_providers",
              "search_discovered_services",
              "get_service_evidence",
              "recommend_services",
              "get_benchmark_suite",
              "plan_benchmark",
              "search_services",
              "get_service",
              "compare_services",
              "get_connection_spec",
              "get_connection_handoff",
              "get_task_options"
            ]
          },
          "responseProjectionNote": "Tool names only; schemas and transport headers omitted.",
          "rawBodySha256": "1abc63a272a50b8e80b0651d914c219788538ee32bc1c7ce100d794188384f63"
        },
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 2,
            "method": "tools/call",
            "params": {
              "name": "search_services",
              "arguments": {
                "requestJson": "{\"query\":\"PDF tables structured output\",\"protocol\":\"MCP\",\"originalRequest\":\"Find an MCP service for extracting tables from PDF documents. I need structured output. Do not upload a document, connect accounts, run a provider tool or pay. Show the source and explain what remains untested.\",\"requirements\":[\"Extract tables from PDF documents\",\"Return structured output\",\"Show the source\",\"Explain what remains untested\",\"Do not upload a document\"],\"executionPolicy\":{\"providerCalls\":false,\"accountConnections\":false,\"payments\":false},\"view\":\"full\",\"limit\":10}"
              }
            }
          },
          "httpStatus": 200,
          "responseProjection": {
            "services": [],
            "total": 0,
            "returned": 0,
            "generatedAt": "2026-10-14T20:27:05.516Z",
            "view": "full",
            "search": {
              "originalQuery": "PDF tables structured output",
              "effectiveQuery": "PDF tables structured output",
              "mode": "keywords",
              "terms": [
                "pdf",
                "tables",
                "structured",
                "output"
              ],
              "appliedFilters": {
                "category": null,
                "protocol": "MCP",
                "pricing": null
              },
              "reasonCodes": [
                "NO_CATALOGUE_MATCH"
              ],
              "warnings": [
                "The caller separated service-search terms from the preserved original request. This decomposition and all free-text requirements are unassessed. Results are metadata candidates, not verified matches for the whole request."
              ],
              "suggestions": [
                "Use recommend_services with explicit task, protocol, account and payment filters for reviewed connection options. Keep remaining requirements for evidence review. Prohibiting payment now does not mean only free services may be listed.",
                "Check the task wording and available catalogue evidence; every meaningful term and selected filter remains required.",
                "An agent can supply English task wording with the original query retained. Preserve all constraints in that wording.",
                "No matching listing was found in the current published catalogue. This does not establish that no suitable provider exists elsewhere."
              ],
              "discovery": {
                "originalRequest": "Find an MCP service for extracting tables from PDF documents. I need structured output. Do not upload a document, connect accounts, run a provider tool or pay. Show the source and explain what remains untested.",
                "requirements": [
                  "Extract tables from PDF documents",
                  "Return structured output",
                  "Show the source",
                  "Explain what remains untested",
                  "Do not upload a document"
                ],
                "executionPolicy": {
                  "providerCalls": false,
                  "accountConnections": false,
                  "payments": false
                },
                "decomposition": "caller_supplied",
                "assessment": "unassessed",
                "resultsAre": "metadata_candidates"
              }
            }
          },
          "responseProjectionNote": "Public structuredContent only; transport headers omitted.",
          "rawBodySha256": "e66543a6a572b956e34373766c039c8dd182f6e8d74368134e4d1eb4cddaa295"
        },
        {
          "request": {
            "jsonrpc": "2.0",
            "id": 3,
            "method": "tools/call",
            "params": {
              "name": "search_services",
              "arguments": {
                "requestJson": "{\"query\":\"PDF\",\"protocol\":\"MCP\",\"originalRequest\":\"Find an MCP service for extracting tables from PDF documents. I need structured output. Do not upload a document, connect accounts, run a provider tool or pay. Show the source and explain what remains untested.\",\"requirements\":[\"Extract tables from PDF documents\",\"Return structured output\",\"Show the source\",\"Explain what remains untested\",\"Do not upload a document\"],\"executionPolicy\":{\"providerCalls\":false,\"accountConnections\":false,\"payments\":false},\"view\":\"full\",\"limit\":10}"
              }
            }
          },
          "httpStatus": 200,
          "responseProjection": {
            "services": [
              {
                "id": "svc-aginera",
                "slug": "aginera",
                "name": "Aginera",
                "provider": "Aginera",
                "tagline": "Create and review construction takeoffs and CAD exports from drawings.",
                "description": "Construction-document tooling for takeoffs, measured routes, schedules and PDF-to-CAD conversion. Hosted MCP uses OAuth with account and organization permissions. A partner REST API is documented. Provider measurement and conversion quality remain untested.",
                "website": "https://aginera.ai/",
                "docsUrl": "https://aginera.ai/agents",
                "category": "documents",
                "tags": [
                  "construction",
                  "drawings",
                  "cad",
                  "takeoffs"
                ],
                "capabilities": [
                  "Read projects and takeoffs",
                  "Run drawing takeoffs",
                  "Convert PDF drawings to CAD",
                  "Export takeoff results"
                ],
                "protocols": [
                  "MCP",
                  "REST"
                ],
                "auth": "oauth",
                "pricing": {
                  "model": "freemium",
                  "summary": "Connecting and reading existing takeoffs is free. New takeoffs consume credits. DXF is free with free-account watermark; clean DWG is $2 per drawing.",
                  "url": "https://aginera.ai/agents",
                  "checkedAt": "2026-10-14T18:49:28.020Z"
                },
                "endpoint": "https://mcp.aginera.ai/mcp",
                "registryName": "ai.aginera/preconstruction",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.aginera%2Fpreconstruction/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-14T18:49:28.020Z",
                "verification": "documented",
                "notes": "Anonymous initialize returned 401. No account connected, drawings uploaded, takeoff run or CAD conversion requested. New takeoffs and clean DWG exports may charge credits or money. Upcoming estimate features are not listed as current.",
                "featured": false,
                "color": "#b8d6ce"
              },
              {
                "id": "svc-canvora",
                "slug": "canvora",
                "name": "Canvora",
                "provider": "Canvora",
                "tagline": "Turn briefs and source documents into visuals, slides and downloadable decks.",
                "description": "MCP tooling for design briefs, visuals, slide decks, brand assets and exports. Hosted MCP uses OAuth; the separately documented REST interface uses X-API-Key. Generation requires a confirmation step and consumes credits.",
                "website": "https://canvora.ai/",
                "docsUrl": "https://canvora.ai/for-agents",
                "category": "documents",
                "tags": [
                  "slides",
                  "presentations",
                  "pptx",
                  "visuals"
                ],
                "capabilities": [
                  "Prepare design briefs",
                  "Generate visuals and slide decks",
                  "Export PDF and PPTX",
                  "Manage brand assets"
                ],
                "protocols": [
                  "MCP",
                  "REST"
                ],
                "auth": "oauth",
                "pricing": {
                  "model": "freemium",
                  "summary": "Free plan includes MCP/API access. Generation costs 10 credits per visual or 15 per slide. Campaign pack: $10 for 450 credits, expires after 60 days.",
                  "url": "https://canvora.ai/for-agents",
                  "checkedAt": "2026-10-14T18:49:30.427Z"
                },
                "endpoint": "https://api.canvora.ai/mcp",
                "registryName": "ai.canvora/canvora",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.canvora%2Fcanvora/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-14T18:49:30.427Z",
                "verification": "documented",
                "notes": "Anonymous initialize returned 401. No account connected, document uploaded, generation confirmed or credits spent. Tools can change assets and consume allowance; exports and localization capabilities are provider-documented, not task-tested.",
                "featured": false,
                "color": "#b8d6ce"
              },
              {
                "id": "svc-docspeed",
                "slug": "docspeed",
                "name": "Docspeed",
                "provider": "Docspeed",
                "tagline": "Extract fields, ask cited questions and compare PDF or image documents through MCP and REST.",
                "description": "Docspeed documents agent tools for extracting fields and tables, asking document questions and comparing evidence in PDFs or images. Access uses a provider account and API key in the reviewed setup. Uploaded documents are sent to Docspeed for processing; returned values need checking against the original.",
                "website": "https://api.docspeed.ai/agent-tools/",
                "docsUrl": "https://api.docspeed.ai/agent-tools/",
                "category": "documents",
                "tags": [
                  "pdf",
                  "document extraction",
                  "mcp",
                  "rest"
                ],
                "capabilities": [
                  "Extract document fields and tables",
                  "Ask questions with source evidence",
                  "Compare document evidence",
                  "Upload PDF or image documents through REST"
                ],
                "protocols": [
                  "MCP",
                  "REST"
                ],
                "auth": "api-key",
                "pricing": {
                  "model": "usage-based",
                  "summary": "Direct new accounts are advertised with 10 API credits. Processing uses account balance; the provider currently says paid top-ups are unavailable. Check current credit rules before use.",
                  "url": "https://api.docspeed.ai/agent-tools/",
                  "checkedAt": "2026-10-14T18:49:36.203Z"
                },
                "endpoint": "https://api.docspeed.ai/mcp/",
                "registryName": "ai.docspeed/docspeed",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.docspeed%2Fdocspeed/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-14T18:49:36.203Z",
                "verification": "documented",
                "notes": "Source reviewed 14 Oct 2026. Setup documents API-key access and the matching hosted MCP endpoint. Registry version is 0.2.0 while the page still references 0.1.0. No client installation, file upload, account connection or extraction test was performed.",
                "featured": false,
                "color": "#b8d6ce"
              },
              {
                "id": "svc-extend",
                "slug": "extend",
                "name": "Extend",
                "provider": "Extend",
                "tagline": "Process documents, extract structured fields and manage document workflows through MCP.",
                "description": "Extend documents a hosted MCP connection for parsing, extracting, classifying and splitting documents, editing PDF forms and managing workflows. OAuth grants select workspaces and Test or Production environments. The tool surface includes changes, publishing and deletion operations.",
                "website": "https://www.extend.ai/",
                "docsUrl": "https://docs.extend.ai/mcp",
                "category": "documents",
                "tags": [
                  "document processing",
                  "extraction",
                  "pdf",
                  "mcp"
                ],
                "capabilities": [
                  "Parse documents and extract structured fields",
                  "Classify and split documents",
                  "Fill PDF forms",
                  "Manage document workflows"
                ],
                "protocols": [
                  "MCP"
                ],
                "auth": "oauth",
                "pricing": {
                  "model": "usage-based",
                  "summary": "Provider lists 10,000 introductory credits, then pay-as-you-go processing; optional monthly volume plans exist. Credits vary by operation and page count. Check current pricing before execution.",
                  "url": "https://www.extend.ai/pricing",
                  "checkedAt": "2026-10-14T18:49:38.883Z"
                },
                "endpoint": "https://mcp.extend.ai/mcp",
                "registryName": "ai.extend/extend",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.extend%2Fextend/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-14T18:49:38.883Z",
                "verification": "documented",
                "notes": "Sources reviewed 14 Oct 2026. Registry matches the default production MCP URL; regional deployments use different hosts. Anonymous initialize returned 401. No OAuth grant, document upload or task execution. Workspace/environment and write permissions require explicit review.",
                "featured": false,
                "color": "#b8d6ce"
              },
              {
                "id": "svc-file2markdown",
                "slug": "file2markdown",
                "name": "file2markdown",
                "provider": "file2markdown",
                "tagline": "Convert document URLs and web pages into Markdown through a hosted MCP server.",
                "description": "file2markdown documents URL and file-content conversion to Markdown. It offers a limited anonymous tier, with API-key access for Pro features. JavaScript-only pages can be incomplete; OCR and batch capabilities have plan restrictions.",
                "website": "https://www.file2markdown.ai/mcp",
                "docsUrl": "https://www.file2markdown.ai/mcp",
                "category": "documents",
                "tags": [
                  "markdown",
                  "pdf",
                  "document conversion",
                  "mcp"
                ],
                "capabilities": [
                  "Convert public document or page URLs to Markdown",
                  "Convert supplied file contents",
                  "Inspect supported formats and usage limits"
                ],
                "protocols": [
                  "MCP"
                ],
                "auth": "none",
                "pricing": {
                  "model": "freemium",
                  "summary": "MCP docs list 5 anonymous conversions/day per network, up to 25MB. Pro uses an API key; OCR and batch are plan-dependent. Browser-account allowances may differ.",
                  "url": "https://www.file2markdown.ai/pricing",
                  "checkedAt": "2026-10-14T18:49:38.883Z"
                },
                "endpoint": "https://mcp.file2markdown.ai/mcp",
                "registryName": "ai.file2markdown/file2markdown",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.file2markdown%2Ffile2markdown/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-14T18:49:38.883Z",
                "verification": "documented",
                "notes": "14 Oct 2026: anonymous initialize/tools/list succeeded. One convert_url call for https://example.com with basic quality returned a complete result matching the source text exactly. No PDF/OCR, private file, Pro-key or general accuracy test.",
                "featured": false,
                "color": "#b8d6ce"
              },
              {
                "id": "svc-filegraph-api-docs",
                "slug": "filegraph-api-docs",
                "name": "FileGraph API Docs",
                "provider": "FileGraph",
                "tagline": "Read FileGraph API integration guides through its documentation-focused MCP server.",
                "description": "The observed FileGraph MCP tools provide API documentation for text extraction, PDF handling, images and Office files. They help coding agents build REST integrations. This listing covers the documentation server; document processing itself uses separate FileGraph API operations.",
                "website": "https://www.filegraph.ai/",
                "docsUrl": "https://www.filegraph.ai/mcp",
                "category": "documents",
                "tags": [
                  "api documentation",
                  "documents",
                  "mcp"
                ],
                "capabilities": [
                  "Read FileGraph API overview",
                  "Inspect extraction and PDF API guides",
                  "Inspect image and Office-document API guides"
                ],
                "protocols": [
                  "MCP"
                ],
                "auth": "unknown",
                "pricing": {
                  "model": "unknown",
                  "summary": "Pricing for the MCP documentation server was not separately established. FileGraph advertises paid credit packs for separate processing operations; website demos and signup allowances do not prove free MCP processing.",
                  "url": null,
                  "checkedAt": null
                },
                "endpoint": "https://api.filegraph.ai/mcp",
                "registryName": "ai.filegraph/document-processing",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.filegraph%2Fdocument-processing/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-14T18:49:38.883Z",
                "verification": "documented",
                "notes": "14 Oct 2026: anonymous initialize/tools/list returned 200 with nine documentation tools. Registry labels SSE; provider setup uses HTTP and HTTP negotiation succeeded. API-root fallback returned 404; official website corrected. No docs-tool or file-processing operation executed.",
                "featured": false,
                "color": "#b8d6ce"
              },
              {
                "id": "svc-hiddencontent",
                "slug": "hiddencontent",
                "name": "HiddenContent",
                "provider": "HiddenContent.ai",
                "tagline": "Screen files for concealed text before an agent uses their contents.",
                "description": "Document screening for hidden text in PDF, Office, RTF and HTML files. Hosted MCP uses OAuth linked to a provider account/key; REST uses a bearer key. Detection claims have not been independently evaluated.",
                "website": "https://hiddencontent.ai/start/",
                "docsUrl": "https://hiddencontent.ai/start/",
                "category": "documents",
                "tags": [
                  "document-security",
                  "hidden-text",
                  "prompt-injection",
                  "pdf"
                ],
                "capabilities": [
                  "Screen document files",
                  "Report concealed-text findings"
                ],
                "protocols": [
                  "MCP",
                  "REST"
                ],
                "auth": "oauth",
                "pricing": {
                  "model": "usage-based",
                  "summary": "$0.01 per page; $10 minimum credit purchase. GitHub signup grants 20 pages. Account required.",
                  "url": "https://hiddencontent.ai/start/",
                  "checkedAt": "2026-10-14T18:49:43.874Z"
                },
                "endpoint": "https://api.hiddencontent.ai/v1/mcp",
                "registryName": "ai.hiddencontent/mcp",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.hiddencontent%2Fmcp/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-14T18:49:43.874Z",
                "verification": "documented",
                "notes": "Anonymous MCP initialize returned 401 on 14 October 2026. No files submitted or detection tools run. Hosted checks send files to the provider; local extension handling differs. A clean result is not a guarantee against prompt injection.",
                "featured": false,
                "color": "#b8d6ce"
              },
              {
                "id": "svc-jina-ai",
                "slug": "jina-ai",
                "name": "Jina AI",
                "provider": "Jina AI",
                "tagline": "Read pages in a format agents can use.",
                "description": "Convert pages and PDFs into Markdown, search for sources and rerank content through Jina's official remote MCP integration.",
                "website": "https://jina.ai",
                "docsUrl": "https://github.com/jina-ai/MCP",
                "category": "extraction",
                "tags": [
                  "Markdown",
                  "PDF",
                  "Reranking"
                ],
                "capabilities": [
                  "Read web pages",
                  "Read PDFs",
                  "Search and rerank content"
                ],
                "protocols": [
                  "MCP",
                  "REST"
                ],
                "auth": "api-key",
                "pricing": {
                  "model": "freemium",
                  "summary": "Authenticated usage is token based, with paid token top-ups available. Reader permits limited anonymous access. Newly issued API keys include 10 million free tokens; this is not described as a monthly renewal.",
                  "url": "https://jina.ai/reader/",
                  "checkedAt": "2026-10-11T07:44:40Z"
                },
                "endpoint": "https://mcp.jina.ai/v1",
                "registryName": null,
                "sourceUrl": "https://github.com/jina-ai/MCP",
                "sourceType": "provider",
                "sourceCheckedAt": "2026-10-10T07:20:09.015484+00:00",
                "verification": "documented",
                "notes": "An API key is optional for some tools and required for others. Consult the provider's tool table for current limits. No tools were executed.",
                "featured": true,
                "color": "#9D73D3"
              },
              {
                "id": "svc-mainbook-bank-statement-converter",
                "slug": "mainbook-bank-statement-converter",
                "name": "MainBook Bank Statement Converter",
                "provider": "MainBook",
                "tagline": "Convert PDF bank statements into JSON, Excel or CSV using page credits.",
                "description": "A bank-statement conversion service with hosted MCP and a local stdio option. Account authorization or bearer API keys are required for tools. Conversion spends page credits; account balance and job reads are separate. REST API is documented.",
                "website": "https://mainbook.ai/",
                "docsUrl": "https://mainbook.ai/mcp",
                "category": "documents",
                "tags": [
                  "bank-statements",
                  "pdf",
                  "csv",
                  "excel"
                ],
                "capabilities": [
                  "Convert PDF bank statements",
                  "Retrieve conversion results",
                  "List account conversions",
                  "Read page-credit balance"
                ],
                "protocols": [
                  "MCP",
                  "REST"
                ],
                "auth": "oauth",
                "pricing": {
                  "model": "usage-based",
                  "summary": "Conversions consume one credit per PDF page. New accounts receive 20 pages; further packages are purchased in the web app.",
                  "url": "https://mainbook.ai/mcp",
                  "checkedAt": "2026-10-14T18:49:49.695Z"
                },
                "endpoint": "https://mcp.mainbook.ai/mcp",
                "registryName": "ai.mainbook/bank-statement-converter",
                "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.mainbook%2Fbank-statement-converter/versions/latest",
                "sourceType": "registry",
                "sourceCheckedAt": "2026-10-14T18:49:49.695Z",
                "verification": "documented",
                "notes": "Anonymous initialize returned 200; provider explicitly leaves discovery open while tool calls require sign-in. No bank statement uploaded or conversion run. Reconciliation and financial accuracy are untested. Local folder controls do not imply hosted file processing is local.",
                "featured": false,
                "color": "#b8d6ce"
              },
              {
                "id": "svc-reducto",
                "slug": "reducto",
                "name": "Reducto",
                "provider": "Reducto",
                "tagline": "Turn documents into structured inputs.",
                "description": "Parse documents into text, tables and figures, then extract fields with a schema. APIs also support classification and document workflows.",
                "website": "https://reducto.ai",
                "docsUrl": "https://docs.reducto.ai/overview",
                "category": "documents",
                "tags": [
                  "PDF",
                  "Tables",
                  "Structured extraction"
                ],
                "capabilities": [
                  "Parse document layouts",
                  "Extract fields into JSON",
                  "Classify documents"
                ],
                "protocols": [
                  "REST",
                  "MCP"
                ],
                "auth": "api-key",
                "pricing": {
                  "model": "usage-based",
                  "summary": "Standard list rates start at $10 per 1,000 pages for r-1 Parse and $20 per 1,000 pages for Extract, including parsing. Standard advertises $150 of initial free usage; normal usage rates apply afterward.",
                  "url": "https://reducto.ai/pricing",
                  "checkedAt": "2026-10-11T07:43:48Z"
                },
                "endpoint": "https://platform.reducto.ai/parse",
                "registryName": null,
                "sourceUrl": "https://docs.reducto.ai/api-reference/parse",
                "sourceType": "provider",
                "sourceCheckedAt": "2026-10-11T07:43:48Z",
                "verification": "documented",
                "notes": "Capabilities are described in the provider documentation. Relay has not connected to or tested the service.",
                "featured": false,
                "color": "#8D78CD"
              }
            ],
            "total": 10,
            "returned": 10,
            "generatedAt": "2026-10-14T20:27:05.516Z",
            "view": "full",
            "search": {
              "originalQuery": "PDF",
              "effectiveQuery": "PDF",
              "mode": "keywords",
              "terms": [
                "pdf"
              ],
              "appliedFilters": {
                "category": null,
                "protocol": "MCP",
                "pricing": null
              },
              "reasonCodes": [],
              "warnings": [
                "The caller separated service-search terms from the preserved original request. This decomposition and all free-text requirements are unassessed. Results are metadata candidates, not verified matches for the whole request."
              ],
              "suggestions": [
                "Use recommend_services with explicit task, protocol, account and payment filters for reviewed connection options. Keep remaining requirements for evidence review. Prohibiting payment now does not mean only free services may be listed."
              ],
              "discovery": {
                "originalRequest": "Find an MCP service for extracting tables from PDF documents. I need structured output. Do not upload a document, connect accounts, run a provider tool or pay. Show the source and explain what remains untested.",
                "requirements": [
                  "Extract tables from PDF documents",
                  "Return structured output",
                  "Show the source",
                  "Explain what remains untested",
                  "Do not upload a document"
                ],
                "executionPolicy": {
                  "providerCalls": false,
                  "accountConnections": false,
                  "payments": false
                },
                "decomposition": "caller_supplied",
                "assessment": "unassessed",
                "resultsAre": "metadata_candidates"
              }
            }
          },
          "responseProjectionNote": "Public structuredContent only; transport headers omitted.",
          "rawBodySha256": "fa9f6a53df4f9f0954d1af517128b6d49550649582732ecaa3fd68b7c2de6633"
        },
        {
          "request": {
            "jsonrpc": "2.0",
            "id": "docspeed",
            "method": "tools/call",
            "params": {
              "name": "get_connection_spec",
              "arguments": {
                "slug": "docspeed"
              }
            }
          },
          "httpStatus": 200,
          "responseProjection": {
            "connection": {
              "schemaVersion": "1",
              "service": {
                "slug": "docspeed",
                "name": "Docspeed"
              },
              "declaredInterfaces": [
                "MCP",
                "REST"
              ],
              "endpoint": "https://api.docspeed.ai/mcp/",
              "deployment": {
                "kind": "remote",
                "transport": "unknown",
                "evidence": null
              },
              "packages": [],
              "authentication": {
                "method": "api-key",
                "requirements": [
                  "confirm-whether-provider-api-key-is-required",
                  "confirm-provider-specific-key-placement-if-using-a-key"
                ],
                "notes": "Source reviewed 14 Oct 2026. Setup documents API-key access and the matching hosted MCP endpoint. Registry version is 0.2.0 while the page still references 0.1.0. No client installation, file upload, account connection or extraction test was performed.",
                "evidence": null
              },
              "setupGuide": null,
              "testing": {
                "connectionTestedByRelay": false,
                "taskTestedByRelay": false
              },
              "documentationUrl": "https://api.docspeed.ai/agent-tools/",
              "source": {
                "url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.docspeed%2Fdocspeed/versions/latest",
                "type": "registry",
                "checkedAt": "2026-10-14T18:49:36.203Z",
                "verification": "documented"
              },
              "providerToolSchemas": null,
              "gaps": [
                "provider-tool-schemas-not-recorded",
                "live-availability-not-checked",
                "mcp-transport-not-confirmed",
                "package-options-not-recorded",
                "dedicated-authentication-evidence-not-attached"
              ],
              "nextSteps": [
                {
                  "action": "review-provider-documentation",
                  "url": "https://api.docspeed.ai/agent-tools/"
                },
                {
                  "action": "confirm-mcp-transport",
                  "url": "https://api.docspeed.ai/agent-tools/"
                },
                {
                  "action": "confirm-authentication-needs-before-client-setup",
                  "url": "https://api.docspeed.ai/agent-tools/"
                },
                {
                  "action": "check-current-provider-pricing",
                  "url": "https://api.docspeed.ai/agent-tools/"
                },
                {
                  "action": "inspect-live-tool-schemas-with-your-mcp-client",
                  "url": "https://api.docspeed.ai/agent-tools/"
                }
              ]
            }
          },
          "responseProjectionNote": "Public structuredContent only; transport headers omitted.",
          "rawBodySha256": "9017a3ea00e8dd3af2e3dec1bb16d4dac995157bf534c309f0275ad7b42e6688"
        },
        {
          "request": {
            "jsonrpc": "2.0",
            "id": "reducto",
            "method": "tools/call",
            "params": {
              "name": "get_connection_spec",
              "arguments": {
                "slug": "reducto"
              }
            }
          },
          "httpStatus": 200,
          "responseProjection": {
            "connection": {
              "schemaVersion": "1",
              "service": {
                "slug": "reducto",
                "name": "Reducto"
              },
              "declaredInterfaces": [
                "REST",
                "MCP"
              ],
              "endpoint": "https://platform.reducto.ai/parse",
              "deployment": {
                "kind": "remote",
                "transport": "unknown",
                "evidence": null
              },
              "packages": [],
              "authentication": {
                "method": "api-key",
                "requirements": [
                  "confirm-whether-provider-api-key-is-required",
                  "confirm-provider-specific-key-placement-if-using-a-key"
                ],
                "notes": "Capabilities are described in the provider documentation. Relay has not connected to or tested the service.",
                "evidence": {
                  "url": "https://docs.reducto.ai/quickstart",
                  "checkedAt": "2026-10-10T07:24:56.136586+00:00"
                }
              },
              "setupGuide": {
                "slug": "reducto",
                "reviewedAt": "2026-10-13T21:38:37.837Z",
                "sources": [
                  {
                    "id": "reducto-rest",
                    "url": "https://docs.reducto.ai/api-reference/parse",
                    "title": "Reducto Parse API reference",
                    "checkedAt": "2026-10-13T21:38:37.837Z"
                  },
                  {
                    "id": "reducto-mcp",
                    "url": "https://docs.reducto.ai/mcp-server",
                    "title": "Reducto hosted MCP and document tools",
                    "checkedAt": "2026-10-13T21:38:37.837Z"
                  },
                  {
                    "id": "reducto-pricing",
                    "url": "https://reducto.ai/pricing",
                    "title": "Reducto pricing and supported file types",
                    "checkedAt": "2026-10-13T21:38:37.837Z"
                  }
                ],
                "options": [
                  {
                    "id": "rest-parse",
                    "label": "REST document parsing",
                    "protocol": "REST",
                    "transport": "https",
                    "endpoint": "https://platform.reducto.ai/parse",
                    "authentication": {
                      "method": "api-key",
                      "requirement": "required",
                      "placement": "Send the API key in the Authorization Bearer header.",
                      "sourceIds": [
                        "reducto-rest"
                      ]
                    },
                    "steps": [
                      {
                        "text": "POST JSON with input set to an accessible document URL or supported uploaded-file reference.",
                        "sourceIds": [
                          "reducto-rest"
                        ]
                      },
                      {
                        "text": "Handle inline output or a returned result URL as documented.",
                        "sourceIds": [
                          "reducto-rest"
                        ]
                      }
                    ],
                    "sourceIds": [
                      "reducto-rest"
                    ]
                  },
                  {
                    "id": "hosted-mcp",
                    "label": "Hosted document MCP",
                    "protocol": "MCP",
                    "transport": "streamable-http",
                    "endpoint": "https://mcp.reducto.ai/mcp",
                    "authentication": {
                      "method": "api-key",
                      "requirement": "required",
                      "placement": "Configure Authorization: Bearer with a Reducto Studio API key.",
                      "sourceIds": [
                        "reducto-mcp"
                      ]
                    },
                    "steps": [
                      {
                        "text": "Add the hosted endpoint; pass an accessible document URL to parse_document.",
                        "sourceIds": [
                          "reducto-mcp"
                        ]
                      },
                      {
                        "text": "Use get_job for URL-backed, truncated or asynchronous results.",
                        "sourceIds": [
                          "reducto-mcp"
                        ]
                      }
                    ],
                    "sourceIds": [
                      "reducto-mcp"
                    ]
                  }
                ],
                "pricing": {
                  "summary": "Standard rates list r-1 Parse at $10 per 1,000 pages, with separate rates and extras for other operations.",
                  "freeAccess": "Standard advertises $150 of introductory usage; standard rates apply afterward.",
                  "limits": [
                    "Optional processing features can add charges."
                  ],
                  "sourceIds": [
                    "reducto-pricing"
                  ]
                },
                "limitations": [
                  "Hosted MCP cannot read local filesystem paths; its upload tool accepts public URLs.",
                  "HTML file support does not establish browser rendering or a reviewed arbitrary-page extraction workflow.",
                  "Documentation reviewed only; no provider account was connected and no operation or payment was executed."
                ]
              },
              "testing": {
                "connectionTestedByRelay": false,
                "taskTestedByRelay": false
              },
              "documentationUrl": "https://docs.reducto.ai/overview",
              "source": {
                "url": "https://docs.reducto.ai/api-reference/parse",
                "type": "provider",
                "checkedAt": "2026-10-11T07:43:48Z",
                "verification": "documented"
              },
              "providerToolSchemas": null,
              "gaps": [
                "provider-tool-schemas-not-recorded",
                "live-availability-not-checked",
                "mcp-transport-not-confirmed",
                "package-options-not-recorded"
              ],
              "nextSteps": [
                {
                  "action": "review-provider-documentation",
                  "url": "https://docs.reducto.ai/overview"
                },
                {
                  "action": "confirm-mcp-transport",
                  "url": "https://docs.reducto.ai/overview"
                },
                {
                  "action": "confirm-authentication-needs-before-client-setup",
                  "url": "https://docs.reducto.ai/overview"
                },
                {
                  "action": "check-current-provider-pricing",
                  "url": "https://reducto.ai/pricing"
                },
                {
                  "action": "inspect-live-tool-schemas-with-your-mcp-client",
                  "url": "https://docs.reducto.ai/overview"
                }
              ]
            }
          },
          "responseProjectionNote": "Public structuredContent only; transport headers omitted.",
          "rawBodySha256": "3cbd484519530f1738741dfe8707064c5efe3d396d48edaf7d5bade7c296c621"
        }
      ],
      "policy": {
        "providerInferenceCalls": 0,
        "providerToolCalls": 0,
        "documentUploads": 0,
        "accountConnections": 0,
        "payments": 0
      },
      "scope": "Live public metadata and setup evidence only; source pages and provider tool outputs were not independently tested in this scenario."
    }
  ]
}
