Skip to main content
Glama

Ground Truth - Fresh Evidence for AI Agents

Server Details

Keep AI answers fresh with free source previews, scheduled monitoring, evidence history, and alerts.

Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
50.2% over 58 days
Last Tested
Transport
Streamable HTTP
URL
Server Listing
ground-truth-mcp

TDQS

A4.1/5.0

Scored across 19 tools

Disambiguation3/5

Several tools have closely related scopes, especially check_endpoint vs preflight_endpoint vs inspect_security_headers, and verify_claim vs test_hypothesis. The descriptions provide enough selection cues to disambiguate most cases, but an agent could still misselect between the overlapping URL-checking and verification tools.

Naming Consistency5/5

All tool names follow a strict snake_case verb_noun pattern such as list_monitors, create_monitor, delete_monitor, and compare_pricing_pages. The naming is highly predictable and makes the tool surface easy to navigate.

Tool Count4/5

At 19 tools, the surface is slightly heavy, but the count is justified by two clear clusters: one-off verification tools and persistent monitor lifecycle tools. Each tool has a distinct responsibility, so the set does not feel padded or redundant.

Completeness3/5

The one-off verification coverage is broad, including URLs, pricing, compliance, packages, and claims. However, the monitor lifecycle lacks an update or pause operation, so changing a monitor requires deleting and recreating it, which loses stored history.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedcreate_monitor1 field changed
      • changedOutput schema / properties / active_monitor_limit / description
        Previous value: -"Maximum active monitors included in the paid plan."New value: +"Maximum active monitors included in the current plan."
    • Changedlist_monitors1 field changed
      • changedOutput schema / properties / active_monitor_limit / description
        Previous value: -"Maximum active monitors included in the paid plan."New value: +"Maximum active monitors included in the current plan."
  2. 4 tool updates
    • Changedcheck_endpoint2 fields changed
      • addedOutput schema / properties / next_step
        Added value: +{
        +  "description": "Agent-readable follow-up for sources that should remain trustworthy over time.",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "url",
        -  "accessible",
        -  "verdict",
        -  "summary",
        -  "evidence",
        -  "recommended_action"
        -]New value: +[
        +  "url",
        +  "accessible",
        +  "verdict",
        +  "summary",
        +  "evidence",
        +  "recommended_action",
        +  "next_step"
        +]
    • Changedinspect_security_headers2 fields changed
      • addedOutput schema / properties / next_step
        Added value: +{
        +  "description": "Agent-readable follow-up for sources that should be checked repeatedly.",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "url",
        -  "accessible",
        -  "https",
        -  "verdict",
        -  "summary",
        -  "evidence",
        -  "recommended_action"
        -]New value: +[
        +  "url",
        +  "accessible",
        +  "https",
        +  "verdict",
        +  "summary",
        +  "evidence",
        +  "recommended_action",
        +  "next_step"
        +]
    • Changedlist_resources3 fields changed
      • addedOutput schema / properties / activationPath
        Added value: +{
        +  "description": "Agent-readable path from a free proof to persistent monitoring.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / recommendedFirstTool
        Added value: +{
        +  "description": "Best first tool for proving recurring value before checkout.",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "freeTools",
        -  "paidTools",
        -  "monitorTools",
        -  "serverVersion"
        -]New value: +[
        +  "freeTools",
        +  "paidTools",
        +  "monitorTools",
        +  "serverVersion",
        +  "recommendedFirstTool",
        +  "activationPath"
        +]
    • Addedpreview_monitor
  3. 3 tool updates
    • Changedcreate_monitor2 fields changed
      • changedInput schema / properties / notification_destination / description
        Previous value: -"Optional destination reserved for a future alert-delivery integration."New value: +"Optional HTTPS webhook URL. A POST is sent only when a scheduled check detects a change; no API key is included."
      • addedOutput schema / properties / active_monitor_limit
        Added value: +{
        +  "description": "Maximum active monitors included in the paid plan.",
        +  "type": "number"
        +}
    • Addedcreate_share_link
    • Changedlist_monitors3 fields changed
      • addedOutput schema / properties / active_monitor_limit
        Added value: +{
        +  "description": "Maximum active monitors included in the paid plan.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / remaining_active_slots
        Added value: +{
        +  "description": "Active monitor slots remaining for this API key.",
        +  "type": "number"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "monitors",
        -  "total"
        -]New value: +[
        +  "monitors",
        +  "total",
        +  "active_monitor_limit",
        +  "remaining_active_slots"
        +]
  4. 1 tool update
    • Changedpreflight_endpoint2 fields changed
      • addedOutput schema / properties / next_step
        Added value: +{
        +  "description": "Concrete follow-up after reviewing the evidence.",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "url",
        -  "verdict",
        -  "summary",
        -  "evidence",
        -  "recommended_action"
        -]New value: +[
        +  "url",
        +  "verdict",
        +  "summary",
        +  "evidence",
        +  "recommended_action",
        +  "next_step"
        +]
  5. 3 tool updates
    • Changedcheck_endpoint7 fields changed
      • addedOutput schema / properties / evidence
        Added value: +{
        +  "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"
        +}
      • addedOutput schema / properties / finalUrl
        Added value: +{
        +  "description": "Final response URL when the runtime exposes it.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / recommended_action
        Added value: +{
        +  "description": "Suggested next step based only on observed response behavior.",
        +  "enum": [
        +    "proceed",
        +    "proceed_with_caution",
        +    "stop"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / redirected
        Added value: +{
        +  "description": "True when the fetch followed a redirect to a different final URL.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / summary
        Added value: +{
        +  "description": "Short human-readable explanation of the verdict.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / verdict
        Added value: +{
        +  "description": "Operational preflight verdict. It is evidence for an agent decision, not a security guarantee.",
        +  "enum": [
        +    "PASS",
        +    "WARN",
        +    "FAIL"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "url",
        -  "accessible"
        -]New value: +[
        +  "url",
        +  "accessible",
        +  "verdict",
        +  "summary",
        +  "evidence",
        +  "recommended_action"
        +]
    • Changedinspect_security_headers5 fields changed
      • addedOutput schema / properties / evidence
        Added value: +{
        +  "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"
        +}
      • addedOutput schema / properties / recommended_action
        Added value: +{
        +  "description": "Suggested next step; not a security guarantee.",
        +  "enum": [
        +    "proceed",
        +    "proceed_with_caution",
        +    "stop"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / summary
        Added value: +{
        +  "description": "Short human-readable explanation of the verdict.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / verdict
        Added value: +{
        +  "description": "Header preflight verdict based on reachability, HTTPS, and tracked header presence.",
        +  "enum": [
        +    "PASS",
        +    "WARN",
        +    "FAIL"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "url",
        -  "accessible",
        -  "https"
        -]New value: +[
        +  "url",
        +  "accessible",
        +  "https",
        +  "verdict",
        +  "summary",
        +  "evidence",
        +  "recommended_action"
        +]
    • Addedpreflight_endpoint
  6. 1 tool update
    • Changedcreate_monitor1 field changed
      • changedInput schema / properties / notification_destination / description
        Previous value: -"Optional destination for change alerts (email or webhook URL). Stored for future use."New value: +"Optional destination reserved for a future alert-delivery integration."
  7. 1 tool update
    • Addedlist_resources
  8. 6 tool updates
    • Addedcreate_monitor
    • Addeddelete_monitor
    • Addedgenerate_change_report
    • Addedget_monitor_result
    • Addedlist_monitors
    • Addedrun_monitor_now
  9. 1 tool update
    • Changedtest_hypothesis1 field changed
      • changedInput schema / properties / tests / items / anyOf
        Previous value: -[
        -  {
        -    "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://api.github.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"
        -  }
        -]New value: +[
        +  {
        +    "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"
        +  }
        +]
  10. 3 tool updates
    • Changedassess_compliance_posture10 fields changed
      • addedOutput schema / properties / signals / properties / dataResidency / description
        Added value: +"True when the page references data residency, data regions, or regional storage controls."
      • addedOutput schema / properties / signals / properties / dpa / description
        Added value: +"True when the page references a data processing agreement or DPA."
      • addedOutput schema / properties / signals / properties / encryption / description
        Added value: +"True when the page references encryption, data encrypted at rest, or data encrypted in transit."
      • addedOutput schema / properties / signals / properties / gdpr / description
        Added value: +"True when the page references GDPR or the General Data Protection Regulation."
      • addedOutput schema / properties / signals / properties / hipaa / description
        Added value: +"True when the page references HIPAA compliance language."
      • addedOutput schema / properties / signals / properties / iso27001 / description
        Added value: +"True when the page references ISO 27001 certification or compliance language."
      • addedOutput schema / properties / signals / properties / scim / description
        Added value: +"True when the page references SCIM provisioning."
      • addedOutput schema / properties / signals / properties / soc2 / description
        Added value: +"True when the page references SOC 2 or SOC2 compliance language."
      • addedOutput schema / properties / signals / properties / sso / description
        Added value: +"True when the page references SSO or single sign-on."
      • addedOutput schema / properties / signals / properties / subprocessorList / description
        Added value: +"True when the page references subprocessors or a subprocessor list."
    • Changedcheck_endpoint1 field changed
      • changedOutput schema / properties / sampleResponse / description
        Previous value: -"First 1,000 characters of the response body for quick inspection."New value: +"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."
    • Changedcompare_pricing_pages13 fields changed
      • addedOutput schema / properties / pages / items / properties / cached / description
        Added value: +"True when this page body came from the 5-minute cache."
      • addedOutput schema / properties / pages / items / properties / error / description
        Added value: +"Fetch or parsing error for this specific pricing page when it could not be analyzed."
      • addedOutput schema / properties / pages / items / properties / hasFreeOption / description
        Added value: +"True when this page contains visible text suggesting a free plan, free tier, or $0 option."
      • addedOutput schema / properties / pages / items / properties / hasFreeTrial / description
        Added value: +"True when this page contains visible text suggesting a free trial."
      • addedOutput schema / properties / pages / items / properties / name / description
        Added value: +"Short vendor or product label from the input page object."
      • addedOutput schema / properties / pages / items / properties / pageLength / description
        Added value: +"Size of this fetched page body in characters."
      • addedOutput schema / properties / pages / items / properties / plansDetected / description
        Added value: +"Lowercased heuristic plan labels detected on this page, such as free, pro, team, or enterprise."
      • addedOutput schema / properties / pages / items / properties / pricesFound / description
        Added value: +"Distinct price-like strings extracted from this page. These are page-level hints and are not mapped to specific plans."
      • addedOutput schema / properties / pages / items / properties / url / description
        Added value: +"Pricing page URL that was fetched for this named vendor."
      • addedOutput schema / properties / summary / properties / pagesCompared / description
        Added value: +"Number of pricing pages included in the comparison."
      • addedOutput schema / properties / summary / properties / pagesWithFreeOption / description
        Added value: +"Number of pages with page-level text suggesting a free plan, free tier, or $0 option."
      • addedOutput schema / properties / summary / properties / pagesWithFreeTrial / description
        Added value: +"Number of pages with page-level text suggesting a free trial."
      • addedOutput schema / properties / summary / properties / pagesWithVisiblePrices / description
        Added value: +"Number of pages where at least one price-like string was detected."
  11. 9 tool updates
    • First observedassess_compliance_posture
    • First observedcheck_endpoint
    • First observedcheck_pricing
    • First observedcompare_competitors
    • First observedcompare_pricing_pages
    • First observedestimate_market
    • First observedinspect_security_headers
    • First observedtest_hypothesis
    • First observedverify_claim

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Evidence-backed web research for AI agents. Real-time search with cited claims, confidence scores, and compare mode showing raw LLM hallucination vs evidence-backed answers.
    5
    20
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables grounded, dated research from a curated AI-knowledge repository, offering free BM25 retrieval and a research loop that combines the knowledge base, curated sources, and the open web with tiered citations.
    2
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents and RAG pipelines with production-grade web search, deep research, news, academic, extraction, crawling, and source verification tools. Enables citation-anchored, deduplicated, fresh, and security-hardened evidence gathering from across the web.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources