项目简介

这个仓库展示了如何使用FastMCP库快速搭建一个符合Model Context Protocol (MCP) 的本地服务器,并将其与LangChain等大型语言模型(LLM)客户端集成。服务器使用了'yfinance'库来提供访问股票数据的工具,而客户端(一个LangChain代理)可以调用这些工具来获取并利用股票信息回答用户的自然语言查询。

主要功能点

  • 提供股票综合信息查询工具。
  • 提供股票季度财务数据查询工具。
  • 提供股票年度财务数据查询工具。
  • 使用FastMCP库极大地简化了MCP服务器的创建和工具注册过程。
  • 通过标准输入/输出(Stdio)协议实现本地客户端与服务器的高效通信。
  • 作为MCP服务器,可供任何兼容MCP协议的LLM客户端(如本例中的LangChain)调用其注册的工具。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/botextractai/ai-mcp-server-client-fastmcp.git
  2. 进入项目目录:
    cd ai-mcp-server-client-fastmcp
  3. 安装依赖: 确保你安装了Python环境,然后安装项目所需的依赖库。
    pip install fastmcp langchain-mcp-adapters langchain-openai langgraph python-dotenv yfinance pandas
    (注意:如果你遇到依赖问题,可能需要查找并安装特定的版本)
  4. 配置OpenAI API Key: 本项目客户端示例使用了OpenAI的LLM。你需要提供一个OpenAI API Key。
    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 编辑 '.env' 文件,将你的OpenAI API Key粘贴到 'OPENAI_API_KEY=' 后面。

服务器配置(供客户端连接参考)

MCP服务器是为MCP客户端提供服务的后端。客户端需要知道如何启动或连接到这个服务器。对于这个本地Stdio示例,客户端在启动时会通过以下参数来运行服务器脚本:

{
  "server_name": "stocks",       // MCP服务器在协议中声明的名称
  "command": "python",          // 用于启动服务器进程的命令
  "args": ["mcp_server.py"]     // 传递给启动命令的参数列表,指向服务器脚本文件
  // 注意:这是一个本地Stdio连接的配置示例,服务器进程由客户端启动。
  // 对于远程MCP服务器,客户端通常需要配置服务器的网络地址 (host, port) 或连接URL。
}

基本使用方法

配置好API Key并安装完依赖后,在项目根目录下运行客户端脚本即可:

python mcp_client.py

客户端脚本 ('mcp_client.py') 会自动执行以下操作:

  1. 根据配置('server_params'),使用'python mcp_server.py'命令启动本地MCP服务器进程。
  2. 通过Stdio与启动的服务器建立MCP连接。
  3. 初始化MCP会话并从服务器加载可用的工具信息。
  4. 创建一个LangChain ReAct代理,并将加载的工具提供给它。
  5. 向代理发送一个关于股票(META)的问题。
  6. 代理根据问题规划并调用MCP服务器提供的股票查询工具。
  7. MCP服务器执行工具并将结果返回给客户端。
  8. 代理利用工具返回的信息生成回答。
  9. 客户端脚本打印出工具的调用结果和最终的回答。

示例输出中会显示代理调用工具返回的原始数据(股票信息、财务数据等)。

信息

分类

AI与计算