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"
}社区
证据