Claude Desktop, Cursor 등 모든 MCP 클라이언트에 학술 인용 검증 기능을 추가합니다.

@citetrue/mcp-servernpx -y @citetrue/mcp-server

제공 기능

CiteTrue REST API를 감싼 5개 도구. 크레딧과 정확도는 동일하며, HTTP 대신 MCP로 호출할 뿐입니다.

도구용도호출당 크레딧
verifySplit a text blob into references and verify each. depth selects accuracy vs. cost.1 or 5 per ref by depth
get_credits계정 크레딧 잔액 반환.0

빠른 시작

  1. 대시보드 → API 키에 접속해 새 API 키 클릭. sk_로 시작하는 키 복사.
  2. MCP 클라이언트 설정(클라이언트 설정 참조)을 열어 citetrue 블록 추가.
  3. MCP 클라이언트 재시작 — 채팅 새로고침이 아니라 앱 전체.
  4. 어시스턴트에게 "이 인용들을 검증해줘: [붙여넣기]"라고 요청. verify_fast를 호출하고 결과를 요약합니다.

클라이언트 설정

stdio 지원 MCP 클라이언트라면 어느 것이든 가능합니다. 아래는 가장 흔한 3가지이며 다른 클라이언트도 같은 구조입니다.

Claude Desktop

추천

CiteTrue를 Claude Desktop 확장으로 설치하세요 — JSON 편집도, Node 설치도 필요 없습니다. 번들된 서버는 Claude Desktop에 포함된 Node에서 실행됩니다.

Claude Desktop용 다운로드

다운로드한 파일을 더블클릭하거나 설정 → Extensions로 끌어다 놓고, 안내가 나오면 API 키를 붙여넣으세요 — 키는 OS 키체인에 안전하게 저장됩니다.

중요: 설치 후 설정 → Extensions에서 확장이 활성화(켜짐)되어 있는지 확인하고 Claude Desktop을 재시작하세요 — 그래야 도구가 활성화됩니다.

또는 수동으로 설정

macOS는 ~/Library/Application Support/Claude/claude_desktop_config.json, Windows는 %APPDATA%\Claude\claude_desktop_config.json 편집:

{
  "mcpServers": {
    "citetrue": {
      "command": "npx",
      "args": ["-y", "@citetrue/mcp-server"],
      "env": {
        "CITETRUE_API_KEY": "sk_..."
      }
    }
  }
}

Cursor

Settings → MCP → Add new MCP server에서 아래 Claude Desktop JSON과 동일한 command / args / env를 설정.

Windsurf, Zed, 기타

어떤 stdio MCP 클라이언트든 동작합니다. 설정 경로는 각기 다르지만 3개 필드(command, args, env)는 공통입니다.

구성

환경변수기본값비고
CITETRUE_API_KEY— (필수)대시보드에서 발급받은 Bearer 토큰.
CITETRUE_API_URLhttps://api.citetrue.com셀프호스팅 시 덮어쓰기.

도구

verify

Split a free-form text blob into individual references and verify each. depth selects accuracy vs. cost.

파라미터

Supply exactly one of text, refHash, or taskHash:

  • text string — raw text containing one or more references. Accepts numbered lists, bullets, blank-line-separated, BibTeX, or in-text prose with author-year citations (when depth ≥ 5). Max 10MB.
  • refHash string — upgrade a single prior reference to a deeper run. Requires depth ≥ 5 and parentTaskHash.
  • parentTaskHash string — required when using refHash; the original task that produced the ref.
  • taskHash string — resume a previously-started task; replays cached state. No re-billing.
  • depth 1 | 5, optional, default 1 1 fast (1 credit/ref); 5 deep (5 credits/ref). 20 exists as a closed-beta tier and is not enabled for public use.
  • force bool, optional — bypass cached results (forces a fresh run, charges full cost).

출력

{
  "taskHash": "...",
  "refs": [
    {
      "hash": "a1b2c3...",
      "text": "[1] Vaswani, A., Shazeer, N., Parmar (2017)...",
      "assessment": "authentic",
      "value": {
        "type": "citation",
        "title": "Attention is all you need",
        "authors": ["A Vaswani", "N Shazeer", "N Parmar"],
        "year": 2017,
        "url": "https://..."
      },
      "note": "",
      "notices": [],
      "data": { "depth": 1, "cost": 1 }
    }
  ],
  "cost": 2,
  "balance": 248
}

data.depth is the highest depth that has run on the ref (1 or 5). Clients derive a "deep-verified" flag locally as depth ≥ 5. note is a free-form one-line natural-language explanation in English (intended for end-user display); for programmatic checks, match on notices[] instead.

Assessment values

  • authentic — paper exists and is the one cited; value contains the matched paper.
  • unsure— found something but can't confirm; notices and confidence describe why.
  • inauthentic — definitively not found / fabricated / unrelated.
  • invalid— input wasn't a citation; pipeline refused to search.
  • error — verification failed on this ref; data.errors[] lists tokens.
  • exceeded — credits ran out before this ref ran.

과금

1 credit per ref for depth=1, 5 credits per ref for depth=5.

문제 해결

If the server fails to start, ensure npx is on PATH and CITETRUE_API_KEY is set.