维基百科MCP服务器
一个模型上下文协议(MCP)服务器,为Claude提供对维基百科的实时访问。该服务器实现了有效维基百科研究的4个基本工具,同时演示了核心MCP概念。
特性
核心工具
search_wikipedia-在不知道确切标题的情况下查找文章get_article-检索完整文章内容以进行详细分析get_summary-获取简明摘要,以便快速理解find_related-发现相关文章以扩展研究
关键利益
- 🔄 实时数据 -访问当前维基百科内容,而不是培训数据
- 🏗️ 结构化输出 -用于可靠数据访问的定义良好的模式
- 🏠 本地控制 -自孔,不需要API密钥
- ⚡ 快速高效 -具有适当错误处理的异步操作
安装
先决条件
- Python 3.9或更高版本
- 紫外线 (推荐)或pip
再进行
使用pip:
# Navigate to the project directory
cd wikipedia-mcp-server
# Install dependencies
pip install mcp httpx pydantic beautifulsoup4使用紫外线(如果可用):
# Clone or create the project directory
cd wikipedia-mcp-server
# Install dependencies
uv sync用法
运行服务器
直接使用python:
python -m src.wikipedia_mcp_server紫外线(如有):
uv run python -m src.wikipedia_mcp_server测试工具
您可以通过运行服务器并连接MCP客户端来测试单个工具:
# Example: Search for articles
search_wikipedia("quantum computing", limit=3)
# Example: Get article summary
get_summary("Albert Einstein")
# Example: Get full article
get_article("Machine Learning")
# Example: Find related articles
find_related("Artificial Intelligence", limit=5)Claude桌面集成
要将此MCP服务器与Claude Desktop一起使用,请将其添加到您的MCP配置中:
macOS/Linux配置
编辑 ~/.config/claude-desktop/mcp.json:
{
"mcpServers": {
"wikipedia": {
"command": "python",
"args": [
"-m",
"src.wikipedia_mcp_server"
],
"cwd": "/ABSOLUTE/PATH/TO/wikipedia-mcp-server"
}
}
}Windows配置
编辑 %APPDATA%\Claude\mcp.json:
{
"mcpServers": {
"wikipedia": {
"command": "python",
"args": [
"-m",
"src.wikipedia_mcp_server"
],
"cwd": "C:\\ABSOLUTE\\PATH\\TO\\wikipedia-mcp-server"
}
}
}替代方案:使用紫外线
如果您安装了uv:
{
"mcpServers": {
"wikipedia": {
"command": "uv",
"args": [
"run",
"python",
"-m",
"src.wikipedia_mcp_server"
],
"cwd": "/ABSOLUTE/PATH/TO/wikipedia-mcp-server"
}
}
}研究工作流程
典型研究流程
- 发现:
search_wikipedia("quantum computing")→ 查找相关文章 - 概述:
get_summary("Quantum computing")→ 快速了解 - 深潜:
get_article("Quantum computing")→ 需要时提供完整内容 - 扩展:
find_related("Quantum computing")→ 相关主题
克劳德对话示例
User: I want to learn about Marie Curie's discoveries
Claude: I'll help you research Marie Curie's discoveries. Let me start by getting a summary of her Wikipedia article.
[Uses get_summary("Marie Curie")]
Based on the summary, Marie Curie was a pioneering scientist who discovered radium and polonium. Let me find related articles about her specific discoveries.
[Uses find_related("Marie Curie")]
Now let me get detailed information about her discovery of radium.
[Uses get_article("Radium")]工具规格
search_wikipedia
- 目的:在不知道确切标题的情况下查找文章
- 输入:查询(必填)、限制(1-10)、语言(默认:“en”)
- 输出:包含标题、片段和URL的搜索结果列表
获取_文章
- 目的:检索完整文章内容
- 输入:标题(必填),语言(默认:“en”)
- 输出:完整的文章,包括内容、元数据和章节
get_summary
- 目的:获取简明的文章摘要
- 输入:标题(必填),语言(默认:“en”)
- 输出:包含关键事实的摘要文本
find_related
- 目的:查找相关文章
- 输入:标题(必填)、限制(1-10)、语言(默认:“en”)
- 输出:具有关系类型的相关文章
错误处理
该服务器包括全面的错误处理功能,用于:
- 文章标题无效
- 网络超时
- 维基百科API错误
- 请求格式错误
- 速率限制
发展
项目结构
wikipedia-mcp-server/
├── src/wikipedia_mcp_server/
│ ├── __init__.py
│ ├── __main__.py
│ ├── server.py # Main MCP server
│ ├── models.py # Pydantic data models
│ └── wikipedia_client.py # Wikipedia API client
├── pyproject.toml
├── README.md
└── mvp.md演示关键MCP概念
- ✅ 工具注册
@mcp.tool() - ✅ Pydantic模型的结构化输入/输出
- ✅ 异步操作以提高性能
- ✅ 正确的错误处理和验证
- ✅ 清晰的工具文档
添加新工具
要添加新工具,请执行以下操作:
- 在中定义输出模型
models.py - 在中添加Wikipedia API方法
wikipedia_client.py - 在中注册该工具
server.py随着@mcp.tool()
性能注意事项
- 异步操作:所有维基百科API调用都是非阻塞的
- 响应时间:每次操作通常\<3秒
- 速率限制:尊重维基百科的指导方针
- 容错性:优雅地处理API故障
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
这个项目是开源的,可以在MIT许可证下使用。
致谢
- 使用 模型上下文协议
- 维基百科数据通过 维基百科REST API
- 使用 FastMCP 框架
______________________________________________________________________
与克劳德和维基百科一起研究快乐! 🔍📚
