Skip to main content
Glama

Check a citation

check_citation
Read-onlyIdempotent

Check whether one public page supports one claim. Returns verdict supported, partially_supported, unclear, or unsupported, plus score, confidence, page_title, and method. score is the share of claim words found on the page, from 0 to 1, not a legal grade. Costs 0.08 credit only after the page is fetched. invalid_url and fetch_failed are not charged. Use it with one public http or https URL and one statement. Do not use it for login pages, files, or as legal advice. A low score means few claim words appear on the page. Key: https://firm.bestsmartgoods.com/signup

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "claim": "<claim>",
      "url": "<url>"
    },
    "name": "check_citation"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesPublic http or https page. Login walls, localhost, and non-http URLs return invalid_url or fetch_failed and are not charged.
claimYesOne statement to compare with the page text. Short factual sentences score more clearly than long quotes.

Output Schema

NameRequiredDescriptionDefault
okNoFalse for invalid_url or fetch_failed. Those calls are not charged.
urlNo
claimNo
errorNoPresent only when ok is false.
scoreNoShare of claim words found on the page, from 0 to 1.
methodNo
verdictNosupported at score 0.55 or more, partially_supported at 0.30, unclear at 0.15, otherwise unsupported.
confidenceNoBetween 0.30 and 0.85, rising with score.
page_titleNoHTML title, empty when the page has none.
credits_remainingNoPresent only after a charged, successful check.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / claim / description
      Previous value: -"The statement to check against the page."New value: +"One statement to compare with the page text. Short factual sentences score more clearly than long quotes."
    • changedInput schema / properties / url / description
      Previous value: -"Public http or https page that should support the claim."New value: +"Public http or https page. Login walls, localhost, and non-http URLs return invalid_url or fetch_failed and are not charged."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "claim": {
      +      "type": "string"
      +    },
      +    "confidence": {
      +      "description": "Between 0.30 and 0.85, rising with score.",
      +      "type": "number"
      +    },
      +    "credits_remaining": {
      +      "description": "Present only after a charged, successful check.",
      +      "type": "number"
      +    },
      +    "error": {
      +      "description": "Present only when ok is false.",
      +      "enum": [
      +        "invalid_url",
      +        "fetch_failed"
      +      ],
      +      "type": "string"
      +    },
      +    "method": {
      +      "const": "heuristic",
      +      "type": "string"
      +    },
      +    "ok": {
      +      "description": "False for invalid_url or fetch_failed. Those calls are not charged.",
      +      "type": "boolean"
      +    },
      +    "page_title": {
      +      "description": "HTML title, empty when the page has none.",
      +      "type": "string"
      +    },
      +    "score": {
      +      "description": "Share of claim words found on the page, from 0 to 1.",
      +      "type": "number"
      +    },
      +    "url": {
      +      "type": "string"
      +    },
      +    "verdict": {
      +      "description": "supported at score 0.55 or more, partially_supported at 0.30, unclear at 0.15, otherwise unsupported.",
      +      "enum": [
      +        "supported",
      +        "partially_supported",
      +        "unclear",
      +        "unsupported"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say read-only, open-world, idempotent and non-destructive; the description adds genuinely new behavior — a per-call credit cost that is only charged after a successful fetch, and explicit non-charging on invalid_url and fetch_failed. That is exactly the kind of billing/auth-adjacent context annotations cannot convey. The trailing 'Key: https://firm.bestsmartgoods.com/signup' line is unexplained and injects an unrelated link, which is noise an agent could misread as operational guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Most of the text is front-loaded and earns its place — verdicts, cost, exclusions. However, the score semantics are stated twice ('share of claim words found on the page' and 'A low score means few claim words appear on the page'), and the closing 'Key:' URL is unconnected to anything and should be removed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though an output schema exists, the description covers everything an agent needs before calling: input constraints, failure modes, cost behavior, and verdict vocabulary. Nothing material is left for the agent to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already defines both parameters, and the baseline would be 3. The description still adds meaning: it restates that only one URL and one statement are accepted, and clarifies that the page must be public and non-login. Marginal but real value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb and both resources: 'Check whether one public page supports one claim.' It immediately enumerates the four possible verdicts, so an agent knows exactly what decision the tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit inclusion ('Use it with one public http or https URL and one statement') is paired with explicit exclusions ('Do not use it for login pages, files, or as legal advice'), covering the main misuse cases. With no sibling tools, no alternative routing is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.