📚 MCP文档服务器-基于AI的文档搜索
一个模型上下文协议(MCP)服务器,使用人工智能从流行的Python库中智能搜索和检索文档。
  
🌟 特性
- 🔍 智能文档搜索 -来自LangChain、LlamaIndex、OpenAI和UV的查询文档
- 🤖 AI驱动的响应 -使用Groq LLM从文档中提供人类可读的答案
- ⚡ 快速异步 -内置async/await以获得最佳性能
- 🛠️ MCP协议 -标准模型上下文协议实现
- 🌐 网络爬取 -使用Trafiatura进行智能HTML到文本转换
- 🔗 多个API -集成搜索的Serper API和LLM响应的Groq
📸 截图
MCP Server Demo Documentation Search
🚀 快速开始
先决条件
- Python 3.12或更高版本
- UV包管理器 (推荐)
- API密钥:
- Serper API公司 用于网络搜索 - 格罗克API LLM回复
安装
- 克隆仓库
git clone https://github.com/Aadityayadav333/Building-Local-MCP-Server
cd mcp-docs-server- 设置环境
# Using UV (recommended)
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
# Or using pip
pip install -r requirements.txt- 配置环境变量
创建一个 .env 项目根目录中的文件:
SERPER_API_KEY=your_serper_api_key_here
GROQ_API_KEY=your_groq_api_key_here用法
运行MCP服务器
uv run mcp_server.py运行客户端(演示)
python client.py客户演示如何:
- 连接到MCP服务器
- 搜索文档
- 获取AI生成的响应
示例代码
import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import stdio_client
async def query_docs():
async with stdio_client(server_params) as (read_stream, write_stream):
async with ClientSession(read_stream, write_stream) as session:
await session.initialize()
# Search LangChain docs for ChromaDB integration
result = await session.call_tool(
"get_docs",
arguments={
"query": "chromadb integration",
"library": "langchain"
}
)
print(result.content)🛠️ 建筑
组件
- MCP服务器 (
mcp_server.py)
- 实现FastMCP服务器 - 提供 get_docs 文档搜索工具 - 通过Serper API处理网络搜索 - 获取和清理HTML内容
- 客户端 (
client.py)
- 演示MCP客户端的使用方法 - 与Groq LLM集成以生成响应 - 显示工具调用模式
- 公用事业 (
utils.py)
- 使用Trafilatura进行HTML到文本的转换 - LLM响应生成助手 - API集成
支持的文档来源
| 库 | 文档URL |
|---|---|
| 郎链 | https://python.langchain.com/docs |
| LlamaIdexhttps://docs.llamaindex.ai/en/stable | |
| OpenAI | https://platform.openai.com/docs |
| 紫外线 | https://docs.astral.sh/uv |
📖 API 参考
get_docs(query: str, library: str)
在文档中搜索指定的库。
参数:
query(str):搜索查询library(str):库名称(langchain,llama-index,openai,uv)
退货:
- 带有源URL的文档内容
例子:
result = await session.call_tool(
"get_docs",
arguments={
"query": "vector store setup",
"library": "langchain"
}
)🔧 配置
环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
SERPER_API_KEY | Serper搜索服务的API密钥 | 是 |
GROQ_API_KEY | Groq LLM的API密钥 | 是 |
定制
要添加更多文档源,请编辑 docs_urls 在 mcp_server.py:
docs_urls = {
"your-library": "https://docs.your-library.com",
}📦 依赖项
fastmcp>=2.14.1-MCP服务器框架httpx>=0.28.1-异步HTTP客户端trafilatura>=2.0.0-HTML到文本提取groq>=0.37.1-Groq API客户python-dotenv>=1.2.1-环境变量管理
🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📝 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
📬 联系
项目链接:(https://github.com/Aadityayadav333/Building-Local-MCP-Server)
______________________________________________________________________
🙏 学分
该项目的灵感来自并使用以下代码:
- \[哈桑的MCP教程\] - @艾薇哈桑 -基本MCP服务器实现
- 原始教程:\[https://youtu.be/U0boR8cqYqQ?si=E-VFgq1-U-E8rEF\]
特别感谢Hassan提供的优秀MCP服务器教程,该教程为本项目奠定了基础。
⭐ 如果你觉得这个项目有用,请考虑给它一颗星!
