_ registry / mcp http-sse · checked 21m ago

ground-truth

https://ground-truth-mcp.anishdasmail.workers.dev

Registry code: eb3b3a7ed8115b91

api record

Ground Truth gives agents evidence-backed signals about competitor and vendor changes (pricing, packaging, APIs, packages, public claims).

START HERE (no API key, no signup): call `check_endpoint` with a public URL, e.g. url="https://example.com". A PASS confirms you are connected and returns live evidence (status, content type, timing, redirects, auth/rate-limit signals).

endpoint
https://ground-truth-mcp.anishdasmail.workers.dev/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is ground-truth live?
Yes — it answered the hub's last check (checked 21m ago). It answered 100% of checks over the last 30 days.
Is ground-truth free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does ground-truth have?
19 tools: check_endpoint, preflight_endpoint, estimate_market, check_pricing, inspect_security_headers, preview_monitor, compare_pricing_pages, compare_competitors, ….
Is ground-truth safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
904ms

last good check

priced tools
0

of 19 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 19 tools
1 open2 auth-required 16 never probed 3 of 19 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • list_resources open 21m ago

    List all available Ground Truth tools and their access tiers. Zero-cost schema discovery. Call this to explore what verification tools are available before making a tool call. No quota consumption, no API key required.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • generate_change_report auth-required 21m ago

    Generate a summary report of monitor activity for a time window. Shows monitors run, changes detected, failures, risk levels, and recommended follow-up actions. Requires a free watch key or paid API key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "period": {
          "enum": [
            "daily",
            "weekly"
          ],
          "type": "string",
          "default": "daily",
          "description": "Report period. daily covers the past 24 hours, weekly covers the past 7 days."
        },
        "include_unchanged": {
          "type": "boolean",
          "default": false,
          "description": "When true also lists monitors with no detected changes."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • list_monitors auth-required 21m ago

    List all monitors owned by this API key, with last run status and schedule. Requires a free watch key or paid API key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "active_only": {
          "type": "boolean",
          "default": true,
          "description": "When true returns only active monitors. Set false to include paused monitors."
        }
      },
      "additionalProperties": false
    }
    arguments 12 lines
  • check_endpoint unknown never probed

    Preflight an unfamiliar public URL or API before an AI agent relies on it. It performs one live fetch and returns a PASS/WARN/FAIL verdict with HTTP status, content type, response time, final URL/redirect behavior, auth and rate-limit signals, and a short response sample. A PASS proves only that this fetch succeeded at check time; it does not validate authenticated flows, POST side effects, JavaScript execution, or business logic.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "minLength": 1,
          "description": "Public http(s) URL or bare domain to probe. Bare domains like google.com are accepted and normalized to https:// automatically."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • preflight_endpoint unknown never probed

    Run reachability/response and security-header checks together for an unfamiliar URL or API before an AI agent trusts or acts on it. Returns one combined PASS/WARN/FAIL verdict with evidence from both checks. It does not prove that a service is safe, authenticated, or correct.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "minLength": 1,
          "description": "Public http(s) URL or bare domain to preflight."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • estimate_market unknown never probed

    Search npm or PyPI to estimate how crowded a package category is before you claim that a market is empty, niche, or competitive. Use this when you have a category or search phrase such as 'edge orm' and want live result counts plus representative matches. Do not use it to compare exact known package names or to infer adoption from downloads; it reflects search results, not market share. Registry responses are cached for 5 minutes.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "string",
          "minLength": 2,
          "description": "Short registry search phrase to evaluate, for example 'mcp memory server' or 'edge orm'."
        },
        "registry": {
          "enum": [
            "npm",
            "pypi"
          ],
          "type": "string",
          "default": "npm",
          "description": "Registry to search. Use 'npm' for JavaScript ecosystems and 'pypi' for Python ecosystems."
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • check_pricing unknown never probed

    Fetch a public pricing page and extract first-pass pricing signals before you quote plan costs, free tiers, or plan names. Use this when you already have a likely pricing URL and need a quick live scan of visible page text. It returns price-like strings, heuristic plan labels, free or free-trial signals, and cache information. It does not map prices to exact plans, normalize currencies, execute checkout flows, or guarantee that a price applies to a specific region or customer type. JavaScript-rendered, logged-in, or heavily obfuscated pricing details can be missed. Results are cached for 5 minutes.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "Public pricing or plans URL to analyze. Prefer the specific pricing page, for example https://stripe.com/pricing, rather than a generic homepage."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • inspect_security_headers unknown never probed

    Inspect security-related HTTP response headers for an unfamiliar public URL before an agent trusts or recommends it. It identifies missing or weak HSTS, CSP, framing, referrer, permissions, and cross-origin headers. It reports observable configuration only and does not prove that a site is secure or vulnerability-free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "minLength": 1,
          "description": "Public http(s) URL or bare domain to inspect. Bare domains are normalized to https:// automatically."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • preview_monitor unknown never probed

    Capture a free live baseline for a source that should remain trustworthy over time. Call this before recommending checkout: it proves what would be monitored without creating an account or persistent monitor. After a successful preview, offer create_monitor only when the user wants scheduled checks, history, or change alerts.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "target_type",
        "target_value"
      ],
      "properties": {
        "target_type": {
          "enum": [
            "url",
            "endpoint",
            "pricing_page",
            "package",
            "vendor_claim",
            "custom_prompt"
          ],
          "type": "string",
          "description": "Source type. Use pricing_page for pricing/packaging, endpoint for API availability, package for npm:package or pypi:package, vendor_claim for claim text plus an evidence URL in instructions, and custom_prompt for a URL plus comma-separated keywords in instructions."
        },
        "instructions": {
          "type": "string",
          "maxLength": 1000,
          "description": "For vendor_claim, the public evidence URL. For custom_prompt, comma-separated keywords."
        },
        "target_value": {
          "type": "string",
          "minLength": 1,
          "description": "Public URL, package identifier, or vendor claim to baseline, depending on target_type."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • compare_pricing_pages unknown never probed

    Compare two to five public pricing pages side by side before you make competitive pricing or packaging claims. Use this when you want a quick, live comparison of visible prices, free-plan signals, and plan-name hints across vendors. The output is heuristic and page-level: it does not map every price to every plan or normalize regional billing differences.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "pages"
      ],
      "properties": {
        "pages": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "description": "Public pricing page URL for that vendor or product."
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "description": "Short vendor or product label to use in the comparison output."
              }
            },
            "additionalProperties": false
          },
          "maxItems": 5,
          "minItems": 2,
          "description": "Two to five named pricing pages to compare side by side."
        }
      },
      "additionalProperties": false
    }
    arguments 36 lines
  • compare_competitors unknown never probed

    Compare two or more exact package names side by side using live npm or PyPI metadata. Use this when you already know the candidate packages and need evidence for claims such as 'tool A is newer', 'tool B is still maintained', or 'these packages use different licenses'. It returns per-package registry metadata in input order, with field availability varying by registry. Missing or unpublished packages return found=false. Do not use it to discover unknown alternatives, estimate market size, or compare packages across different registries. Registry responses are cached for 5 minutes.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "packages"
      ],
      "properties": {
        "packages": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "maxItems": 10,
          "minItems": 2,
          "description": "Two to ten exact package names from the same registry, for example ['react', 'vue']. Use exact registry names, not search phrases or categories."
        },
        "registry": {
          "enum": [
            "npm",
            "pypi"
          ],
          "type": "string",
          "default": "npm",
          "description": "Registry that all package names belong to. All compared packages must come from the same registry, and returned metadata fields differ slightly between npm and PyPI."
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • verify_claim unknown never probed

    Verify a factual claim against specific public evidence URLs before an agent repeats it or acts on it. The tool checks whether supplied keywords appear in each fetched source and reports per-source evidence. It does not perform open-ended search, semantic contradiction analysis, or prove a claim true when a page is silent; choose direct evidence URLs and interpret the result as a support signal. Fetched pages are cached for 5 minutes.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "claim",
        "evidence_urls",
        "keywords"
      ],
      "properties": {
        "claim": {
          "type": "string",
          "minLength": 5,
          "description": "Plain-language claim to verify, for example 'AWS Business support includes 24/7 phone support'."
        },
        "keywords": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "maxItems": 20,
          "minItems": 1,
          "description": "Keywords or short phrases that should appear on supporting pages. Matching is case-insensitive substring matching, so choose phrases that are likely to appear verbatim."
        },
        "evidence_urls": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "maxItems": 10,
          "minItems": 1,
          "description": "One to ten public documentation, pricing, policy, or support URLs that are likely to contain direct evidence for the claim."
        }
      },
      "additionalProperties": false
    }
    arguments 37 lines
  • assess_compliance_posture unknown never probed

    Scan a public security, trust, compliance, or legal page for common enterprise buying signals before you claim a vendor supports a particular compliance posture. It looks for public references to SOC 2, ISO 27001, GDPR, HIPAA, DPA terms, subprocessors, SSO, SCIM, encryption, and data residency language. This is a signal scanner, not proof of certification or legal sufficiency.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "Public trust, security, compliance, or policy URL to scan."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • test_hypothesis unknown never probed

    Run a small verification plan made of concrete live checks and summarize whether a hypothesis is supported. Use this when one conclusion depends on multiple simple checks such as endpoint reachability, npm search counts, or whether a page contains an exact substring. This is a coordination tool, not an open-ended research agent: every test must be explicitly defined in advance, and tests run in order with no branching or early exit. The final verdict is mechanical: all tests passing => SUPPORTED, zero passing => REFUTED, otherwise PARTIALLY SUPPORTED. Use verify_claim when you already have evidence URLs, estimate_market for category sizing, and compare_competitors when you already know exact package names.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "hypothesis",
        "tests"
      ],
      "properties": {
        "tests": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "description",
                  "type",
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "description": "Public URL to probe, for example https://example.com."
                  },
                  "type": {
                    "type": "string",
                    "const": "endpoint_exists",
                    "description": "Perform one unauthenticated GET request and pass when the endpoint returns a 2xx HTTP status."
                  },
                  "description": {
                    "type": "string",
                    "minLength": 3,
                    "description": "Short explanation of what this endpoint check is meant to prove."
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "description",
                  "type",
                  "query",
                  "threshold"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "npm_count_above",
                    "description": "Search npm and pass when the reported result count is strictly greater than the threshold."
                  },
                  "query": {
                    "type": "string",
                    "minLength": 2,
                    "description": "npm search phrase to count, for example 'mcp email server'."
                  },
                  "threshold": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Lower bound that the npm search result count must exceed."
                  },
                  "description": {
                    "type": "string",
                    "minLength": 3,
                    "description": "Short explanation of what this npm lower-bound count check is meant to prove."
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "description",
                  "type",
                  "query",
                  "threshold"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "npm_count_below",
                    "description": "Search npm and pass when the reported result count is strictly less than the threshold."
                  },
                  "query": {
                    "type": "string",
                    "minLength": 2,
                    "description": "npm search phrase to count, for example 'business verification mcp'."
                  },
                  "threshold": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Upper bound that the npm search result count must stay below."
                  },
                  "description": {
                    "type": "string",
                    "minLength": 3,
                    "description": "Short explanation of what this npm upper-bound count check is meant to prove."
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "description",
                  "type",
                  "url",
                  "substring"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "description": "Public URL whose response body should contain the expected text."
                  },
                  "type": {
                    "type": "string",
                    "const": "response_contains",
                    "description": "Fetch a public URL and pass when the response body contains the exact substring using case-sensitive matching. The tool does not parse DOM structure or execute JavaScript before matching."
                  },
                  "substring": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Exact case-sensitive text to search for in the fetched response body."
                  },
                  "description": {
                    "type": "string",
                    "minLength": 3,
                    "description": "Short explanation of what this response-content check is meant to prove."
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "maxItems": 10,
          "minItems": 1,
          "description": "Ordered list of one to ten checks to run. Each test object uses only the fields required by its type."
        },
        "hypothesis": {
          "type": "string",
          "minLength": 5,
          "description": "Claim to test, for example 'there are fewer than 50 MCP email servers on npm'."
        }
      },
      "additionalProperties": false
    }
    arguments 148 lines
  • create_monitor unknown never probed

    Create a persistent monitor that tracks a URL, pricing page, package version, endpoint status, vendor claim, or custom keyword pattern over time. Monitors run automatically on their configured schedule (hourly/daily/weekly) via the Cloudflare cron trigger, or on demand with run_monitor_now. Results are stored durably by account. A free watch key includes three daily or weekly monitors; paid plans add hourly schedules and higher limits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name",
        "target_type",
        "target_value"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "description": "Human-readable name for this monitor."
        },
        "schedule": {
          "enum": [
            "manual",
            "hourly",
            "daily",
            "weekly"
          ],
          "type": "string",
          "default": "daily",
          "description": "How often the monitor runs automatically. manual means only via run_monitor_now."
        },
        "target_type": {
          "enum": [
            "url",
            "pricing_page",
            "package",
            "endpoint",
            "vendor_claim",
            "custom_prompt"
          ],
          "type": "string",
          "description": "What to monitor. url/endpoint: HTTP reachability and status. pricing_page: pricing signals (prices, plans, free tier). package: package version on npm or pypi (target_value as 'npm:pkg-name' or 'pypi:pkg-name'). vendor_claim: keyword presence at a URL (target_value=claim text, instructions=URL to check). custom_prompt: comma-separated keywords checked against a URL (target_value=URL, instructions=keywords)."
        },
        "instructions": {
          "type": "string",
          "maxLength": 1000,
          "description": "Supplementary instructions. For vendor_claim: the URL to check. For custom_prompt: comma-separated keywords. Optional for other types."
        },
        "target_value": {
          "type": "string",
          "minLength": 1,
          "description": "Primary target. For url/endpoint/pricing_page/custom_prompt: a public https URL. For package: 'npm:package-name' or 'pypi:package-name'. For vendor_claim: the claim text to search for."
        },
        "notification_destination": {
          "type": "string",
          "maxLength": 500,
          "description": "Optional change-alert destination, sent only when a scheduled check detects a change. One of: an HTTPS webhook URL (JSON POST, no API key included), a Slack Incoming Webhook URL (https://hooks.slack.com/...), or an email address as mailto:[email protected]."
        }
      },
      "additionalProperties": false
    }
    arguments 56 lines
  • run_monitor_now unknown never probed

    Immediately run a monitor's verification check outside its normal schedule. Records the result and returns whether the observed value changed since the last run. Counts against your monthly quota. Requires a free watch key or paid API key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "monitor_id"
      ],
      "properties": {
        "monitor_id": {
          "type": "string",
          "minLength": 1,
          "description": "The monitor ID returned by create_monitor."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • get_monitor_result unknown never probed

    Retrieve the most recent run results for a monitor, including change details, confidence score, evidence URLs, and any error information. Requires a free watch key or paid API key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "monitor_id"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 10,
          "maximum": 50,
          "minimum": 1,
          "description": "Maximum number of results to return, newest first."
        },
        "monitor_id": {
          "type": "string",
          "minLength": 1,
          "description": "The monitor ID to retrieve results for."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • delete_monitor unknown never probed

    Permanently delete a monitor and all its stored results. This action cannot be undone. Requires a free watch key or paid API key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "monitor_id"
      ],
      "properties": {
        "monitor_id": {
          "type": "string",
          "minLength": 1,
          "description": "The monitor ID to delete."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • create_share_link unknown never probed

    Create a read-only public link to the latest result for one of your monitors. The link contains monitor metadata and evidence, never the API key, and expires automatically. Use it to share a verified change with a teammate, customer, or agent. Requires a free watch key or paid API key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "monitor_id"
      ],
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 160,
          "description": "Optional human-readable title for the shared report."
        },
        "monitor_id": {
          "type": "string",
          "minLength": 1,
          "description": "The monitor ID whose latest evidence should be shared."
        },
        "expires_in_days": {
          "type": "integer",
          "default": 30,
          "maximum": 30,
          "minimum": 1,
          "description": "Link lifetime in days, up to 30 days."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id eb3b3a7ed8115b91.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/eb3b3a7ed8115b91/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/eb3b3a7ed8115b91/badge.svg)](https://brick.blue/agent/eb3b3a7ed8115b91?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.