Claimora
Scientific and legal claim graph. Query claims, evidence, contradictions, and innovation flags.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"claimora": {
"url": "https://claimora.si/mcp"
}
}
}遠端端點
https://claimora.si/mcpstreamable-http它能做什麼
工具清單
工具(8)
🟢query_claims(query, domain, filters, limit, offset)
Search claim statements and excerpts, strongest matches first. Use this when you have keywords or a domain and want the strongest matching claims. Returns claim id, status, evidence strength, and a shortened excerpt. Example: query_claims(query="transformer", domain="ai-ml", limit=5). Example: query_claims(query="United States", domain="data-protection", limit=5).
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"description": "Text matched against the claim statement and its excerpt. Example: transformer.",
"examples": [
"transformer"
],
"title": "Query",
"type": "string"
},
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict results to one domain. Example: ai-ml.",
"examples": [
"ai-ml"
],
"title": "Domain"
},
"filters": {
"anyOf": [
{
"$ref": "#/$defs/ClaimFilters"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional status, minimum evidence strength, and assertion type. Example: {\"status\": \"consensus\", \"min_strength\": 0.6}.",
"examples": [
{
"min_strength": 0.6,
"status": "consensus"
}
]
},
"limit": {
"default": 20,
"description": "Page size. Example: 5.",
"examples": [
5
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of hits to skip. Example: 0.",
"examples": [
0
],
"minimum": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"query"
],
"$defs": {
"AssertionType": {
"enum": [
"asserted",
"hedged",
"conditional"
],
"title": "AssertionType",
"type": "string"
},
"ClaimFilters": {
"description": "Optional status, strength, and assertion type for a claim search.",
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/ClaimStatus"
},
{
"type": "null"
}
],
"default": null,
"description": "Keep one status: consensus, contested, or outdated. Example: consensus.",
"examples": [
"consensus"
]
},
"min_strength": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop claims below this evidence strength, from 0 to 1. Example: 0.6.",
"examples": [
0.6
],
"title": "Min Strength"
},
"assertion_type": {
"anyOf": [
{
"$ref": "#/$defs/AssertionType"
},
{
"type": "null"
}
],
"default": null,
"description": "Keep one assertion type: asserted, hedged, or conditional. Example: asserted.",
"examples": [
"asserted"
]
}
},
"title": "ClaimFilters",
"type": "object"
},
"ClaimStatus": {
"enum": [
"consensus",
"contested",
"outdated"
],
"title": "ClaimStatus",
"type": "string"
}
},
"title": "query_claimsArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"claims": {
"items": {
"$ref": "#/$defs/ClaimHit"
},
"title": "Claims",
"type": "array"
},
"page": {
"$ref": "#/$defs/Page"
}
},
"required": [
"claims",
"page"
],
"$defs": {
"AssertionType": {
"enum": [
"asserted",
"hedged",
"conditional"
],
"title": "AssertionType",
"type": "string"
},
"ClaimHit": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"statement": {
"title": "Statement",
"type": "string"
},
"domain": {
"title": "Domain",
"type": "string"
},
"status": {
"$ref": "#/$defs/ClaimStatus"
},
"evidence_strength": {
"title": "Evidence Strength",
"type": "number"
},
"assertion_type": {
"$ref": "#/$defs/AssertionType"
},
"excerpt": {
"title": "Excerpt",
"type": "string"
}
},
"required": [
"id",
"statement",
"domain",
"status",
"evidence_strength",
"assertion_type",
"excerpt"
],
"title": "ClaimHit",
"type": "object"
},
"ClaimStatus": {
"enum": [
"consensus",
"contested",
"outdated"
],
"title": "ClaimStatus",
"type": "string"
},
"Page": {
"properties": {
"limit": {
"title": "Limit",
"type": "integer"
},
"offset": {
"title": "Offset",
"type": "integer"
},
"returned": {
"title": "Returned",
"type": "integer"
},
"total": {
"title": "Total",
"type": "integer"
}
},
"required": [
"limit",
"offset",
"returned",
"total"
],
"title": "Page",
"type": "object"
}
},
"title": "QueryClaimsResult"
}🟢get_evidence(claim_id, full_text)
Provenance for one claim. Excerpts are short unless full_text is true. 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).
輸入結構描述
{
"type": "object",
"properties": {
"claim_id": {
"description": "Claim id returned by a search tool. Example: claim-attention.",
"examples": [
"claim-attention"
],
"title": "Claim Id",
"type": "string"
},
"full_text": {
"default": false,
"description": "Return stored excerpts without shortening. Example: false.",
"examples": [
false
],
"title": "Full Text",
"type": "boolean"
}
},
"required": [
"claim_id"
],
"title": "get_evidenceArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"found": {
"title": "Found",
"type": "boolean"
},
"id": {
"title": "Id",
"type": "string"
},
"statement": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Statement"
},
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Domain"
},
"status": {
"anyOf": [
{
"$ref": "#/$defs/ClaimStatus"
},
{
"type": "null"
}
],
"default": null
},
"evidence_strength": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Evidence Strength"
},
"assertion_type": {
"anyOf": [
{
"$ref": "#/$defs/AssertionType"
},
{
"type": "null"
}
],
"default": null
},
"last_updated": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Last Updated"
},
"provenance": {
"items": {
"$ref": "#/$defs/Provenance"
},
"title": "Provenance",
"type": "array"
},
"contradiction_ids": {
"items": {
"type": "string"
},
"title": "Contradiction Ids",
"type": "array"
}
},
"required": [
"found",
"id"
],
"$defs": {
"AssertionType": {
"enum": [
"asserted",
"hedged",
"conditional"
],
"title": "AssertionType",
"type": "string"
},
"ClaimStatus": {
"enum": [
"consensus",
"contested",
"outdated"
],
"title": "ClaimStatus",
"type": "string"
},
"Provenance": {
"properties": {
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"paper_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Paper Id"
},
"excerpt": {
"title": "Excerpt",
"type": "string"
},
"page": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Page"
},
"section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Section"
}
},
"required": [
"excerpt"
],
"title": "Provenance",
"type": "object"
}
},
"title": "EvidenceResult"
}🟢get_contradictions(claim_id)
List 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>").
輸入結構描述
{
"type": "object",
"properties": {
"claim_id": {
"description": "Claim id to inspect.",
"title": "Claim Id",
"type": "string"
}
},
"required": [
"claim_id"
],
"title": "get_contradictionsArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"claim_id": {
"title": "Claim Id",
"type": "string"
},
"found": {
"title": "Found",
"type": "boolean"
},
"contradictions": {
"items": {
"$ref": "#/$defs/ContradictionHit"
},
"title": "Contradictions",
"type": "array"
}
},
"required": [
"claim_id",
"found",
"contradictions"
],
"$defs": {
"ClaimStatus": {
"enum": [
"consensus",
"contested",
"outdated"
],
"title": "ClaimStatus",
"type": "string"
},
"ContradictionHit": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"statement": {
"title": "Statement",
"type": "string"
},
"domain": {
"title": "Domain",
"type": "string"
},
"status": {
"$ref": "#/$defs/ClaimStatus"
},
"evidence_strength": {
"title": "Evidence Strength",
"type": "number"
},
"opposition_strength": {
"title": "Opposition Strength",
"type": "number"
}
},
"required": [
"id",
"statement",
"domain",
"status",
"evidence_strength",
"opposition_strength"
],
"title": "ContradictionHit",
"type": "object"
}
},
"title": "ContradictionsResult"
}🟢get_updates(since, domain, limit, offset)
List 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, and a shortened excerpt. 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).
輸入結構描述
{
"type": "object",
"properties": {
"since": {
"description": "ISO-8601 timestamp. Claims updated at or after this time. Example: 2026-01-01T00:00:00Z.",
"examples": [
"2026-01-01T00:00:00Z"
],
"format": "date-time",
"title": "Since",
"type": "string"
},
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict results to one domain. Example: ai-ml.",
"examples": [
"ai-ml"
],
"title": "Domain"
},
"limit": {
"default": 20,
"description": "Page size. Example: 20.",
"examples": [
20
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of hits to skip. Example: 0.",
"examples": [
0
],
"minimum": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"since"
],
"title": "get_updatesArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"since": {
"format": "date-time",
"title": "Since",
"type": "string"
},
"claims": {
"items": {
"$ref": "#/$defs/ClaimHit"
},
"title": "Claims",
"type": "array"
},
"page": {
"$ref": "#/$defs/Page"
}
},
"required": [
"since",
"claims",
"page"
],
"$defs": {
"AssertionType": {
"enum": [
"asserted",
"hedged",
"conditional"
],
"title": "AssertionType",
"type": "string"
},
"ClaimHit": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"statement": {
"title": "Statement",
"type": "string"
},
"domain": {
"title": "Domain",
"type": "string"
},
"status": {
"$ref": "#/$defs/ClaimStatus"
},
"evidence_strength": {
"title": "Evidence Strength",
"type": "number"
},
"assertion_type": {
"$ref": "#/$defs/AssertionType"
},
"excerpt": {
"title": "Excerpt",
"type": "string"
}
},
"required": [
"id",
"statement",
"domain",
"status",
"evidence_strength",
"assertion_type",
"excerpt"
],
"title": "ClaimHit",
"type": "object"
},
"ClaimStatus": {
"enum": [
"consensus",
"contested",
"outdated"
],
"title": "ClaimStatus",
"type": "string"
},
"Page": {
"properties": {
"limit": {
"title": "Limit",
"type": "integer"
},
"offset": {
"title": "Offset",
"type": "integer"
},
"returned": {
"title": "Returned",
"type": "integer"
},
"total": {
"title": "Total",
"type": "integer"
}
},
"required": [
"limit",
"offset",
"returned",
"total"
],
"title": "Page",
"type": "object"
}
},
"title": "UpdatesResult"
}🟢get_innovation_flags(domain, min_strength, limit, offset)
List innovation flags, strongest first. Use this when you want links between claims rather than the claims themselves. Returns flag id, domain, summary, strength, and the claim ids on each path. Example: get_innovation_flags(domain="ai-ml", min_strength=0.5, limit=10). Example: get_innovation_flags(domain="quantum", min_strength=0.8, limit=5).
輸入結構描述
{
"type": "object",
"properties": {
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict flags to one domain. Example: ai-ml.",
"examples": [
"ai-ml"
],
"title": "Domain"
},
"min_strength": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop flags below this strength, from 0 to 1. Example: 0.5.",
"examples": [
0.5
],
"title": "Min Strength"
},
"limit": {
"default": 20,
"description": "Page size. Example: 10.",
"examples": [
10
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of hits to skip. Example: 0.",
"examples": [
0
],
"minimum": 0,
"title": "Offset",
"type": "integer"
}
},
"title": "get_innovation_flagsArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"flags": {
"items": {
"$ref": "#/$defs/FlagHit"
},
"title": "Flags",
"type": "array"
},
"page": {
"$ref": "#/$defs/Page"
}
},
"required": [
"flags",
"page"
],
"$defs": {
"FlagHit": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"domain": {
"title": "Domain",
"type": "string"
},
"summary": {
"title": "Summary",
"type": "string"
},
"strength": {
"title": "Strength",
"type": "number"
},
"claim_path": {
"items": {
"type": "string"
},
"title": "Claim Path",
"type": "array"
},
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
}
},
"required": [
"id",
"domain",
"summary",
"strength",
"claim_path",
"created_at"
],
"title": "FlagHit",
"type": "object"
},
"Page": {
"properties": {
"limit": {
"title": "Limit",
"type": "integer"
},
"offset": {
"title": "Offset",
"type": "integer"
},
"returned": {
"title": "Returned",
"type": "integer"
},
"total": {
"title": "Total",
"type": "integer"
}
},
"required": [
"limit",
"offset",
"returned",
"total"
],
"title": "Page",
"type": "object"
}
},
"title": "FlagsResult"
}🟢search_smart(natural_language, domain, limit, offset)
Find claims from a natural-language question. This build matches text only. 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 limits healthspan?", domain="longevity", limit=5).
輸入結構描述
{
"type": "object",
"properties": {
"natural_language": {
"description": "A question or description of the claims you want. Example: How do transformers handle long context?",
"examples": [
"How do transformers handle long context?"
],
"title": "Natural Language",
"type": "string"
},
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict results to one domain. Example: ai-ml.",
"examples": [
"ai-ml"
],
"title": "Domain"
},
"limit": {
"default": 10,
"description": "Page size. Example: 5.",
"examples": [
5
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of hits to skip. Example: 0.",
"examples": [
0
],
"minimum": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"natural_language"
],
"title": "search_smartArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"strategy": {
"const": "lexical",
"default": "lexical",
"title": "Strategy",
"type": "string"
},
"claims": {
"items": {
"$ref": "#/$defs/ClaimHit"
},
"title": "Claims",
"type": "array"
},
"page": {
"$ref": "#/$defs/Page"
}
},
"required": [
"claims",
"page"
],
"$defs": {
"AssertionType": {
"enum": [
"asserted",
"hedged",
"conditional"
],
"title": "AssertionType",
"type": "string"
},
"ClaimHit": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"statement": {
"title": "Statement",
"type": "string"
},
"domain": {
"title": "Domain",
"type": "string"
},
"status": {
"$ref": "#/$defs/ClaimStatus"
},
"evidence_strength": {
"title": "Evidence Strength",
"type": "number"
},
"assertion_type": {
"$ref": "#/$defs/AssertionType"
},
"excerpt": {
"title": "Excerpt",
"type": "string"
}
},
"required": [
"id",
"statement",
"domain",
"status",
"evidence_strength",
"assertion_type",
"excerpt"
],
"title": "ClaimHit",
"type": "object"
},
"ClaimStatus": {
"enum": [
"consensus",
"contested",
"outdated"
],
"title": "ClaimStatus",
"type": "string"
},
"Page": {
"properties": {
"limit": {
"title": "Limit",
"type": "integer"
},
"offset": {
"title": "Offset",
"type": "integer"
},
"returned": {
"title": "Returned",
"type": "integer"
},
"total": {
"title": "Total",
"type": "integer"
}
},
"required": [
"limit",
"offset",
"returned",
"total"
],
"title": "Page",
"type": "object"
}
},
"description": "strategy stays 'lexical' until multi-hop traversal is implemented.",
"title": "SmartSearchResult"
}🟢get_authors(claim_id)
List 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>").
輸入結構描述
{
"type": "object",
"properties": {
"claim_id": {
"description": "Claim id returned by a search tool. Example: claim-attention.",
"examples": [
"claim-attention"
],
"title": "Claim Id",
"type": "string"
}
},
"required": [
"claim_id"
],
"title": "get_authorsArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"claim_id": {
"title": "Claim Id",
"type": "string"
},
"authors": {
"items": {
"$ref": "#/$defs/AuthorNode"
},
"title": "Authors",
"type": "array"
}
},
"required": [
"claim_id"
],
"$defs": {
"AuthorNode": {
"description": "One author. No profile fields beyond id, display name, and ORCID.",
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"orcid": {
"default": "",
"title": "Orcid",
"type": "string"
}
},
"required": [
"id",
"name"
],
"title": "AuthorNode",
"type": "object"
}
},
"description": "Authors linked to one claim. The list is empty when none are stored.",
"title": "AuthorsResult"
}🟢query_law(jurisdiction, area_of_law, query, limit)
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).
輸入結構描述
{
"type": "object",
"properties": {
"jurisdiction": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Jurisdiction code. Example: DE. Omit it to search science.",
"examples": [
"DE"
],
"title": "Jurisdiction"
},
"area_of_law": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Area of law slug. Example: data-protection.",
"examples": [
"data-protection"
],
"title": "Area Of Law"
},
"query": {
"default": "",
"description": "Text matched against the statement and its excerpt. Example: consent.",
"examples": [
"consent"
],
"title": "Query",
"type": "string"
},
"limit": {
"default": 20,
"description": "Page size. Example: 5.",
"examples": [
5
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"title": "query_lawArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"section": {
"enum": [
"science",
"law"
],
"title": "Section",
"type": "string"
},
"records": {
"items": {
"$ref": "#/$defs/LawRecordHit"
},
"title": "Records",
"type": "array"
},
"page": {
"$ref": "#/$defs/Page"
}
},
"required": [
"section",
"records",
"page"
],
"$defs": {
"AssertionType": {
"enum": [
"asserted",
"hedged",
"conditional"
],
"title": "AssertionType",
"type": "string"
},
"ClaimStatus": {
"enum": [
"consensus",
"contested",
"outdated"
],
"title": "ClaimStatus",
"type": "string"
},
"LawRecordHit": {
"description": "One science or law record. List fields stay short, plus the law keys.",
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"statement": {
"title": "Statement",
"type": "string"
},
"domain": {
"title": "Domain",
"type": "string"
},
"status": {
"$ref": "#/$defs/ClaimStatus"
},
"evidence_strength": {
"title": "Evidence Strength",
"type": "number"
},
"assertion_type": {
"$ref": "#/$defs/AssertionType"
},
"excerpt": {
"title": "Excerpt",
"type": "string"
},
"section": {
"enum": [
"science",
"law"
],
"title": "Section",
"type": "string"
},
"jurisdiction": {
"default": "",
"title": "Jurisdiction",
"type": "string"
},
"area_of_law": {
"default": "",
"title": "Area Of Law",
"type": "string"
}
},
"required": [
"id",
"statement",
"domain",
"status",
"evidence_strength",
"assertion_type",
"excerpt",
"section"
],
"title": "LawRecordHit",
"type": "object"
},
"Page": {
"properties": {
"limit": {
"title": "Limit",
"type": "integer"
},
"offset": {
"title": "Offset",
"type": "integer"
},
"returned": {
"title": "Returned",
"type": "integer"
},
"total": {
"title": "Total",
"type": "integer"
}
},
"required": [
"limit",
"offset",
"returned",
"total"
],
"title": "Page",
"type": "object"
}
},
"description": "Law records for a jurisdiction, or science claims when jurisdiction is omitted.",
"title": "LawRecordsResult"
}社群
證據