使用说明
MCP工具服务器(Tavily搜索)🔧
这 服务器端组件 解耦研究代理架构。这个轻量级的FastAPI服务器将Tavily Search API公开为标准化的 模型上下文协议(MCP) 工具,允许远程人工智能代理在不持有API证书的情况下执行网络搜索。
注: 此服务器旨在与 Tavily 客户端它们共同展示了Agent AI的安全、解耦的微服务架构。
🚀 主要特点
1.符合MCP的工具曝光
实施 模型上下文协议 标准使用 FastMCP,允许任何兼容MCP的客户端发现和调用 web_search 工具动态。
2.安全凭证隔离
Tavily API密钥已存储 仅在服务器上客户端代理永远不会看到或处理敏感凭据,模拟企业级的关注点分离。
3.结构化响应格式
这 web_search 工具返回一个干净的JSON有效负载,其中包含:
answer: Tavily人工智能的预生成摘要。results: 包含以下内容的源对象列表title,url,以及content(为了提高令牌效率,截断为2000个字符)。
4.无状态HTTP传输
使用 streamable_http 传输(流式HTTP),支持在Render、Railway或Hugging Face Spaces等无服务器平台上进行部署,而不会出现粘滞会话。
🛠️ 建筑
graph TD
subgraph "MCP Server (This Repo)"
FastAPI[FastAPI App] --> MCP[FastMCP Session Manager]
MCP --> Tool["web_search() Tool"]
Tool --> Tavily((Tavily API))
end
subgraph "External Clients"
Client1[LangGraph Agent] -- "Streamable HTTP (JSON-RPC)" --> FastAPI
Client2[Claude Desktop] -- "Streamable HTTP (JSON-RPC)" --> FastAPI
Client3[Any MCP Client] -- "Streamable HTTP (JSON-RPC)" --> FastAPI
end
🔧 技术栈
- 框架: FastAPI+Uvicorn
- MCP-SDK:
mcp(Python SDKFastMCP包装) - 搜索引擎: Tavily Python客户端
- 运输: 可流式传输的HTTP
⚙️ 工具规格
web_search(query: str) -> str
| 参数 | 类型 | 说明 |
|---|---|---|
query |
str |
要执行的搜索查询 |
退货: 具有以下结构的JSON字符串:
{
"answer": "A concise AI-generated summary of the search results.",
"query": "The original query",
"results": [
{
"title": "Page Title",
"url": "https://source-url.com",
"content": "Truncated page content (max 2000 chars)..."
}
]
}
📦 安装和设置
先决条件
- Python 3.10+
- Tavilly API密钥(在这里买一个)
1.克隆存储库
git clone https://github.com/danielecelsa/chatbot-with-search.git
cd chatbot-with-search/tavily-server
2.安装依赖项
pip install -r requirements.txt
3.配置环境
创建 .env 此目录中的文件:
TAVILY_API_KEY=your_tavily_api_key
4.运行服务器
uvicorn server:app --host 0.0.0.0 --port 8000
MCP端点将在以下位置可用:
http://localhost:8000/tav/mcp
注意:服务器在端口上运行
8000(见Dockerfile).港口7860仅在部署到拥抱面部空间时使用。
🐳 Docker 部署
docker build -t mcp-tavily-server .
docker run -p 8000:8000 -e TAVILY_API_KEY=your_key mcp-tavily-server
🧪 测试端点
您可以使用任何兼容MCP的客户端测试MCP端点,也可以手动使用 curl:
# Health check (FastAPI)
curl http://localhost:8000/
# For MCP tool discovery, use an MCP client library
🔗 相关组件
| 组件 | 描述 | 链接 |
|---|---|---|
| Tavily 客户端 | 使用此服务器的基于LangGraph的AI代理 | 查看客户端 |
| 现场演示 | 完整系统的已部署版本 | 启动应用程序 |
Developed by Daniele Celsa
View Portfolio • LinkedIn
