维基百科研究助理
一个强大的MCP(模型上下文协议)服务器,将维基百科转变为好奇的头脑的智能研究伴侣——学生、记者、研究人员和需要快速、结构化访问维基百科庞大知识库的专业人士。
遵循教育性MCP基础课程实施
🎯 目的
用户现在可以问自然语言问题,比如:
- “跟我说说阿兰·图灵”
- “总结碳循环主题”
- “什么是量子计算?”
并收到干净、结构化的回复,其中包含:
- 简明摘要:提取和总结关键信息
- 文章标题:确切的维基百科文章标题
- 直连:指向完整维基百科页面的URL,以便更深入地阅读
✨ 特性
- 自然语言查询:用简单的英语提问
- 结构化响应:获取有组织的信息,而不是原始文章文本
- 智能错误处理:优雅地处理消歧、缺失页面和搜索失败
- 直接访问:直接链接到完整文章以供进一步研究
- MCP集成:使用FastMCP的模型上下文协议构建,实现无缝的AI助手集成
🏗️ 建筑
本项目使用以下工具实现了知识助理系统的服务器组件:
- python:核心服务器实施
- FastMCP:来自官方MCP SDK的简化MCP服务器框架
- 维基百科API:通过直接访问维基百科的内容
wikipediaPython包 - 智能处理:内容提取和错误处理
🚀 入门指南
先决条件
- Python 3.8或更高版本
- pip包管理器
- 用于访问维基百科API的互联网连接
安装
- 克隆存储库
git clone https://github.com/shuhaimiao/wikipedia-research-assistant.git
cd wikipedia-research-assistant- 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项
pip install -r requirements.txt- 在开发模式下安装软件包
pip install -e .🔧 用法
运行MCP服务器
# Start the MCP server (stdio transport)
python src/wikipedia_assistant/server.py或者使用示例runner:
python examples/run_server.py测试工具功能
# Run the demonstration script
python examples/test_tool.py可用工具
fetch_wikipedia_info(query: str) -> dict
在维基百科中搜索一个主题并返回结构化信息。
参数:
query:关于任何主题的自然语言查询
退货:
- 成功:
{"title": str, "summary": str, "url": str} - 没有结果:
{"error": "No results found for your query."} - 消除分歧:
{"error": "Ambiguous topic. Try one of these: ..."} - 页面错误:
{"error": "No Wikipedia page could be loaded for this query."}
示例用法:
from src.wikipedia_assistant.server import fetch_wikipedia_info
# Successful query
result = fetch_wikipedia_info("Python programming language")
print(f"Title: {result['title']}")
print(f"Summary: {result['summary'][:100]}...")
print(f"URL: {result['url']}")
# Handle errors
result = fetch_wikipedia_info("nonexistent topic")
if "error" in result:
print(f"Error: {result['error']}")🧪 测试与分析
核心测试
# Run all tests
pytest
# Run specific tests
pytest tests/test_wikipedia_tool.py -v
# Run with coverage
pytest --cov=srcMCP分析和演示
该存储库包括全面的分析工具,用于了解MCP的工作原理:
# Validate MCP configuration and setup
python test_mcp_config.py
# See what metadata your MCP server exposes to AI agents
python demonstrate_mcp_metadata.py
# Analyze how LLM hyperparameters affect tool selection
python llm_hyperparameters_impact.py
# Test tool functionality with various queries
python examples/test_tool.py了解MCP智能
展示的关键见解:
- AI代理如何自动发现和选择工具
- 为什么语义匹配比关键字匹配更有效
- LLM质量和超参数如何影响刀具选择
- 设计MCP兼容工具的最佳实践
📚 综合文件:
MCP_TOOL_SELECTION_EXPLAINED.md-深入了解VS Code如何选择您的工具MCP_INTEGRATION_GUIDE.md-VS Code和游标的完整设置指南QUICK_MCP_REFERENCE.md-复制粘贴配置DOCUMENTATION_INDEX.md-所有文档的导航指南
📁 项目结构
wikipedia-research-assistant/
├── src/
│ └── wikipedia_assistant/
│ ├── __init__.py
│ ├── server.py # Main MCP server (Educative course implementation)
│ ├── models.py # Data models
│ ├── summarizer.py # Content summarization
│ └── wikipedia_client.py # Wikipedia API client
├── tests/
│ ├── test_setup.py # Setup verification tests
│ ├── test_wikipedia_tool.py # Wikipedia tool tests
│ ├── test_integration.py # Integration tests
│ └── ...
├── examples/
│ ├── run_server.py # Server runner example
│ └── test_tool.py # Tool demonstration
├── docs/ # Additional documentation
├── mcp-config-vscode.json # VS Code MCP configuration
├── mcp-config-cursor.json # Cursor MCP configuration
├── test_mcp_config.py # MCP configuration validator
├── demonstrate_mcp_metadata.py # MCP metadata analysis
├── llm_hyperparameters_impact.py # Hyperparameter impact analysis
├── MCP_TOOL_SELECTION_EXPLAINED.md # Deep dive into tool selection
├── MCP_INTEGRATION_GUIDE.md # Complete integration guide
├── QUICK_MCP_REFERENCE.md # Quick reference configurations
├── DOCUMENTATION_INDEX.md # Documentation navigation
├── IMPLEMENTATION_SUMMARY.md # What we built summary
├── requirements.txt # Dependencies
├── setup.py # Package configuration
├── README.md # This file
└── SETUP_GUIDE.md # Detailed setup instructions🔍 运作原理
基本流程
- 查询处理:自然语言问题直接传递给维基百科的搜索API
- 内容检索:系统获取最匹配的维基百科文章
- 结构化响应:结果的格式包括标题、摘要和源链接
- 错误处理:优雅地处理消歧、缺失页面和搜索失败
- MCP集成:使用FastMCP通过模型上下文协议公开所有功能
🧠 智能刀具选择(MCP Magic)
该项目演示了AI助手(如VS Code的AI代理)如何自动智能地选择合适的工具:
当你问:“告诉我关于人工智能的事”
- 工具发现:AI代理通过MCP元数据发现可用工具
- 语义分析:AI理解你的意图(寻找关于某个主题的信息)
- 智能匹配:AI将您的意图与工具功能相匹配
- 自动选择:AI选择
fetch_wikipedia_info无需手动配置 - 结构化响应:AI将返回的数据格式化为自然语言
实现这一目标的关键因素:
- 元数据:清晰的工具名称和描述(
fetch_wikipedia_info) - 类型兼容性:字符串查询输入与用户的主题请求匹配
- 结构化输出:字典返回格式非常适合AI处理
- 语义清晰度:“维基百科”+“搜索”+“主题”=目的明确
🎛️ LLM依赖关系和超参数影响
刀具选择的质量取决于:
LLM能力:
- 高级法学硕士 (GPT-4,Claude):完善的语义分析和工具选择
- 基础法学硕士:可能需要更明确的关键字丰富描述
超参数设置:
- 温度(0.4-0.6):工具选择的一致性和灵活性平衡
- Top-K/Top-P:保守的设置确保了可靠的工具选择
- 生产vs发展:不同的设置优化了一致性与探索性
📊 在行动中看到它:运行 python llm_hyperparameters_impact.py 了解不同的LLM设置如何影响刀具选择质量和一致性。🌟 查询示例
查询成功
- “Python编程语言”→ 返回关于Python的综合文章
- “人工智能”→ 返回AI概述和应用程序
- “碳循环”→ 返回生物地球化学过程信息
错误处理
- “不存在查询12345”→ “未找到您的查询结果。”
- 水星→ “模棱两可的话题。试试其中之一:水星(行星)、水星(元素)……”
🔬 关键研究见解
这个存储库超越了简单的维基百科工具,它提供了对MCP和AI工具选择工作原理的深入见解:
🧠 MCP情报发现
1.自动刀具发现
- AI代理通过MCP元数据自动发现工具
- 无需手动配置或注册
- 丰富的元数据(名称、描述、类型)指导智能选择
2.关键词语义匹配
- AI代理使用语义理解,而不仅仅是关键字匹配
- “跟我说说人工智能”→ 了解信息寻求意图
- 智能地将用户意图与工具功能相匹配
3. LLM质量依赖
- 工具选择质量在很大程度上取决于底层LLM能力
- 高级法学硕士(GPT-4,克劳德)→ 完善的语义分析
- 基础法学硕士→ 可能需要更明确、关键字丰富的描述
4.超参数影响
- 温度、top-k、top-p显著影响刀具选择的一致性
- 建议用于MCP:温度0.4,Top-K 30,Top-P 0.85
- 在选择工具时,一致性比创造力更重要
🎯 展示设计最佳实践
元数据卓越:
- 清晰、描述性的函数名称(
fetch_wikipedia_info) - 解释工具用途的综合文档字符串
- 参数兼容性的正确类型提示
- 结构化返回格式(dict)非常适合人工智能处理
错误处理策略:
- 优雅的消歧处理
- 清除缺失内容的错误消息
- 边缘情况下的回退行为
🔍 已创建分析工具
配置验证:
test_mcp_config.py-验证MCP设置(6项综合测试)- 确保正确的Python路径、服务器可访问性和配置
元数据分析:
demonstrate_mcp_metadata.py-显示AI代理看到的内容- 显示驱动智能工具选择的元数据
超参数研究:
llm_hyperparameters_impact.py-综合分析- 显示LLM设置如何影响刀具选择质量和一致性
🛠️ 发展
运行测试
pytest tests/ -v代码质量
# Format code
black src/ tests/
# Lint code
flake8 src/ tests/
# Type checking
mypy src/🤝 致谢
- 灵感来自: Education的MCP基础课程
- 由...驱动: 维基百科API 通过
wikipediaPython包
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🔗 链接
______________________________________________________________________
🎉 是什么让这个存储库与众不同
这不仅仅是一个维基百科工具,它是一个 MCP综合研究项目 即:
✅ 实施教育课程解决方案 -MCP基础课程中的精确代码\ ✅ 展示MCP智能 -展示AI代理如何自动选择工具\ ✅ 提供深入分析 -揭示工具选择背后的科学\ ✅ 包括研究工具 -用于分析元数据、超参数和配置的脚本\ ✅ 提供完整的文档 -从设置到高级MCP概念\ ✅ 展示最佳实践 -MCP工具设计的成熟模式
准备好探索维基百科和MCP背后的智能了吗? 🚀
你的维基百科研究助理演示了MCP完全按照设计工作——由丰富的元数据和复杂的人工智能推理支持的智能、自动的工具选择。但更重要的是,它揭示了 如何以及为什么 这个魔法奏效了!
🔍 开始探索:
- 设置工具:
python test_mcp_config.py - 查看元数据:
python demonstrate_mcp_metadata.py - 了解智能:阅读
MCP_TOOL_SELECTION_EXPLAINED.md - 分析超参数:
python llm_hyperparameters_impact.py
此存储库将您从MCP用户转变为MCP专家! 🎓
