verify-api MCP
An AI claim verification MCP server that provides tools for verifying LLM provider accuracy and status. It supports dual-protocol micropayments via x402 (Base USDC) and MPP (Tempo USDC), offering native integration for AI agents to query verification services.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://verify.drain54.my.idWhat you can do with it
- Verify AI claim accuracy
- Check LLM provider status
- Execute pay-per-query verification via x402
- Integrate verification tools into AI agents via MCP
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- io.github.drain54/verify-api 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 8 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Tools
8 advertised
verify_ai_claim
Verify whether an AI model, API provider, pricing claim, or infrastructure assertion is true today using live web evidence. Returns deterministic verdicts (TRUE, FALSE, PARTIALLY_TRUE, UNREACHABLE, UNVERIFIED) with cited sources and confidence scores. Requires x402 micropayment (0.01 USDC on Base). When to use: Fact-checking an AI provider's claims, pricing, or model availability. When NOT to use: Do NOT use for general open-ended web search, coding assistance, or non-AI claim verification. Parameters: - `query` (string, required): The exact claim or assertion to verify (5-500 chars), e.g. 'Is GLM-5.3 Flash free on ZenMux?'. - `depth` (string, optional, default 'standard'): Verification depth. 'standard' executes fast single-pass search (0.01 USDC); 'deep' conducts multi-source cross-examination (0.03 USDC).
{
"type": "object",
"required": [
"query"
],
"properties": {
"depth": {
"enum": [
"standard",
"deep"
],
"type": "string",
"default": "standard",
"examples": [
"standard",
"deep"
],
"description": "Verification depth: 'standard' (0.01 USDC) or 'deep' (0.03 USDC)."
},
"query": {
"type": "string",
"examples": [
"Is GLM-5.3 Flash free on ZenMux?",
"Does OpenRouter still offer free tier models?"
],
"maxLength": 500,
"minLength": 5,
"description": "The specific AI infrastructure claim or assertion to verify."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"verdict",
"answer",
"confidence",
"sources"
],
"properties": {
"id": {
"type": "string",
"description": "Unique verification record ID"
},
"answer": {
"type": "string",
"description": "Detailed explanation backed by fresh sources"
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Source URL"
},
"type": {
"type": "string",
"description": "Source type (official, third_party, community)"
},
"title": {
"type": "string",
"description": "Source page title"
}
}
},
"description": "Fresh evidence sources used for verification"
},
"verdict": {
"enum": [
"TRUE",
"FALSE",
"PARTIALLY_TRUE",
"CHANGED",
"UNREACHABLE",
"BLOCKED",
"UNVERIFIED"
],
"type": "string",
"description": "Deterministic evidence-backed verdict"
},
"confidence": {
"type": "number",
"description": "Confidence score between 0.0 and 1.0"
}
}
}{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_endpoint_health
Probe and verify the reachability, HTTP status code, latency, and operational health of an AI API endpoint or web service. Follows redirects with a 15-second timeout. Requires x402 micropayment (0.01 USDC on Base). When to use: Check if a specific API URL or model endpoint is online, responding, or returning 5xx/402 errors. When NOT to use: Do NOT use for general domain WHOIS or DNS record lookups. Parameters: - `url` (string, required): Target HTTP/HTTPS endpoint URL to probe (8-1000 chars), e.g. 'https://api.openai.com/v1/models'.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"examples": [
"https://openrouter.ai/api/v1/models",
"https://api.together.xyz/v1/health"
],
"maxLength": 1000,
"minLength": 8,
"description": "The target API or service endpoint URL to probe."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"verdict",
"http_status",
"latency_ms"
],
"properties": {
"verdict": {
"enum": [
"TRUE",
"UNREACHABLE",
"BLOCKED"
],
"type": "string",
"description": "Reachability status verdict"
},
"checked_at": {
"type": "string",
"description": "ISO 8601 timestamp of the check"
},
"latency_ms": {
"type": "integer",
"description": "Response latency in milliseconds"
},
"http_status": {
"type": "integer",
"description": "HTTP status code returned by the target endpoint"
}
}
}{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false
}solve_captcha
Solve web CAPTCHA challenges (Turnstile, hCaptcha, reCAPTCHA v2, Arkose, Cloudflare) and return a valid solution token. Automatically retries once on failure without double charging. Requires x402 payment on Base. When to use: Use when an agent encounters a bot wall or CAPTCHA challenge during automated web workflows. When NOT to use: Do NOT use for non-CAPTCHA auth, 2FA/OTP codes, or general login forms. Parameters: - `type` (string, required): CAPTCHA type ('turnstile', 'hcaptcha', 'recaptcha', 'arkose', 'cloudflare'). - `sitekey` (string, required): Public sitekey extracted from the target page DOM. - `url` (string, required): Full target webpage URL hosting the challenge.
{
"type": "object",
"required": [
"type",
"sitekey",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"examples": [
"https://example.com/login"
],
"maxLength": 1000,
"minLength": 8,
"description": "The full target page URL where the CAPTCHA challenge is hosted."
},
"type": {
"enum": [
"turnstile",
"hcaptcha",
"recaptcha",
"arkose",
"cloudflare"
],
"type": "string",
"examples": [
"turnstile",
"recaptcha",
"hcaptcha"
],
"description": "The specific type of CAPTCHA challenge encountered on the target page."
},
"sitekey": {
"type": "string",
"examples": [
"0x4AAAAAAAx..."
],
"maxLength": 256,
"minLength": 5,
"description": "The CAPTCHA sitekey parameter extracted from the target page DOM or iframe."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"solved",
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The resulting CAPTCHA response token to submit to the form"
},
"method": {
"type": "string",
"description": "Solving method or backend engine used"
},
"solved": {
"type": "boolean",
"description": "Whether the CAPTCHA challenge was successfully solved"
},
"elapsed": {
"type": "number",
"description": "Time taken in seconds to solve the challenge"
}
}
}{
"readOnlyHint": false,
"idempotentHint": false,
"destructiveHint": false
}get_captcha_pricing
Retrieve current x402 pricing per 1,000 CAPTCHA solves across all supported types (Turnstile, hCaptcha, reCAPTCHA v2, Arkose, Cloudflare). Free endpoint with zero parameters. When to use: Check current rates and atomic USDC requirements before calling solve_captcha. When NOT to use: Do NOT use to submit or solve CAPTCHA challenges.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"type": "object",
"required": [
"pricing",
"currency",
"network"
],
"properties": {
"network": {
"type": "string",
"description": "Target blockchain network (Base)"
},
"pricing": {
"type": "object",
"description": "Map of CAPTCHA type to cost in USDC atomic units per 1,000 solves"
},
"currency": {
"type": "string",
"description": "Payment currency (USDC)"
}
}
}{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false
}read_web_page
Extract clean, readable Markdown and metadata from any public webpage for LLM ingestion, stripping ads, popups, and navigational clutter. Returns clean markdown, title, description, character count, and estimated tokens. Requires x402 micropayment (0.005 USDC on Base). When to use: Ingesting articles, blog posts, documentation, or news pages into LLM context. When NOT to use: Do NOT use for raw binary files (PDF/images), authenticated pages behind a login, or single-page apps that require heavy JavaScript rendering. Parameters: - `url` (string, required): Full target webpage URL (e.g. 'https://news.ycombinator.com'). - `include_links` (boolean, optional, default true): Whether to preserve markdown hyperlinks. - `include_images` (boolean, optional, default false): Whether to preserve image markdown links.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"examples": [
"https://news.ycombinator.com",
"https://en.wikipedia.org/wiki/Artificial_intelligence"
],
"maxLength": 1000,
"minLength": 8,
"description": "Full target webpage URL to extract markdown from."
},
"include_links": {
"type": "boolean",
"default": true,
"description": "Preserve markdown hyperlinks."
},
"include_images": {
"type": "boolean",
"default": false,
"description": "Preserve markdown image tags."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"url",
"content",
"length"
],
"properties": {
"url": {
"type": "string",
"description": "Target webpage URL"
},
"title": {
"type": "string",
"description": "Extracted page title"
},
"length": {
"type": "integer",
"description": "Content length in characters"
},
"content": {
"type": "string",
"description": "Clean extracted Markdown content"
},
"elapsed_ms": {
"type": "integer",
"description": "Extraction time in milliseconds"
},
"description": {
"type": "string",
"description": "Extracted meta description"
},
"estimated_tokens": {
"type": "integer",
"description": "Estimated LLM tokens (~len/4)"
}
}
}{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false
}search_web
Execute live web searches using multi-engine chain (TinyFish, DuckDuckGo, Jina) without monthly API subscriptions. Returns fresh source URLs, titles, and snippets. Requires x402 micropayment (0.005 USDC on Base). When to use: Real-time web browsing and information retrieval for AI agents. When NOT to use: Do NOT use for deep recursive crawling of entire sites. Parameters: - `query` (string, required): Search query (3-300 chars). - `limit` (integer, optional, default 5): Maximum number of search results to return (1-10).
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "Number of results to return."
},
"query": {
"type": "string",
"maxLength": 300,
"minLength": 3,
"description": "Web search query."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"query",
"results"
],
"properties": {
"count": {
"type": "integer",
"description": "Number of returned results"
},
"query": {
"type": "string",
"description": "Original search query"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"snippet": {
"type": "string"
}
}
}
}
}
}{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false
}extract_json_from_web
Extract structured JSON data matching a custom schema directly from any webpage. Extracts clean content and processes schema mapping via fast LLM parsing. Requires x402 micropayment (0.015 USDC on Base). When to use: Scraping structured data (product specs, prices, jobs, articles) into clean JSON. When NOT to use: Do NOT use for general open-ended chat without a defined schema. Parameters: - `url` (string, required): Target webpage URL. - `schema` (object, required): JSON object describing fields or schema to extract. - `instructions` (string, optional): Specific guidance for extraction.
{
"type": "object",
"required": [
"url",
"schema"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 1000,
"minLength": 8,
"description": "Target webpage URL."
},
"schema": {
"type": "object",
"description": "Schema definition or list of fields to extract."
},
"instructions": {
"type": "string",
"description": "Optional instructions for parsing or field formatting."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"url",
"data"
],
"properties": {
"url": {
"type": "string"
},
"data": {
"type": "object",
"description": "Extracted JSON fields"
},
"title": {
"type": "string"
},
"elapsed_ms": {
"type": "integer"
}
}
}{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false
}fetch_stealth_web
Fetch webpage HTML with modern browser TLS and header impersonation (Sec-Ch-Ua, realistic headers) to bypass bot protection and detect anti-bot challenges. Requires x402 micropayment (0.01 USDC on Base). When to use: Fetching websites that block standard cURL or basic HTTP libraries with 403 Forbidden. When NOT to use: Do NOT use for downloading giant binary files (videos, zip archives). Parameters: - `url` (string, required): Target webpage URL. - `custom_headers` (object, optional): Additional HTTP headers to pass along.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 1000,
"minLength": 8,
"description": "Target webpage URL."
},
"custom_headers": {
"type": "object",
"description": "Optional custom headers."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"url",
"http_status",
"html"
],
"properties": {
"url": {
"type": "string"
},
"html": {
"type": "string"
},
"title": {
"type": "string"
},
"elapsed_ms": {
"type": "integer"
},
"http_status": {
"type": "integer"
},
"challenge_type": {
"type": "string"
},
"content_length": {
"type": "integer"
},
"challenge_detected": {
"type": "boolean"
}
}
}{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1153 ms
- 95th percentile latency
- 1153 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1153 ms · metadata changed · 8 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http verify-api-mcp https://verify.drain54.my.idCodex
codex mcp add verify-api-mcp --url https://verify.drain54.my.idCursor
{
"mcpServers": {
"verify-api-mcp": {
"url": "https://verify.drain54.my.id"
}
}
}Cline
{
"mcpServers": {
"verify-api-mcp": {
"type": "streamableHttp",
"url": "https://verify.drain54.my.id",
"disabled": false
}
}
}VS Code
{
"servers": {
"verify-api-mcp": {
"type": "http",
"url": "https://verify.drain54.my.id"
}
}
}Gemini CLI
gemini mcp add --transport http verify-api-mcp https://verify.drain54.my.idClaude Desktop
{
"mcpServers": {
"verify-api-mcp": {
"url": "https://verify.drain54.my.id"
}
}
}Windsurf
{
"mcpServers": {
"verify-api-mcp": {
"serverUrl": "https://verify.drain54.my.id"
}
}
}Let your agent find its tools
Find servers like verify-api MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.