protogrid

Search / si.claimora/claimora

Claimora

R0· no sign-in

Scientific and legal claim graph. Query claims, evidence, contradictions, and innovation flags.

v0.1.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality64needs work
Trust96of 100
Uptime, 30 days100%
Latency p50457 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "claimora": {
      "type": "http",
      "url": "https://claimora.si/mcp",
      "headers": {
        "X-Claimora-Paid-Token": "${X_CLAIMORA_PAID_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http claimora https://claimora.si/mcp --header "X-Claimora-Paid-Token: ${X_CLAIMORA_PAID_TOKEN}"
[mcp_servers.claimora]
url = "https://claimora.si/mcp"
env_http_headers = { "X-Claimora-Paid-Token" = "X_CLAIMORA_PAID_TOKEN" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "claimora": {
      "type": "remote",
      "url": "https://claimora.si/mcp",
      "enabled": true,
      "headers": {
        "X-Claimora-Paid-Token": "{env:X_CLAIMORA_PAID_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "claimora": {
      "type": "http",
      "url": "https://claimora.si/mcp",
      "headers": {
        "X-Claimora-Paid-Token": "${X_CLAIMORA_PAID_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=claimora&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vY2xhaW1vcmEuc2kvbWNwIiwiaGVhZGVycyI6eyJYLUNsYWltb3JhLVBhaWQtVG9rZW4iOiIke1hfQ0xBSU1PUkFfUEFJRF9UT0tFTn0ifX0%3D"
}
{
  "servers": {
    "claimora": {
      "type": "http",
      "url": "https://claimora.si/mcp",
      "headers": {
        "X-Claimora-Paid-Token": "${X_CLAIMORA_PAID_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "claimora": {
      "httpUrl": "https://claimora.si/mcp",
      "headers": {
        "X-Claimora-Paid-Token": "${X_CLAIMORA_PAID_TOKEN}"
      }
    }
  }
}
extensions:
  "claimora":
    enabled: true
    name: "claimora"
    type: streamable_http
    uri: "https://claimora.si/mcp"
    headers:
      "X-Claimora-Paid-Token": "${X_CLAIMORA_PAID_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${X_CLAIMORA_PAID_TOKEN}. The registry never accepts secret values.

Quality 64 / 100needs work

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene64 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length3 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: query_claims (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_evidence (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_contradictions (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 3,983 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes45 tool changes in 30 days
  • fail
    stability.rug_pull8 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 3,983 tokens to load them all · tool set 391e2cee0ebf · tools last changed 2026-11-06 · checked 2026-11-07 17:28 UTC

Tool changes

  • query_lawremoved

    List law records for one jurisdiction and area of law. Use this when you want jurisdiction-scoped records. Omitting jurisdiction returns science claims. Returns record id, status, evidence strength, a shortened excerpt, jurisdiction, and area of law. Example: query_law(jurisdiction="DE", area_of_law="data-protection", query="consent", limit=5). Example: query_law(query="transformer", limit=5).

  • search_smartchangeddescription, output schema
    before

    Find claims from a natural-language question. The central research concept and its scientific synonyms outrank incidental context words. Generic overlap that does not address the question is penalized. A keyword with no function word stays on the lexical match. A question tries its content phrases first. When that match is thin, extracted concepts, shorter phrases, and synonyms are combined and deduplicated before ranking. Exact keywords are not required. Question hits stay on strategy question. fallback is null when the content-phrase match already addressed the concept, keyword when every hit came from a literal concept or shorter phrase, and expanded when a synonym supplied a hit. Rank puts the concept above context words. Retrieval relevance stays ahead of evidence_strength, and match_reason records that the stored score is evidence_strength. A lexical phrase matches whole tokens. K17, PDAC, NCC, IIT, and LLM match the full names in the alias map. notice is no_matching_claims when nothing matches. notice is no_evidence when every returned hit has an empty excerpt. A hit with an empty excerpt says no evidence in match_reason. exploratory true keeps matches under the default relevance threshold. Each hit includes match_reason, source_url, doi, and paper_id when those are known, up to two supporting claims, and one contradicting claim when one is stored. Each related claim carries that same compact pointer. unpublished is true for a private unpublished paper. Full provenance stays on get_evidence. status_note on a consensus claim with no stored contradiction is: No stored contradiction; not independent multi-source consensus. evidence_note is: Extractor confidence in the claim statement, not study quality. integrity_warning is set when the statement unit looks truncated relative to the excerpt, or the magnitude looks extreme relative to the excerpt. The statement and the excerpt are not rewritten. A domain keeps claims whose primary domain is that value or one of its aliases. cross_domain also keeps claims from other domains that carry the domain as a secondary tag. Use this when the input is a question instead of keywords. Example: search_smart(natural_language="How do transformers handle long context?", domain="ai-ml", limit=5). Example: search_smart(natural_language="What causes LLM hallucinations in RAG systems?", limit=5).

    after · 98% of words in common

    Find claims from a natural-language question. The central research concept and its scientific synonyms outrank incidental context words. Generic overlap that does not address the question is penalized. A keyword with no function word stays on the lexical match. A question tries its content phrases first. When that match is thin, extracted concepts, shorter phrases, and synonyms are combined and deduplicated before ranking. Exact keywords are not required. Question hits stay on strategy question. fallback is null when the content-phrase match already addressed the concept, keyword when every hit came from a literal concept or shorter phrase, and expanded when a synonym supplied a hit. Rank puts the concept above context words. Retrieval relevance stays ahead of evidence_strength, and match_reason records that the stored score is evidence_strength. A lexical phrase matches whole tokens. K17, PDAC, NCC, IIT, and LLM match the full names in the alias map. notice is no_matching_claims when nothing matches. notice is no_evidence when every returned hit has an empty excerpt. A hit with an empty excerpt says no evidence in match_reason. exploratory true keeps matches under the default relevance threshold. Each hit includes match_reason, source_url, doi, and paper_id when those are known, up to two supporting claims, and one contradicting claim when one is stored. Each related claim carries that same compact pointer. unpublished is true for a private unpublished paper. Full provenance stays on get_evidence. status_note on a consensus claim with no stored contradiction is: No stored contradiction; not independent multi-source consensus. evidence_note is: Extractor confidence in the claim statement, not study quality. A previously read source role is appended when one is known. integrity_warning is set when the statement unit looks truncated relative to the excerpt, or the magnitude looks extreme relative to the excerpt. The statement and the excerpt are not rewritten. A domain keeps claims whose primary domain is that value or one of its aliases. cross_domain also keeps claims from other domains that carry the domain as a secondary tag. Use this when the input is a question instead of keywords. Example: search_smart(natural_language="How do transformers handle long context?", domain="ai-ml", limit=5). Example: search_smart(natural_language="What causes LLM hallucinations in RAG systems?", limit=5).

  • get_updateschangedoutput schema
  • get_evidencechangeddescription, output schema
    before

    Provenance for one claim. Excerpts are short unless full_text is true. unpublished is true for a private unpublished paper. The stored excerpt, page, and section stay on provenance. status_note on a consensus claim with no stored contradiction is: No stored contradiction; not independent multi-source consensus. evidence_note is: Extractor confidence in the claim statement, not study quality. integrity_warning is set when the statement unit looks truncated relative to the excerpt, or the magnitude looks extreme relative to the excerpt. The statement and the excerpt are not rewritten. Use this after a search when you have a claim id and need the papers behind it. Example: get_evidence(claim_id="claim-attention"). Example: get_evidence(claim_id="claim-attention", full_text=true).

    after · 93% of words in common

    Provenance for one claim. Excerpts are short unless full_text is true. unpublished is true for a private unpublished paper. The stored excerpt, page, and section stay on provenance. status_note on a consensus claim with no stored contradiction is: No stored contradiction; not independent multi-source consensus. evidence_note is: Extractor confidence in the claim statement, not study quality. A previously read source role is appended when one is known. integrity_warning is set when the statement unit looks truncated relative to the excerpt, or the magnitude looks extreme relative to the excerpt. The statement and the excerpt are not rewritten. Use this after a search when you have a claim id and need the papers behind it. Example: get_evidence(claim_id="claim-attention"). Example: get_evidence(claim_id="claim-attention", full_text=true).

  • query_claimschangeddescription, output schema
    before

    Search claim statements and excerpts. A domain keeps claims whose primary domain is that value or one of its aliases, such as cs.LG for ai-ml. An exact multi-token phrase matches whole tokens. K17, PDAC, NCC, IIT, and LLM match the full names in the alias map. Hits are ordered by keyword overlap, then a domain match, then evidence strength. That retrieval order stays ahead of the stored score. match_reason records that the stored score is evidence_strength. cross_domain also keeps claims from other domains that carry the domain as a secondary tag. When the query is one domain keyword and domain is omitted, claims in that domain come first. Use this when you have keywords or a domain and want the strongest matching claims. Returns claim id, status, evidence strength, a shortened excerpt, match_reason, source_url, doi, and paper_id when those are known, up to two supporting claims, and one contradicting claim when one is stored. Each related claim carries that same compact pointer. unpublished is true for a private unpublished paper. Full provenance stays on get_evidence. status_note on a consensus claim with no stored contradiction is: No stored contradiction; not independent multi-source consensus. evidence_note is: Extractor confidence in the claim statement, not study quality. integrity_warning is set when the statement unit looks truncated relative to the excerpt, or the magnitude looks extreme relative to the excerpt. The statement and the excerpt are not rewritten. Example: query_claims(query="transformer", domain="ai-ml", limit=5). Example: query_claims(query="United States", domain="data-protection", limit=5).

    after · 97% of words in common

    Search claim statements and excerpts. A domain keeps claims whose primary domain is that value or one of its aliases, such as cs.LG for ai-ml. An exact multi-token phrase matches whole tokens. K17, PDAC, NCC, IIT, and LLM match the full names in the alias map. Hits are ordered by keyword overlap, then a domain match, then evidence strength. That retrieval order stays ahead of the stored score. match_reason records that the stored score is evidence_strength. cross_domain also keeps claims from other domains that carry the domain as a secondary tag. When the query is one domain keyword and domain is omitted, claims in that domain come first. Use this when you have keywords or a domain and want the strongest matching claims. Returns claim id, status, evidence strength, a shortened excerpt, match_reason, source_url, doi, and paper_id when those are known, up to two supporting claims, and one contradicting claim when one is stored. Each related claim carries that same compact pointer. unpublished is true for a private unpublished paper. Full provenance stays on get_evidence. status_note on a consensus claim with no stored contradiction is: No stored contradiction; not independent multi-source consensus. evidence_note is: Extractor confidence in the claim statement, not study quality. A previously read source role is appended when one is known. integrity_warning is set when the statement unit looks truncated relative to the excerpt, or the magnitude looks extreme relative to the excerpt. The statement and the excerpt are not rewritten. Example: query_claims(query="transformer", domain="ai-ml", limit=5). Example: query_claims(query="United States", domain="data-protection", limit=5).

  • query_lawchangedoutput schema
  • search_smartchangedoutput schema
  • get_innovation_flagschangedoutput schema
  • get_updateschangedoutput schema
  • query_claimschangedoutput schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 96 / 100

provenance85
liveness100
freshness100
hygiene100

+repository +dns-namespace +website +reachable +uptime-100% +updated-13d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://claimora.si/mcp streamable-httpnoneyes100%457 ms2026-07-282026-11-07

Tools (7)

get_authorsList authors linked to one claim. Use this when you have a claim id and need the people linked to it. Returns author id, name, and orcid. The list is empty when none are linked. Example: get_authors(claim_id="claim-attention"). Example: get_authors(claim_id="<id from query_claims>").
get_contradictionsList claims stored as contradicting one claim. Returns each opposing claim id, status, evidence strength, and opposition strength. Example: get_contradictions(claim_id="<id from query_claims>").
get_evidenceProvenance for one claim. Excerpts are short unless full_text is true. unpublished is true for a private unpublished paper. The stored excerpt, page, and section stay on provenance. status_note on a consensus claim with no stored contradiction is: No stored contradiction; not independent multi-source consensus. evidence_note is: Extractor confidence in the claim statement, not study quality. A previously read source role is appended when one is known. integrity_warning is set when the statement unit looks truncated relative to the excerpt, or the magnitude looks extreme relative to the excerpt. The statement and the excerpt are not rewritten. Use this after a search when you have a claim id and need the papers behind it. Example: get_evidence(claim_id="claim-attention"). Example: get_evidence(claim_id="claim-attention", full_text=true).
get_innovation_flagsList innovation flags. The default sort is discovery. Use this when you want links between claims rather than the claims themselves. Pass claim_id to navigate from one claim to the flags that contain it. Each hit includes flag_type, strength, summary, the other claim ids, and those claims' primary domains. Filters are flag_type, min_strength, and cross_domain_only. The claim list is ranked by relationship strength and novelty. A path that only names the claim, a partner that repeats the claim, and a near-duplicate of a partner already returned are omitted. Discovery combines relationship strength, novelty, and conceptual overlap. Near-duplicate claims rank lower on the first page and remain in the list. sort strength orders by the stored relationship strength. Every flag includes flag_type, cross_domain, complementary, and summary. summary says why the claims are linked. complementary is a ranking hint when two independent sources share a measurable variable or process and discuss different aspects. It reuses relationship_basis, does not change flag_type, and does not state a hypothesis. A weak link stays weak. flag_type is lexical_association for shared terminology with no substantive relation, scientific_connection for a conceptual or methodological relationship, contradiction for a stored disagreement, or innovation when the claims state a mechanism that could transfer. lexical selects the same weak rows. cross_domain is true when the claims have different primary domains. It is not a flag_type and does not raise strength. Older rows may still use cross_domain or research_hypothesis. strength is computed for that pair. It is not claim evidence strength. A weak lexical link stays low and remains when min_strength is omitted or 0. Returns flag id, domain, summary, strength, flag_type, cross_domain, connected_domain, the claim ids on each path, and a claims array in that same order. Each claims item has claim_id, statement, and evidence strength. Full evidence stays on get_evidence. connected_domain is the primary domain of the claim that does not match the flag domain. It is null when the claims share a primary domain. Optional cross_domain_only, when true, returns only flags whose connected_domain is set. Optional flag_type keeps one label, for example lexical. Optional sort is discovery or strength. discovery is the default. Repeated claim paths return once, keeping the strongest flag for that pair. Example: get_innovation_flags(domain="ai-ml", min_strength=0.5, limit=10). Example: get_innovation_flags(domain="ai-ml", sort="strength", limit=10). Example: get_innovation_flags(claim_id="claim-attention", min_strength=0.5, limit=10). Example: get_innovation_flags(domain="quantum", min_strength=0, flag_type="lexical", limit=5). Example: get_innovation_flags(domain="consciousness", cross_domain_only=True, limit=10).
get_updatesList claims whose last_updated is at or after a timestamp. Use this to read claims that changed after a time you already checked. Returns claim id, status, evidence strength, a shortened excerpt, and source_url, doi, and paper_id when those are known. Example: get_updates(since="2026-01-01T00:00:00Z", domain="ai-ml", limit=20). Example: get_updates(since="2026-10-01T00:00:00Z", domain="consciousness", offset=20).
query_claimsSearch claim statements and excerpts. A domain keeps claims whose primary domain is that value or one of its aliases, such as cs.LG for ai-ml. An exact multi-token phrase matches whole tokens. K17, PDAC, NCC, IIT, and LLM match the full names in the alias map. Hits are ordered by keyword overlap, then a domain match, then evidence strength. That retrieval order stays ahead of the stored score. match_reason records that the stored score is evidence_strength. cross_domain also keeps claims from other domains that carry the domain as a secondary tag. When the query is one domain keyword and domain is omitted, claims in that domain come first. Use this when you have keywords or a domain and want the strongest matching claims. Returns claim id, status, evidence strength, a shortened excerpt, match_reason, source_url, doi, and paper_id when those are known, up to two supporting claims, and one contradicting claim when one is stored. Each related claim carries that same compact pointer. unpublished is true for a private unpublished paper. Full provenance stays on get_evidence. status_note on a consensus claim with no stored contradiction is: No stored contradiction; not independent multi-source consensus. evidence_note is: Extractor confidence in the claim statement, not study quality. A previously read source role is appended when one is known. integrity_warning is set when the statement unit looks truncated relative to the excerpt, or the magnitude looks extreme relative to the excerpt. The statement and the excerpt are not rewritten. Example: query_claims(query="transformer", domain="ai-ml", limit=5). Example: query_claims(query="United States", domain="data-protection", limit=5).
search_smartFind claims from a natural-language question. The central research concept and its scientific synonyms outrank incidental context words. Generic overlap that does not address the question is penalized. A keyword with no function word stays on the lexical match. A question tries its content phrases first. When that match is thin, extracted concepts, shorter phrases, and synonyms are combined and deduplicated before ranking. Exact keywords are not required. Question hits stay on strategy question. fallback is null when the content-phrase match already addressed the concept, keyword when every hit came from a literal concept or shorter phrase, and expanded when a synonym supplied a hit. Rank puts the concept above context words. Retrieval relevance stays ahead of evidence_strength, and match_reason records that the stored score is evidence_strength. A lexical phrase matches whole tokens. K17, PDAC, NCC, IIT, and LLM match the full names in the alias map. notice is no_matching_claims when nothing matches. notice is no_evidence when every returned hit has an empty excerpt. A hit with an empty excerpt says no evidence in match_reason. exploratory true keeps matches under the default relevance threshold. Each hit includes match_reason, source_url, doi, and paper_id when those are known, up to two supporting claims, and one contradicting claim when one is stored. Each related claim carries that same compact pointer. unpublished is true for a private unpublished paper. Full provenance stays on get_evidence. status_note on a consensus claim with no stored contradiction is: No stored contradiction; not independent multi-source consensus. evidence_note is: Extractor confidence in the claim statement, not study quality. A previously read source role is appended when one is known. integrity_warning is set when the statement unit looks truncated relative to the excerpt, or the magnitude looks extreme relative to the excerpt. The statement and the excerpt are not rewritten. A domain keeps claims whose primary domain is that value or one of its aliases. cross_domain also keeps claims from other domains that carry the domain as a secondary tag. Use this when the input is a question instead of keywords. Example: search_smart(natural_language="How do transformers handle long context?", domain="ai-ml", limit=5). Example: search_smart(natural_language="What causes LLM hallucinations in RAG systems?", limit=5).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "si.claimora/claimora",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "url": "https://claimora.si/mcp",
      "docs": "https://github.com/superexposed/claimora/blob/main/docs/mcp-public.md",
      "name": "claimora",
      "tools": [
        "query_claims",
        "get_evidence",
        "get_contradictions",
        "get_updates",
        "get_innovation_flags",
        "search_smart"
      ],
      "pricing": "free tier 10 calls/day; paid 0.01 USDC via X-Claimora-Paid-Token",
      "description": "Structured scientific and legal claim graph. Query claims, evidence, contradictions, and innovation flags."
    }
  },
  "title": "Claimora",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://claimora.si/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "X-Claimora-Paid-Token",
          "isSecret": true,
          "description": "Free tier is 10 calls per day. Paid calls are 0.01 USDC. Token from https://claimora.si/credits."
        }
      ]
    }
  ],
  "version": "0.1.0",
  "repository": {
    "url": "https://github.com/superexposed/claimora",
    "source": "github"
  },
  "websiteUrl": "https://github.com/superexposed/claimora/blob/main/docs/mcp-public.md",
  "description": "Scientific and legal claim graph. Query claims, evidence, contradictions, and innovation flags."
}