CiteStamp

Citation-health over a CC0 citation graph: what supports, refutes, or cites a paper. Read-only.

Should I use this

Quality & Safety

B
Description quality
56%
Schema completeness
100%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'what_supports' description lacks action verbin what_supports
  • LOWTool 'what_refutes' description lacks action verbin what_refutes
  • LOWTool 'references_of' description lacks action verbin references_of
  • LOWTool 'edges_about' description lacks action verbin edges_about

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,367Tokens (tool definitions)
~2.7 KBTypical response size
Moderate attention impact (1.07% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "citestamp": {
      "url": "https://mcp.citestamp.com/mcp"
    }
  }
}

Remote endpoints

https://mcp.citestamp.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢what_supports(identifier, asserted_only, limit, offset)

Edges asserting or indicating that something SUPPORTS the given work or claim.

Input Schema

{
  "type": "object",
  "properties": {
    "identifier": {
      "type": "string",
      "description": "DOI, arXiv id, OpenAlex id, or internal claim id"
    },
    "asserted_only": {
      "type": "boolean",
      "description": "If true, restrict to human-signed (asserted) edges. If false (default), return both asserted and machine-inferred edges.",
      "default": false
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "default": 100,
      "description": "Maximum edges to return per tier (default 100, max 1000). Well-cited works have thousands; the response reports has_more and inferred_total so you can tell a page from the whole answer."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "How many edges to skip, for paging. Advance by the LIMIT you asked for, not by the number of results you got back — duplicates are removed after the window is taken, so a page can return fewer rows than it consumed. Keep going while has_more is true."
    }
  },
  "required": [
    "identifier"
  ]
}
🟢what_refutes(identifier, asserted_only, limit, offset)

Edges asserting or indicating that something REFUTES the given work or claim.

Input Schema

{
  "type": "object",
  "properties": {
    "identifier": {
      "type": "string",
      "description": "DOI, arXiv id, OpenAlex id, or internal claim id"
    },
    "asserted_only": {
      "type": "boolean",
      "description": "If true, restrict to human-signed (asserted) edges. If false (default), return both asserted and machine-inferred edges.",
      "default": false
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "default": 100,
      "description": "Maximum edges to return per tier (default 100, max 1000). Well-cited works have thousands; the response reports has_more and inferred_total so you can tell a page from the whole answer."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "How many edges to skip, for paging. Advance by the LIMIT you asked for, not by the number of results you got back — duplicates are removed after the window is taken, so a page can return fewer rows than it consumed. Keep going while has_more is true."
    }
  },
  "required": [
    "identifier"
  ]
}
🟢what_cites(identifier, asserted_only, limit, offset)

Works or claims that CITE the given identifier (incoming citations).

Input Schema

{
  "type": "object",
  "properties": {
    "identifier": {
      "type": "string",
      "description": "DOI, arXiv id, OpenAlex id, or internal claim id"
    },
    "asserted_only": {
      "type": "boolean",
      "description": "If true, restrict to human-signed (asserted) edges. If false (default), return both asserted and machine-inferred edges.",
      "default": false
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "default": 100,
      "description": "Maximum edges to return per tier (default 100, max 1000). Well-cited works have thousands; the response reports has_more and inferred_total so you can tell a page from the whole answer."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "How many edges to skip, for paging. Advance by the LIMIT you asked for, not by the number of results you got back — duplicates are removed after the window is taken, so a page can return fewer rows than it consumed. Keep going while has_more is true."
    }
  },
  "required": [
    "identifier"
  ]
}
🟢references_of(identifier, asserted_only, limit, offset)

What the given work CITES (its outgoing references).

Input Schema

{
  "type": "object",
  "properties": {
    "identifier": {
      "type": "string",
      "description": "DOI, arXiv id, OpenAlex id, or internal claim id"
    },
    "asserted_only": {
      "type": "boolean",
      "description": "If true, restrict to human-signed (asserted) edges. If false (default), return both asserted and machine-inferred edges.",
      "default": false
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "default": 100,
      "description": "Maximum edges to return per tier (default 100, max 1000). Well-cited works have thousands; the response reports has_more and inferred_total so you can tell a page from the whole answer."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "How many edges to skip, for paging. Advance by the LIMIT you asked for, not by the number of results you got back — duplicates are removed after the window is taken, so a page can return fewer rows than it consumed. Keep going while has_more is true."
    }
  },
  "required": [
    "identifier"
  ]
}
🟢edges_about(identifier, asserted_only, limit, offset)

Every edge touching the given work or claim, in either direction, each tagged with its trust tier (asserted|inferred) and attribution/provenance.

Input Schema

{
  "type": "object",
  "properties": {
    "identifier": {
      "type": "string",
      "description": "DOI, arXiv id, OpenAlex id, or internal claim id"
    },
    "asserted_only": {
      "type": "boolean",
      "description": "If true, restrict to human-signed (asserted) edges. If false (default), return both asserted and machine-inferred edges.",
      "default": false
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "default": 100,
      "description": "Maximum edges to return per tier (default 100, max 1000). Well-cited works have thousands; the response reports has_more and inferred_total so you can tell a page from the whole answer."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "How many edges to skip, for paging. Advance by the LIMIT you asked for, not by the number of results you got back — duplicates are removed after the window is taken, so a page can return fewer rows than it consumed. Keep going while has_more is true."
    }
  },
  "required": [
    "identifier"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools