MCP Refchecker
mcp-refchecker
Claude가 Semantic Scholar, OpenAlex, Crossref를 통해 실시간으로 학술 인용을 검증하여, 환각(hallucination)이나 잘못된 참조가 작업물에 포함되기 전에 잡아낼 수 있도록 하는 MCP 서버입니다.
academic-refchecker (MIT)를 기반으로 구축되었습니다.
도구
verify_citation — 인용된 논문이 존재하는지, 그리고 해당 메타데이터(제목, 저자, 연도, 학술지)가 인용된 내용과 일치하는지 검증합니다.
매개변수 | 유형 | 필수 | 설명 |
| string | 예 | 인용된 논문의 제목 |
| string[] | 아니요 | 저자 이름 목록 |
| integer | 아니요 | 출판 연도 |
| string | 아니요 | DOI (예: |
| string | 아니요 | arXiv ID (예: |
| string | 아니요 | 논문으로 연결되는 직접 URL |
JSON 반환:
{
"verified": true,
"url": "https://...",
"matched_paper": {
"title": "...",
"authors": [...],
"year": 2023,
"venue": "..."
},
"possible_match": null,
"errors": null,
"warnings": null,
"info": null
}결과 필드
verified— 논문을 찾았고 제공된 모든 메타데이터(연도, 저자, 학술지)가 일치하면true입니다. 실제 메타데이터 충돌이 있거나 논문을 찾을 수 없으면false입니다.matched_paper— 검증 소스에서 제공하는 권위 있는 메타데이터입니다.possible_match— 정확한 제목을 찾지 못했지만 유사한 변형을 찾은 경우의 Crossref 대체 일치 항목입니다(아래 "퍼지 대체(Fuzzy fallback)" 참조).errors— 검증을 차단하는 심각한 오류(잘못된 연도, 잘못된 저자, 논문을 찾을 수 없음)입니다.warnings— 검증을 차단하지 않는 경고(arXiv v1과 v2의 차이, arXiv 프리프린트와 출판된 학술지 간의 차이, 불완전한 입력 메타데이터)입니다.info— 정보성 제안(예: "참조에 arXiv URL을 포함할 수 있음")입니다.
오류와 경고의 구분
academic-refchecker는 일관성이 부족한 문제 목록을 반환합니다(연도 불일치는 경고로 표시되는 반면 저자 불일치는 오류로 표시됨). 이 래퍼는 출력을 다음과 같이 정규화합니다:
심각한 오류로 승격: 인용된 메타데이터가 실제와 다른 단순
year/author/venue불일치. 이는verified를 차단합니다.경고로 강등: 논문은 찾았으나 사용자가 입력값으로 해당 필드를 제공하지 않은 경우의 "필드 누락" 오류. 입력 메타데이터 누락은 인용이 환각이라는 증거가 아닙니다.
경고로 유지: arXiv 버전 차이(v1 대 v2), 프리프린트와 출판된 학술지 간의 차이 등.
퍼지 대체(Fuzzy fallback) 및 제한 사항
academic-refchecker가 논문을 검증할 수 없다고 보고하면, 이 래퍼는 fuzzywuzzy.ratio와 퍼지 제목 매칭을 사용하여 Crossref에 2차 쿼리를 수행합니다. 유사도가 85% 이상인 후보가 발견되면 경고와 함께 possible_match로 반환됩니다.
퍼지 대체가 잡아내는 것:
스타일적인 제목 변형(대소문자 차이, 구두점, 단어 순서)
사소한 문구 변경
refchecker의 엄격한 비교에서는 거부되었으나 실제로는 유효한 일치 항목인 경우
퍼지 대체가 잡아내지 못하는 것:
고유한 제목 단어의 실제 오타(예: "Atention Is All You Need")
심하게 훼손된 제목
이는 무료 학술 검색 API의 근본적인 한계입니다. Crossref, OpenAlex, Semantic Scholar 모두 키워드/토큰 기반 검색을 수행하므로, 고유한 단어의 철자가 틀리면 검색 인덱스에 포함되지 않으며, 후처리를 어떻게 하든 실제 논문은 결과에 나타나지 않습니다. 실제 오타를 잡아내려면 유료 API(OpenAI, Voyage 등)의 의미론적 임베딩이나 전체 텍스트 퍼지 검색 엔진이 필요하지만, 무료 학술 데이터 소스에서는 이를 제공하지 않습니다.
오타가 의심되는데 verify_citation이 검증되지 않음으로 반환되는 경우, 가장 좋은 해결책은 제목을 가장 표준적인 형태로 다시 작성하여 다시 시도하는 것입니다.
Related MCP server: Lyra's Expanded Research MCP
설치 및 구성
권장: uvx (설치 단계 없음)
uv가 설치되어 있다면 별도의 설치가 필요하지 않습니다. claude_desktop_config.json에 직접 추가하세요:
{
"mcpServers": {
"refchecker": {
"command": "uvx",
"args": ["mcp-refchecker"]
}
}
}uvx는 패키지를 격리된 환경에서 자동으로 다운로드하고 실행합니다. 설정을 저장한 후 Claude Desktop을 다시 시작하세요.
대안: pip
pip install mcp-refchecker그런 다음 claude_desktop_config.json에 추가하세요:
{
"mcpServers": {
"refchecker": {
"command": "mcp-refchecker"
}
}
}소스에서 설치
git clone https://github.com/JonasBaath/mcp-refchecker
cd mcp-refchecker
pip install .선택적 환경 변수
SEMANTIC_SCHOLAR_API_KEY— refchecker의 기본 검증 경로에서 더 높은 속도 제한을 받으려면 여기에서 신청하세요.CROSSREF_MAILTO— 더 안정적인 퍼지 대체 액세스를 위해 Crossref의 polite pool에 옵트인하는 데 사용되는 연락처 이메일입니다.MCP_REFCHECKER_DEBUG— 퍼지 대체 경로의 디버그 로그를 stderr로 출력하려면 비어 있지 않은 값을 설정하세요.
모든 선택적 설정이 포함된 예시(uvx):
{
"mcpServers": {
"refchecker": {
"command": "uvx",
"args": ["mcp-refchecker"],
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "your-key-here",
"CROSSREF_MAILTO": "you@example.com"
}
}
}
}라이선스
MIT — © Jonas Bååth. academic-refchecker (MIT)를 기반으로 구축되었습니다.
Available Tools
1 toolverify_citationA
Verify that an academic citation is accurate by checking it against Semantic Scholar, OpenAlex, and CrossRef. Returns whether the paper exists and flags mismatches in title, authors, year, or venue.
Args: title: Title of the cited paper (required). authors: List of author names. year: Publication year. doi: DOI of the paper (e.g. 10.1145/12345). arxiv_id: arXiv ID (e.g. 2301.00001). url: Direct URL to the paper.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| authors | No | ||
| year | No | ||
| doi | No | ||
| arxiv_id | No | ||
| url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains what the tool checks (title, authors, year, venue) and the sources used, adding behavioral context beyond the schema. However, with no annotations provided, this dimension carries full weight; the description does not cover all potential behaviors such as rate limits, authentication requirements, or error handling, but given the straightforward nature of a citation verification tool, the disclosure is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear first paragraph stating the tool's purpose followed by a bulleted list of parameters. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 parameters, 1 required, output schema present), the description covers the essential information. It explains the verification process and parameter meanings, but lacks details on output structure. However, since an output schema exists, this omission is acceptable. The description is sufficiently complete for effective usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides brief semantic information for each parameter, defining what they represent (e.g., 'DOI of the paper', 'arXiv ID'). However, the input schema's title fields already convey most of this information (e.g., 'Doi', 'Arxiv Id'), and the description does not add significant new meaning. Schema description coverage is 0%, so the description compensates minimally.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: verifying academic citations by checking against three specific databases (Semantic Scholar, OpenAlex, CrossRef). It precisely describes the verification outputs: existence check and mismatch flags for title, authors, year, or venue. This is specific and informative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists parameters with their types and example formats, providing guidance on how to use the tool. However, it does not indicate when not to use this tool or mention alternatives, which would be beneficial since there are no sibling tools. The clarity of the parameter descriptions partly compensates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
verify_citation
TDQS
Scored across 1 tool
Only one tool exists, so there is no ambiguity between tools. The single tool has a clear, singular purpose.
With only one tool, consistency with other tools is not applicable. The name itself (verify_citation) follows a reasonable verb_noun pattern, but no pattern across tools can be evaluated.
The server provides only one tool for the domain of citation verification. While verifying a citation is a focused task, real-world usage often requires additional operations like batch verification, retrieving paper details, or checking multiple citations at once, making the single tool feel too limited.
The tool covers a single operation (verifying a citation) but lacks other related operations such as searching for papers, listing citations for a paper, or bulk verification. For a comprehensive citation checking service, the coverage is incomplete.
Maintenance
Related MCP Connectors
OpenCitations MCP — citation index (COCI + general Index API).
Academic research MCP server for paper search, citation checks, graphs, and deep research.
MCP server for Altmetric APIs - track research attention across news, policy, social media, and more
Crossref MCP — wraps the Crossref REST API (academic papers, free, no auth)
Related MCP Servers
- AlicenseAqualityCmaintenanceComprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.11MIT
- FlicenseNot gradedqualityDmaintenanceA unified MCP server providing programmatic access to three major academic research APIs: Semantic Scholar, OpenAlex, and PubMed.2-
- AlicenseAqualityCmaintenanceUnified MCP server for scientific literature search and extraction, integrating databases like Scopus, OpenAlex, Semantic Scholar, and Unpaywall to enable AI agents to discover papers, track citations, and analyze content.27MIT
- AlicenseAqualityCmaintenanceAn MCP server that verifies the existence, metadata accuracy, and claim support of academic citations by querying sources like OpenAlex, Crossref, and arXiv, enabling AI agents to fact-check references.768 PyPI1MIT