这是一个基于FastMCP的微服务,借助LangChain社区实用工具搭建而成。它提供了搜索工具,可用于在Wikipedia上搜索信息,以及从Arxiv获取学术论文资料。
该项目展示了如何利用FastMCP
创建一个MCP(模型上下文协议)服务器。它提供了两个实用工具,可供Claude Desktop用于搜索Wikipedia和从Arxiv获取学术论文信息。
模型控制协议(MCP) 是一种协议,它能让语言模型(如Claude)以标准方式与外部工具(即“能力”)进行通信。这些“能力”可以是用任何语言编写的函数、网络API或者本地脚本。借助MCP,Claude可以调用你的工具、获取响应并继续对话。
此信息服务器通过MCP开放了两个工具:
get_info(searchterm: str)
— 在Wikipedia上搜索简短摘要。get_research_paper(searchterm: str)
— 在Arxiv上获取学术论文元数据。此工具通过MCP开放了两个兼容的端点:
get_info
:在Wikipedia上搜索信息。get_research_paper
:从Arxiv获取学术论文的信息。uv init simple_mcp_server
cd simple_mcp_server
source env/bin/activate # 对于Mac/Linux
# 或者
.\env\Scripts\activate # 对于Windows
pip install mcp[cli] langchain-community wikipedia arxiv
uv run server.py
from langchain_community.wikipedia import WikipediaAPI
# 初始化Wikipedia API工具
wiki_tool = WikipediaAPI()
# 调用搜索功能
result = wiki_tool.search("Donald Trump")
print(result)
import arxiv
# 初始化Arxiv客户端
client = arxiv.Client()
# 搜索论文
papers = client.search("AI in finance", max_results=5)
for paper in papers:
print(paper.title, paperauthors))
import os
from langchain_community import wikipedia, arxiv
# 初始化Wikipedia和Arxiv工具
wiki_tool = WikipediaAPI()
arxiv_tool = arxiv.Client()
# 创建MCP代理
class MCPAgent:
def __init__(self):
self.tools = [wiki_tool, arxiv_tool]
async def run(self, query):
# 根据查询选择合适的工具
if "Wikipedia" in query:
return wiki_tool.search(query)
else:
return arxiv_tool.search(query)
# 初始化代理
agent = MCPAgent()
# 执行搜索任务
result = await agent.run("tell me about donald trump")
print(f"\n结果: {result}")
编辑Claude Desktop的配置文件,添加以下内容:
"display": ":1"
启动Claude Desktop并连接到MCP服务器。
该项目展示了如何通过FastMCP快速创建一个功能强大的信息检索服务器。无论是用于个人研究还是企业应用,都可以根据需求灵活扩展和定制。