Server definition
- Hash
- sha256:aa24cf3ec69372c799988b6b1289489e598841f32c2241e4a5098c79b8bcd8cb
- What it is
- What a remote MCP server returned when asked what it offers: 19 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"url": {
"description": "Public trust, security, compliance, or policy URL to scan.",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "assess_compliance_posture",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cached": {
"description": "True when the page body came from the 5-minute cache.",
"type": "boolean"
},
"error": {
"description": "Fetch or parsing error when the page could not be analyzed.",
"type": "string"
},
"matchedSignals": {
"description": "Signal names that were detected on the page.",
"items": {
"type": "string"
},
"type": "array"
},
"pageLength": {
"description": "Size of the fetched page body in characters.",
"minimum": 0,
"type": "integer"
},
"signals": {
"additionalProperties": false,
"description": "Boolean scan results for common enterprise compliance and security signals.",
"properties": {
"dataResidency": {
"description": "True when the page references data residency, data regions, or regional storage controls.",
"type": "boolean"
},
"dpa": {
"description": "True when the page references a data processing agreement or DPA.",
"type": "boolean"
},
"encryption": {
"description": "True when the page references encryption, data encrypted at rest, or data encrypted in transit.",
"type": "boolean"
},
"gdpr": {
"description": "True when the page references GDPR or the General Data Protection Regulation.",
"type": "boolean"
},
"hipaa": {
"description": "True when the page references HIPAA compliance language.",
"type": "boolean"
},
"iso27001": {
"description": "True when the page references ISO 27001 certification or compliance language.",
"type": "boolean"
},
"scim": {
"description": "True when the page references SCIM provisioning.",
"type": "boolean"
},
"soc2": {
"description": "True when the page references SOC 2 or SOC2 compliance language.",
"type": "boolean"
},
"sso": {
"description": "True when the page references SSO or single sign-on.",
"type": "boolean"
},
"subprocessorList": {
"description": "True when the page references subprocessors or a subprocessor list.",
"type": "boolean"
}
},
"required": [
"soc2",
"iso27001",
"gdpr",
"hipaa",
"dpa",
"subprocessorList",
"sso",
"scim",
"encryption",
"dataResidency"
],
"type": "object"
},
"url": {
"description": "Compliance or trust page that was analyzed.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"url": {
"description": "Public http(s) URL or bare domain to probe. Bare domains like google.com are accepted and normalized to https:// automatically.",
"minLength": 1,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "check_endpoint",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"accessible": {
"description": "True when the endpoint returned a 2xx HTTP status.",
"type": "boolean"
},
"authRequired": {
"description": "True when the server responded with 401 or 403, which usually means credentials are required.",
"type": "boolean"
},
"contentType": {
"description": "Response Content-Type header, if present.",
"type": [
"string",
"null"
]
},
"error": {
"description": "Validation or network error when the request could not be completed.",
"type": "string"
},
"evidence": {
"additionalProperties": false,
"description": "Structured observations used to produce the verdict.",
"properties": {
"authRequired": {
"type": "boolean"
},
"contentType": {
"type": [
"string",
"null"
]
},
"error": {
"type": "string"
},
"finalUrl": {
"type": "string"
},
"rateLimited": {
"type": "boolean"
},
"redirected": {
"type": "boolean"
},
"responseTimeMs": {
"minimum": 0,
"type": "integer"
},
"status": {
"type": "integer"
}
},
"type": "object"
},
"finalUrl": {
"description": "Final response URL when the runtime exposes it.",
"type": "string"
},
"inputUrl": {
"description": "Original user input when normalization changed it, for example when https:// was added.",
"type": "string"
},
"next_step": {
"description": "Agent-readable follow-up for sources that should remain trustworthy over time.",
"type": "string"
},
"rateLimited": {
"description": "True when the server responded with 429 Too Many Requests.",
"type": "boolean"
},
"recommended_action": {
"description": "Suggested next step based only on observed response behavior.",
"enum": [
"proceed",
"proceed_with_caution",
"stop"
],
"type": "string"
},
"redirected": {
"description": "True when the fetch followed a redirect to a different final URL.",
"type": "boolean"
},
"responseTimeMs": {
"description": "Elapsed request time in milliseconds.",
"minimum": 0,
"type": "integer"
},
"sampleResponse": {
"description": "First 1,000 characters of the response body for quick inspection. Use this as a debugging hint only; it may be truncated and should not be treated as a complete page capture.",
"type": "string"
},
"status": {
"description": "HTTP status code returned by the endpoint, when a response was received.",
"type": "integer"
},
"summary": {
"description": "Short human-readable explanation of the verdict.",
"type": "string"
},
"url": {
"description": "Normalized URL that was actually fetched.",
"type": "string"
},
"verdict": {
"description": "Operational preflight verdict. It is evidence for an agent decision, not a security guarantee.",
"enum": [
"PASS",
"WARN",
"FAIL"
],
"type": "string"
}
},
"required": [
"url",
"accessible",
"verdict",
"summary",
"evidence",
"recommended_action",
"next_step"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"url": {
"description": "Public pricing or plans URL to analyze. Prefer the specific pricing page, for example https://stripe.com/pricing, rather than a generic homepage.",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "check_pricing",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cached": {
"description": "True when the page body came from the 5-minute cache instead of a new fetch.",
"type": "boolean"
},
"error": {
"description": "Fetch or parsing error when the pricing page could not be analyzed.",
"type": "string"
},
"hasFreeOption": {
"description": "True when the page contains signals that a free plan or $0 option exists somewhere on the page. This is a page-level signal, not proof that the offer is currently self-serve or globally available.",
"type": "boolean"
},
"hasFreeTrial": {
"description": "True when the page contains signals that a free trial exists somewhere on the page.",
"type": "boolean"
},
"pageLength": {
"description": "Size of the fetched page body in characters.",
"minimum": 0,
"type": "integer"
},
"plansDetected": {
"description": "Lowercased heuristic plan labels detected from the page text. They are useful hints, not authoritative plan identifiers.",
"items": {
"type": "string"
},
"type": "array"
},
"pricesFound": {
"description": "Distinct price-like strings extracted from the page text. These are not linked back to specific plans or billing conditions.",
"items": {
"type": "string"
},
"type": "array"
},
"url": {
"description": "Pricing page that was analyzed.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"packages": {
"description": "Two to ten exact package names from the same registry, for example ['react', 'vue']. Use exact registry names, not search phrases or categories.",
"items": {
"minLength": 1,
"type": "string"
},
"maxItems": 10,
"minItems": 2,
"type": "array"
},
"registry": {
"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.",
"enum": [
"npm",
"pypi"
],
"type": "string"
}
},
"required": [
"packages"
],
"type": "object"
},
"name": "compare_competitors",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"comparisons": {
"description": "Per-package lookup results returned in the same order as the input package list. Some fields only exist for npm or only for PyPI, so consumers should treat absent fields as normal.",
"items": {
"additionalProperties": false,
"properties": {
"author": {
"description": "Package author when PyPI metadata includes one.",
"type": "string"
},
"cached": {
"description": "True when the lookup came from the 5-minute cache.",
"type": "boolean"
},
"created": {
"description": "Package creation timestamp when npm provides one.",
"type": [
"string",
"null"
]
},
"description": {
"description": "Short package summary from the registry.",
"type": "string"
},
"error": {
"description": "Fetch error when registry metadata could not be retrieved for this package.",
"type": "string"
},
"found": {
"description": "True when the registry lookup succeeded and returned package metadata.",
"type": "boolean"
},
"keywords": {
"description": "Registry keywords or tags associated with the package.",
"items": {
"type": "string"
},
"type": "array"
},
"lastPublished": {
"description": "Publish timestamp of the latest version when npm provides one.",
"type": [
"string",
"null"
]
},
"latestVersion": {
"description": "Latest package version known to the registry.",
"type": "string"
},
"license": {
"description": "Package license metadata when provided by the registry.",
"type": [
"string",
"null"
]
},
"name": {
"description": "Package name that was looked up.",
"type": "string"
},
"totalVersions": {
"description": "Number of published versions when npm metadata includes a version history.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"name",
"found"
],
"type": "object"
},
"type": "array"
},
"packages": {
"description": "Package names that were requested for comparison.",
"items": {
"type": "string"
},
"type": "array"
},
"registry": {
"description": "Registry used for all comparisons.",
"enum": [
"npm",
"pypi"
],
"type": "string"
}
},
"required": [
"packages",
"registry",
"comparisons"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"pages": {
"description": "Two to five named pricing pages to compare side by side.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Short vendor or product label to use in the comparison output.",
"minLength": 1,
"type": "string"
},
"url": {
"description": "Public pricing page URL for that vendor or product.",
"format": "uri",
"type": "string"
}
},
"required": [
"name",
"url"
],
"type": "object"
},
"maxItems": 5,
"minItems": 2,
"type": "array"
}
},
"required": [
"pages"
],
"type": "object"
},
"name": "compare_pricing_pages",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"pages": {
"description": "Per-page pricing signals returned in input order.",
"items": {
"additionalProperties": false,
"properties": {
"cached": {
"description": "True when this page body came from the 5-minute cache.",
"type": "boolean"
},
"error": {
"description": "Fetch or parsing error for this specific pricing page when it could not be analyzed.",
"type": "string"
},
"hasFreeOption": {
"description": "True when this page contains visible text suggesting a free plan, free tier, or $0 option.",
"type": "boolean"
},
"hasFreeTrial": {
"description": "True when this page contains visible text suggesting a free trial.",
"type": "boolean"
},
"name": {
"description": "Short vendor or product label from the input page object.",
"type": "string"
},
"pageLength": {
"description": "Size of this fetched page body in characters.",
"minimum": 0,
"type": "integer"
},
"plansDetected": {
"description": "Lowercased heuristic plan labels detected on this page, such as free, pro, team, or enterprise.",
"items": {
"type": "string"
},
"type": "array"
},
"pricesFound": {
"description": "Distinct price-like strings extracted from this page. These are page-level hints and are not mapped to specific plans.",
"items": {
"type": "string"
},
"type": "array"
},
"url": {
"description": "Pricing page URL that was fetched for this named vendor.",
"type": "string"
}
},
"required": [
"name",
"url"
],
"type": "object"
},
"type": "array"
},
"summary": {
"additionalProperties": false,
"description": "Aggregate counts across all compared pricing pages.",
"properties": {
"pagesCompared": {
"description": "Number of pricing pages included in the comparison.",
"minimum": 0,
"type": "integer"
},
"pagesWithFreeOption": {
"description": "Number of pages with page-level text suggesting a free plan, free tier, or $0 option.",
"minimum": 0,
"type": "integer"
},
"pagesWithFreeTrial": {
"description": "Number of pages with page-level text suggesting a free trial.",
"minimum": 0,
"type": "integer"
},
"pagesWithVisiblePrices": {
"description": "Number of pages where at least one price-like string was detected.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"pagesCompared",
"pagesWithVisiblePrices",
"pagesWithFreeOption",
"pagesWithFreeTrial"
],
"type": "object"
}
},
"required": [
"pages",
"summary"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"instructions": {
"description": "Supplementary instructions. For vendor_claim: the URL to check. For custom_prompt: comma-separated keywords. Optional for other types.",
"maxLength": 1000,
"type": "string"
},
"name": {
"description": "Human-readable name for this monitor.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"notification_destination": {
"description": "Optional HTTPS webhook URL. A POST is sent only when a scheduled check detects a change; no API key is included.",
"maxLength": 500,
"type": "string"
},
"schedule": {
"default": "daily",
"description": "How often the monitor runs automatically. manual means only via run_monitor_now.",
"enum": [
"manual",
"hourly",
"daily",
"weekly"
],
"type": "string"
},
"target_type": {
"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).",
"enum": [
"url",
"pricing_page",
"package",
"endpoint",
"vendor_claim",
"custom_prompt"
],
"type": "string"
},
"target_value": {
"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.",
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"target_type",
"target_value"
],
"type": "object"
},
"name": "create_monitor",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"active_monitor_limit": {
"description": "Maximum active monitors included in the current plan.",
"type": "number"
},
"created_at": {
"description": "Creation timestamp ISO 8601.",
"type": "string"
},
"error": {
"description": "Error message if creation failed.",
"type": "string"
},
"id": {
"description": "Unique monitor ID.",
"type": "string"
},
"name": {
"description": "Monitor name.",
"type": "string"
},
"schedule": {
"description": "Monitor schedule.",
"type": "string"
},
"target_type": {
"description": "Monitor target type.",
"type": "string"
},
"target_value": {
"description": "Monitor target value.",
"type": "string"
}
},
"required": [
"id",
"name",
"target_type",
"target_value",
"schedule",
"created_at"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"expires_in_days": {
"default": 30,
"description": "Link lifetime in days, up to 30 days.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"monitor_id": {
"description": "The monitor ID whose latest evidence should be shared.",
"minLength": 1,
"type": "string"
},
"title": {
"description": "Optional human-readable title for the shared report.",
"maxLength": 160,
"type": "string"
}
},
"required": [
"monitor_id"
],
"type": "object"
},
"name": "create_share_link",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"error": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"monitor_id": {
"type": "string"
},
"report_id": {
"type": "string"
},
"share_url": {
"type": "string"
}
},
"required": [
"report_id",
"monitor_id",
"share_url",
"expires_at"
],
"type": "object"
}
},
{
"description": "Permanently delete a monitor and all its stored results. This action cannot be undone. Requires a free watch key or paid API key.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"monitor_id": {
"description": "The monitor ID to delete.",
"minLength": 1,
"type": "string"
}
},
"required": [
"monitor_id"
],
"type": "object"
},
"name": "delete_monitor",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"deleted": {
"type": "boolean"
},
"error": {
"type": "string"
},
"monitor_id": {
"type": "string"
},
"results_deleted": {
"description": "Number of result records also deleted.",
"type": "number"
}
},
"required": [
"monitor_id",
"deleted",
"results_deleted"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"query": {
"description": "Short registry search phrase to evaluate, for example 'mcp memory server' or 'edge orm'.",
"minLength": 2,
"type": "string"
},
"registry": {
"default": "npm",
"description": "Registry to search. Use 'npm' for JavaScript ecosystems and 'pypi' for Python ecosystems.",
"enum": [
"npm",
"pypi"
],
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "estimate_market",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"query": {
"description": "Search phrase that was evaluated.",
"type": "string"
},
"registry": {
"description": "Registry that was searched.",
"enum": [
"npm",
"pypi"
],
"type": "string"
},
"topResults": {
"description": "Representative top search matches that help interpret the market count.",
"items": {
"additionalProperties": false,
"properties": {
"description": {
"description": "Short package summary from registry metadata.",
"type": "string"
},
"name": {
"description": "Package name returned by the registry.",
"type": "string"
},
"score": {
"description": "Registry relevance score when npm provides one.",
"type": "string"
},
"version": {
"description": "Latest version string returned in the result payload.",
"type": "string"
}
},
"required": [
"name",
"description",
"version"
],
"type": "object"
},
"type": "array"
},
"totalResults": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Total number of matching packages reported by the registry search."
}
},
"required": [
"query",
"registry",
"totalResults",
"topResults"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"include_unchanged": {
"default": false,
"description": "When true also lists monitors with no detected changes.",
"type": "boolean"
},
"period": {
"default": "daily",
"description": "Report period. daily covers the past 24 hours, weekly covers the past 7 days.",
"enum": [
"daily",
"weekly"
],
"type": "string"
}
},
"type": "object"
},
"name": "generate_change_report",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"changes": {
"items": {
"additionalProperties": false,
"properties": {
"confidence": {
"type": [
"number",
"null"
]
},
"monitor_id": {
"type": "string"
},
"monitor_name": {
"type": "string"
},
"new_value": {
"type": [
"string",
"null"
]
},
"old_value": {
"type": [
"string",
"null"
]
},
"risk_level": {
"type": "string"
},
"run_at": {
"type": "string"
},
"target_type": {
"type": "string"
},
"target_value": {
"type": "string"
}
},
"required": [
"monitor_id",
"monitor_name",
"target_type",
"target_value",
"run_at",
"old_value",
"new_value",
"confidence",
"risk_level"
],
"type": "object"
},
"type": "array"
},
"error": {
"type": "string"
},
"failures": {
"items": {
"additionalProperties": false,
"properties": {
"error_details": {
"type": [
"string",
"null"
]
},
"monitor_id": {
"type": "string"
},
"monitor_name": {
"type": "string"
},
"run_at": {
"type": "string"
}
},
"required": [
"monitor_id",
"monitor_name",
"run_at",
"error_details"
],
"type": "object"
},
"type": "array"
},
"from": {
"type": "string"
},
"period": {
"type": "string"
},
"recommended_actions": {
"items": {
"type": "string"
},
"type": "array"
},
"summary": {
"additionalProperties": false,
"properties": {
"changes_detected": {
"type": "number"
},
"failed_checks": {
"type": "number"
},
"monitors_run": {
"type": "number"
},
"unchanged": {
"type": "number"
}
},
"required": [
"monitors_run",
"changes_detected",
"failed_checks",
"unchanged"
],
"type": "object"
},
"to": {
"type": "string"
}
},
"required": [
"period",
"from",
"to",
"summary",
"changes",
"failures",
"recommended_actions"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"limit": {
"default": 10,
"description": "Maximum number of results to return, newest first.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"monitor_id": {
"description": "The monitor ID to retrieve results for.",
"minLength": 1,
"type": "string"
}
},
"required": [
"monitor_id"
],
"type": "object"
},
"name": "get_monitor_result",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"error": {
"type": "string"
},
"monitor_id": {
"type": "string"
},
"results": {
"items": {
"additionalProperties": false,
"properties": {
"changed": {
"type": "boolean"
},
"confidence": {
"type": [
"number",
"null"
]
},
"error_details": {
"type": [
"string",
"null"
]
},
"evidence": {
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"type": "string"
},
"new_value": {
"type": [
"string",
"null"
]
},
"old_value": {
"type": [
"string",
"null"
]
},
"run_at": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"id",
"status",
"changed",
"old_value",
"new_value",
"confidence",
"evidence",
"error_details",
"run_at"
],
"type": "object"
},
"type": "array"
},
"total": {
"type": "number"
}
},
"required": [
"monitor_id",
"results",
"total"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"url": {
"description": "Public http(s) URL or bare domain to inspect. Bare domains are normalized to https:// automatically.",
"minLength": 1,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "inspect_security_headers",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"accessible": {
"description": "True when the endpoint returned an HTTP response.",
"type": "boolean"
},
"error": {
"description": "Validation or network error when the request could not be completed.",
"type": "string"
},
"evidence": {
"additionalProperties": false,
"description": "Structured header observations used to produce the verdict.",
"properties": {
"error": {
"type": "string"
},
"https": {
"type": "boolean"
},
"missingRecommended": {
"items": {
"type": "string"
},
"type": "array"
},
"presentCount": {
"minimum": 0,
"type": "integer"
},
"score": {
"enum": [
"strong",
"moderate",
"weak"
],
"type": "string"
},
"status": {
"type": "integer"
}
},
"required": [
"https"
],
"type": "object"
},
"headers": {
"additionalProperties": false,
"description": "Tracked response headers and their raw values when present.",
"properties": {
"contentSecurityPolicy": {
"type": [
"string",
"null"
]
},
"crossOriginOpenerPolicy": {
"type": [
"string",
"null"
]
},
"crossOriginResourcePolicy": {
"type": [
"string",
"null"
]
},
"permissionsPolicy": {
"type": [
"string",
"null"
]
},
"referrerPolicy": {
"type": [
"string",
"null"
]
},
"strictTransportSecurity": {
"type": [
"string",
"null"
]
},
"xContentTypeOptions": {
"type": [
"string",
"null"
]
},
"xFrameOptions": {
"type": [
"string",
"null"
]
}
},
"required": [
"strictTransportSecurity",
"contentSecurityPolicy",
"xFrameOptions",
"referrerPolicy",
"permissionsPolicy",
"xContentTypeOptions",
"crossOriginOpenerPolicy",
"crossOriginResourcePolicy"
],
"type": "object"
},
"https": {
"description": "True when the normalized URL used https.",
"type": "boolean"
},
"inputUrl": {
"description": "Original user input when normalization changed it.",
"type": "string"
},
"missingRecommended": {
"description": "Tracked headers that were not present on the response.",
"items": {
"type": "string"
},
"type": "array"
},
"next_step": {
"description": "Agent-readable follow-up for sources that should be checked repeatedly.",
"type": "string"
},
"presentCount": {
"description": "Number of tracked security headers that were present.",
"minimum": 0,
"type": "integer"
},
"recommended_action": {
"description": "Suggested next step; not a security guarantee.",
"enum": [
"proceed",
"proceed_with_caution",
"stop"
],
"type": "string"
},
"score": {
"description": "Heuristic security-header score based on how many tracked headers were present.",
"enum": [
"strong",
"moderate",
"weak"
],
"type": "string"
},
"status": {
"description": "HTTP status code returned by the endpoint.",
"type": "integer"
},
"summary": {
"description": "Short human-readable explanation of the verdict.",
"type": "string"
},
"url": {
"description": "Normalized URL that was fetched.",
"type": "string"
},
"verdict": {
"description": "Header preflight verdict based on reachability, HTTPS, and tracked header presence.",
"enum": [
"PASS",
"WARN",
"FAIL"
],
"type": "string"
}
},
"required": [
"url",
"accessible",
"https",
"verdict",
"summary",
"evidence",
"recommended_action",
"next_step"
],
"type": "object"
}
},
{
"description": "List all monitors owned by this API key, with last run status and schedule. Requires a free watch key or paid API key.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"active_only": {
"default": true,
"description": "When true returns only active monitors. Set false to include paused monitors.",
"type": "boolean"
}
},
"type": "object"
},
"name": "list_monitors",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"active_monitor_limit": {
"description": "Maximum active monitors included in the current plan.",
"type": "number"
},
"error": {
"type": "string"
},
"monitors": {
"description": "List of monitors belonging to this API key.",
"items": {
"additionalProperties": false,
"properties": {
"active": {
"type": "boolean"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"last_run_at": {
"type": [
"string",
"null"
]
},
"last_run_status": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"schedule": {
"type": "string"
},
"target_type": {
"type": "string"
},
"target_value": {
"type": "string"
}
},
"required": [
"id",
"name",
"target_type",
"target_value",
"schedule",
"last_run_at",
"last_run_status",
"created_at",
"active"
],
"type": "object"
},
"type": "array"
},
"remaining_active_slots": {
"description": "Active monitor slots remaining for this API key.",
"type": "number"
},
"total": {
"description": "Total number of monitors returned.",
"type": "number"
}
},
"required": [
"monitors",
"total",
"active_monitor_limit",
"remaining_active_slots"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "list_resources",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"activationPath": {
"description": "Agent-readable path from a free proof to persistent monitoring.",
"items": {
"type": "string"
},
"type": "array"
},
"freeTools": {
"description": "Tools available in the free tier with no API key required.",
"items": {
"type": "string"
},
"type": "array"
},
"monitorTools": {
"description": "Monitor management tools requiring team API key.",
"items": {
"type": "string"
},
"type": "array"
},
"paidTools": {
"description": "Tools requiring team API key or agentic payment.",
"items": {
"type": "string"
},
"type": "array"
},
"recommendedFirstTool": {
"description": "Best first tool for proving recurring value before checkout.",
"type": "string"
},
"serverVersion": {
"description": "Current server version.",
"type": "string"
}
},
"required": [
"freeTools",
"paidTools",
"monitorTools",
"serverVersion",
"recommendedFirstTool",
"activationPath"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"url": {
"description": "Public http(s) URL or bare domain to preflight.",
"minLength": 1,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "preflight_endpoint",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"evidence": {
"additionalProperties": false,
"description": "Evidence from the endpoint and security-header checks.",
"properties": {
"endpoint": {
"additionalProperties": {},
"type": "object"
},
"securityHeaders": {
"additionalProperties": {},
"type": "object"
}
},
"required": [
"endpoint",
"securityHeaders"
],
"type": "object"
},
"next_step": {
"description": "Concrete follow-up after reviewing the evidence.",
"type": "string"
},
"recommended_action": {
"description": "Suggested next step.",
"enum": [
"proceed",
"proceed_with_caution",
"stop"
],
"type": "string"
},
"summary": {
"description": "Short explanation of the combined verdict.",
"type": "string"
},
"url": {
"description": "Normalized URL that was checked.",
"type": "string"
},
"verdict": {
"description": "Combined preflight verdict.",
"enum": [
"PASS",
"WARN",
"FAIL"
],
"type": "string"
}
},
"required": [
"url",
"verdict",
"summary",
"evidence",
"recommended_action",
"next_step"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"instructions": {
"description": "For vendor_claim, the public evidence URL. For custom_prompt, comma-separated keywords.",
"maxLength": 1000,
"type": "string"
},
"target_type": {
"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.",
"enum": [
"url",
"endpoint",
"pricing_page",
"package",
"vendor_claim",
"custom_prompt"
],
"type": "string"
},
"target_value": {
"description": "Public URL, package identifier, or vendor claim to baseline, depending on target_type.",
"minLength": 1,
"type": "string"
}
},
"required": [
"target_type",
"target_value"
],
"type": "object"
},
"name": "preview_monitor",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agent_next_action": {
"type": "string"
},
"baseline": {},
"confidence": {
"type": "number"
},
"error": {
"type": "string"
},
"evidence": {
"items": {
"type": "string"
},
"type": "array"
},
"persistence": {
"const": "preview_only",
"type": "string"
},
"pricing_url": {
"type": "string"
},
"recommended_schedule": {
"enum": [
"hourly",
"daily",
"weekly"
],
"type": "string"
},
"status": {
"enum": [
"baseline_ready",
"error"
],
"type": "string"
},
"target_type": {
"type": "string"
},
"target_value": {
"type": "string"
},
"upgrade_tool": {
"const": "create_monitor",
"type": "string"
}
},
"required": [
"status",
"target_type",
"target_value",
"evidence",
"confidence",
"recommended_schedule",
"agent_next_action",
"persistence",
"upgrade_tool",
"pricing_url"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"monitor_id": {
"description": "The monitor ID returned by create_monitor.",
"minLength": 1,
"type": "string"
}
},
"required": [
"monitor_id"
],
"type": "object"
},
"name": "run_monitor_now",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"changed": {
"type": "boolean"
},
"confidence": {
"type": [
"number",
"null"
]
},
"error": {
"type": "string"
},
"evidence": {
"items": {
"type": "string"
},
"type": "array"
},
"monitor_id": {
"type": "string"
},
"new_value": {
"type": [
"string",
"null"
]
},
"old_value": {
"type": [
"string",
"null"
]
},
"result_id": {
"type": "string"
},
"run_at": {
"type": "string"
},
"status": {
"enum": [
"changed",
"unchanged",
"error"
],
"type": "string"
}
},
"required": [
"monitor_id",
"result_id",
"status",
"changed",
"old_value",
"new_value",
"confidence",
"evidence",
"run_at"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"hypothesis": {
"description": "Claim to test, for example 'there are fewer than 50 MCP email servers on npm'.",
"minLength": 5,
"type": "string"
},
"tests": {
"description": "Ordered list of one to ten checks to run. Each test object uses only the fields required by its type.",
"items": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"description": {
"description": "Short explanation of what this endpoint check is meant to prove.",
"minLength": 3,
"type": "string"
},
"type": {
"const": "endpoint_exists",
"description": "Perform one unauthenticated GET request and pass when the endpoint returns a 2xx HTTP status.",
"type": "string"
},
"url": {
"description": "Public URL to probe, for example https://example.com.",
"format": "uri",
"type": "string"
}
},
"required": [
"description",
"type",
"url"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"description": {
"description": "Short explanation of what this npm lower-bound count check is meant to prove.",
"minLength": 3,
"type": "string"
},
"query": {
"description": "npm search phrase to count, for example 'mcp email server'.",
"minLength": 2,
"type": "string"
},
"threshold": {
"description": "Lower bound that the npm search result count must exceed.",
"minimum": 0,
"type": "integer"
},
"type": {
"const": "npm_count_above",
"description": "Search npm and pass when the reported result count is strictly greater than the threshold.",
"type": "string"
}
},
"required": [
"description",
"type",
"query",
"threshold"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"description": {
"description": "Short explanation of what this npm upper-bound count check is meant to prove.",
"minLength": 3,
"type": "string"
},
"query": {
"description": "npm search phrase to count, for example 'business verification mcp'.",
"minLength": 2,
"type": "string"
},
"threshold": {
"description": "Upper bound that the npm search result count must stay below.",
"minimum": 0,
"type": "integer"
},
"type": {
"const": "npm_count_below",
"description": "Search npm and pass when the reported result count is strictly less than the threshold.",
"type": "string"
}
},
"required": [
"description",
"type",
"query",
"threshold"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"description": {
"description": "Short explanation of what this response-content check is meant to prove.",
"minLength": 3,
"type": "string"
},
"substring": {
"description": "Exact case-sensitive text to search for in the fetched response body.",
"minLength": 1,
"type": "string"
},
"type": {
"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.",
"type": "string"
},
"url": {
"description": "Public URL whose response body should contain the expected text.",
"format": "uri",
"type": "string"
}
},
"required": [
"description",
"type",
"url",
"substring"
],
"type": "object"
}
]
},
"maxItems": 10,
"minItems": 1,
"type": "array"
}
},
"required": [
"hypothesis",
"tests"
],
"type": "object"
},
"name": "test_hypothesis",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"hypothesis": {
"description": "Hypothesis that was evaluated.",
"type": "string"
},
"tests": {
"description": "Per-test execution results in input order.",
"items": {
"additionalProperties": false,
"properties": {
"actual": {
"description": "Observed value or diagnostic string that explains the result. The format varies by test type and is meant for human interpretation, not strict machine parsing.",
"type": [
"string",
"number",
"null"
]
},
"description": {
"description": "Human-readable explanation of the check.",
"type": "string"
},
"passed": {
"description": "True when the test condition was satisfied.",
"type": "boolean"
},
"type": {
"description": "Test type that was executed.",
"enum": [
"endpoint_exists",
"npm_count_above",
"npm_count_below",
"response_contains"
],
"type": "string"
}
},
"required": [
"description",
"type",
"passed",
"actual"
],
"type": "object"
},
"type": "array"
},
"verdict": {
"additionalProperties": false,
"description": "High-level verdict for the hypothesis.",
"properties": {
"failed": {
"description": "Number of tests that failed.",
"minimum": 0,
"type": "integer"
},
"passed": {
"description": "Number of tests that passed.",
"minimum": 0,
"type": "integer"
},
"summary": {
"description": "Aggregate verdict across the full test plan: all pass => SUPPORTED, none pass => REFUTED, otherwise PARTIALLY SUPPORTED.",
"enum": [
"SUPPORTED",
"REFUTED",
"PARTIALLY SUPPORTED"
],
"type": "string"
}
},
"required": [
"passed",
"failed",
"summary"
],
"type": "object"
}
},
"required": [
"hypothesis",
"tests",
"verdict"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"claim": {
"description": "Plain-language claim to verify, for example 'AWS Business support includes 24/7 phone support'.",
"minLength": 5,
"type": "string"
},
"evidence_urls": {
"description": "One to ten public documentation, pricing, policy, or support URLs that are likely to contain direct evidence for the claim.",
"items": {
"format": "uri",
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"keywords": {
"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.",
"items": {
"minLength": 1,
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
}
},
"required": [
"claim",
"evidence_urls",
"keywords"
],
"type": "object"
},
"name": "verify_claim",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"claim": {
"description": "Claim that was evaluated.",
"type": "string"
},
"sources": {
"description": "Per-source evidence results.",
"items": {
"additionalProperties": false,
"properties": {
"accessible": {
"description": "True when the evidence page could be fetched.",
"type": "boolean"
},
"cached": {
"description": "True when the page body came from the 5-minute cache.",
"type": "boolean"
},
"error": {
"description": "Fetch error when the evidence page could not be checked.",
"type": "string"
},
"keywordsMatched": {
"description": "Subset of supplied keywords that were found on the page.",
"items": {
"type": "string"
},
"type": "array"
},
"keywordsTotal": {
"description": "Total number of keywords the tool looked for on this page.",
"minimum": 0,
"type": "integer"
},
"matchRatio": {
"description": "Matched-keyword ratio for this source, from 0 to 1.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"supports": {
"description": "True when the page met the current support threshold of at least half of the supplied keywords.",
"type": "boolean"
},
"url": {
"description": "Evidence URL that was checked.",
"type": "string"
}
},
"required": [
"url",
"accessible",
"supports"
],
"type": "object"
},
"type": "array"
},
"verdict": {
"additionalProperties": false,
"description": "Aggregate verdict across all supplied sources.",
"properties": {
"confidence": {
"description": "Share of sources that supported the claim.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"contradicting": {
"description": "Number of sources not marked as supporting the claim.",
"minimum": 0,
"type": "integer"
},
"summary": {
"description": "High-level verdict derived from the supporting-source ratio: all sources supporting => CONFIRMED, none => UNCONFIRMED, majority => LIKELY TRUE, otherwise LIKELY FALSE.",
"enum": [
"CONFIRMED",
"UNCONFIRMED",
"LIKELY TRUE",
"LIKELY FALSE"
],
"type": "string"
},
"supporting": {
"description": "Number of sources marked as supporting the claim.",
"minimum": 0,
"type": "integer"
},
"total": {
"description": "Total number of evidence sources checked.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"supporting",
"contradicting",
"total",
"confidence",
"summary"
],
"type": "object"
}
},
"required": [
"claim",
"sources",
"verdict"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:aa24cf3ec69372c799988b6b1289489e598841f32c2241e4a5098c79b8bcd8cb | sha256sum