wikicitation-mcp

wikicitation-mcp

Provides 40 tools to Claude for Wikipedia citation analysis, edit history, and DOI/ISBN annotation, enabling citation quality scoring and metadata enrichment without leaving the chat.

Category
访问服务器

README

wikicitation-mcp

Wikipedia citation-science tools for Claude — pure Python, no R required.

An MCP server that exposes 40 tools to Claude Code, Claude Desktop, and claude.ai.
Ask Claude to fetch Wikipedia edit histories, analyse citations, score scientific quality, and annotate DOIs and ISBNs — all without leaving the chat.


What you can do

Category Examples
Edit history Full revision history, first/latest wikitext, category-wide sweeps
Citation analysis Count DOIs/refs/ISBNs, extract CS1 templates, compute SciScore
DOI & ISBN annotation Enrich DOIs via CrossRef / EuropePMC / Altmetric; books via Google Books / Open Library

Installation

Option A — PyPI (recommended)

No clone needed. uvx downloads and runs the package in one step:

# Requires uv (https://docs.astral.sh/uv/)
uvx wikicitation-mcp

Or install permanently with pip:

pip install wikicitation-mcp
wikicitation-mcp          # starts the stdio server

Option B — From source

git clone https://github.com/jsobel1/wikicitation-mcp.git
cd wikicitation-mcp
uv sync
uv run python server.py

Connect to Claude

Claude Code (CLI) — PyPI

claude mcp add wikilite -- uvx wikicitation-mcp
claude mcp list

Claude Code (CLI) — from source

# Run from inside the cloned directory
claude mcp add wikilite -- uv run python server.py

Claude Desktop — PyPI

Edit ~/.claude/claude_desktop_config.json (Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "wikilite": {
      "command": "uvx",
      "args": ["wikicitation-mcp"]
    }
  }
}

Claude Desktop — from source

{
  "mcpServers": {
    "wikilite": {
      "command": "uv",
      "args": [
        "run", "python",
        "/ABSOLUTE/PATH/TO/wikicitation-mcp/server.py"
      ],
      "cwd": "/ABSOLUTE/PATH/TO/wikicitation-mcp"
    }
  }
}

Restart Claude Desktop — the wikilite server appears in the toolbar.

claude.ai (web, HTTP transport)

uvx wikicitation-mcp --transport streamable-http --port 8000
# Then in claude.ai → Settings → Connections → Add MCP server
# URL: http://localhost:8000/mcp

Quick start

Once connected, try these prompts in Claude:

Fetch all edits to the Wikipedia article "Circadian clock" up to today.
Count all DOIs, references, and ISBNs in this wikitext: [paste wikitext]
Calculate the SciScore for "Sleep deprivation".
Extract all citations from "CRISPR" — how many are journals vs websites vs books?
Show me the top 20 most-cited papers in the Wikipedia article "mRNA vaccine".
Annotate these DOIs with CrossRef metadata:
10.1038/nature12373, 10.1016/j.cell.2020.01.001

Usage notes

date_limit is an upper bound

date_limit controls the newest revision returned, not the oldest. To retrieve edits "since 2023", pass today's date as the limit and filter the returned rows by timestamp.

SciScore

get_sci_score returns two metrics:

Field Formula Meaning
sci_score journal citations ÷ total CS1 citations Proportion of references that are peer-reviewed journal articles

Range 0 to 1; higher = more scientifically sourced.

Altmetric

Altmetric returns attention scores without an API key for most DOIs and ISBNs. If a DOI or ISBN is not indexed, altmetric_score will be null. For production use, set the ALTMETRIC_KEY environment variable.


Tool reference

Group 1 — History & metadata (14 tools)

Tool Key arguments Returns
get_article_history article_name, date_limit revision table (revid, user, timestamp, size, comment)
get_article_recent article_name, date_limit metadata + full wikitext
get_article_initial article_name first-ever revision metadata + wikitext
get_article_info article_name pageid, title, byte length
get_tables_all article_name, date_limit initial + recent + history + info in one call
get_category_pages category list of article titles
get_pages_in_cat_table category structured page table (pageid, title, type)
get_subcat_table catname, replacement direct subcategories
get_subcat_multiple catname_list subcategories for N categories
get_subcat_with_depth catname, depth, replacement recursive subcategories
get_page_in_cat_multiple catname_list pages for N categories
get_category_history article_list revision table for a list of articles
get_category_recent article_list, date_limit metadata + wikitext for a list of articles
get_category_creation article_list creation-revision metadata for a list of articles

Group 2 — Citation counting, extraction & quality (19 tools)

Tool Key arguments Returns
get_doi_count text {"count": N}
get_ref_count text {"count": N}
get_url_count text {"count": N}
get_isbn_count text {"count": N}
get_hyperlink_count text {"count": N}
get_any_count text, regexp {"count": N}
extract_citations text list of CS1 template strings
extract_wikihypelinks text list of [[...]] wikilink strings
replace_wikihypelinks text {"cleaned_text": ...} with links replaced by display text
parse_cite_type text {"cite_type": ..., "fields": {...}}
extract_with_regex article_name, regexp, date_limit list of regex matches from live article
extract_all_regex article_name, date_limit all built-in pattern matches (doi, url, isbn, pmid, …)
parse_citations article_name, date_limit structured citation rows (cite_type, doi, author, year, title)
parse_all_citations article_name, date_limit long-form table: one row per citation field
get_citation_types article_name, date_limit citation counts by CS1 type
get_source_type_counts text citation counts by CS1 type from raw wikitext
get_sci_score article_name, date_limit sci_score (see above)
get_top_cited_papers article_name, date_limit top 40 DOIs annotated via EuropePMC
get_revert_counts start, end revert-tagged edit counts by article (≤30-day window)

Group 3 — DOI & ISBN annotation (7 tools)

Tool Key arguments Returns
annotate_dois_europmc doi_list title, journal, pubYear, citedByCount, isOpenAccess, …
annotate_dois_crossref doi_list title, authors, journal, year, publisher, citation count
annotate_dois_altmetric doi_list Altmetric score, tweet count, news mentions, …
annotate_dois_bibtex doi_list {"bibtex_entries": [...]}
annotate_isbn_google isbn title, authors, publisher, publishedDate, description
annotate_isbn_openlib isbn title, authors, publishers, publish_date, page count
annotate_isbns_altmetric isbn_list Altmetric score per ISBN

Running tests

# Unit tests — no network required
uv run pytest tests/ -m "not integration" -v

# Integration tests — require internet
uv run pytest tests/ -m integration -v

# Full suite
uv run pytest tests/ -v

Troubleshooting

uvx: command not found

Install uv first:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"

Server not appearing in Claude Code

claude mcp remove wikilite
claude mcp add wikilite -- uvx wikicitation-mcp
claude mcp list

ModuleNotFoundError: No module named 'mwparserfromhell'

The venv is missing a dependency. Run uv sync inside the cloned repo, or reinstall via pip install wikicitation-mcp.

get_revert_counts returns no results

The Wikipedia recentchanges API only retains ~30 days of history. Requests for date ranges older than that will return empty results.


Related projects

These three projects share the same core analysis logic at three different levels of interactivity — pick the one that matches how you want to work.

Project Interface When to use
wikicitation-mcp (this repo) MCP server for Claude Desktop / Claude Code / claude.ai You want to ask Claude questions in natural language and have it call the tools for you. Pure Python, no R required.
wikilite R package You want a programmable pipeline in R / R Markdown / Quarto with full access to revision tables, citation parsers, and ggplot2 / plotly / visNetwork output.
wikiliteApp Shiny web app (built on wikilite) You want a point-and-click GUI: per-article tabs (History Flow, Citations, Authorship, Stability with SciScore-over-time, Vandalism & Wars, WikiWho-powered Revision Inspector) and a Corpus Analysis mode (multi-corpus timeline, per-article + per-corpus SciScore, co-citation / publication / wikilink networks, batched EuropePMC + Google Books annotation, multi-sheet XLSX exports).

External references

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选