Intelli MCP 服务器构建工具使用说明

项目简介

Intelli是一个用于构建AI智能体和工作流的框架,它同时提供了方便的工具来构建和运行Model Context Protocol (MCP) 服务器。这些MCP服务器可以将数据资源(如DataFrame)和外部功能(工具)以标准化的方式提供给支持MCP协议的LLM客户端或Intelli自身的工作流。

主要功能点

  • 快速构建MCP服务器: 使用提供的工具类(如 'MCPServerBuilder', 'PandasMCPServerBuilder', 'PolarsMCPServerBuilder'),通过装饰器轻松注册Python函数作为MCP工具。
  • 暴露数据资源: 特别提供了用于暴露Pandas或Polars DataFrame的工具,使LLM能够查询、过滤和操作数据。
  • 支持多种传输协议: 服务器可以配置为使用Stdio(标准输入输出)或HTTP(包括可流式传输的HTTP)等协议进行通信。
  • 无状态HTTP支持: 可选择配置无状态HTTP服务器,简化集成。
  • 与Intelli工作流集成: 构建的MCP服务器可以无缝地作为Intelli工作流中的MCP Agent来使用。

安装步骤

要安装包含MCP支持的Intelli库,请运行:

pip install "intelli[mcp]" pandas # 如果需要DataFrame功能,安装pandas或polars

或者如果需要同时支持pandas和polars:

pip install "intelli[mcp]" pandas polars

服务器配置

MCP服务器需要作为独立的进程运行,供MCP客户端连接。MCP客户端(例如Intelli的MCP Agent)需要知道如何启动或连接到服务器。以下是MCP客户端配置连接信息的方式(这不是服务器的配置文件,而是客户端调用时所需的参数描述):

  • 对于Stdio传输协议 (例如基础Math服务器): 客户端需要指定启动服务器进程的命令 (command)参数 (args)

    {
      "command": "你的Python解释器路径", 
      "args": ["服务器脚本文件路径"],
      "tool": "要调用的工具名称", // 例如 "add", "get_head"
      "arg_<参数名>": "参数值" // 例如 "arg_a": 5, "arg_n": 3
    }
    • 'command': 运行服务器脚本的可执行程序路径 (例如 '/usr/bin/python3' 或 'C:\Python\python.exe')。在很多环境中可以使用 '"command": "python"' 或 '"command": "sys.executable"'。
    • 'args': 传递给命令的参数列表,通常包含服务器脚本本身的路径。
    • 'tool': 指定客户端希望服务器执行的具体工具(函数)名称。
    • 'arg_<参数名>': 传递给指定工具的参数。客户端通过在参数名前加 'arg_' 前缀来发送参数。
  • 对于HTTP传输协议 (例如HTTP Calculator或DataFrame服务器): 客户端需要知道服务器运行的URL

    {
      "url": "服务器的HTTP端点URL", // 例如 "http://localhost:8000/mcp"
      "tool": "要调用的工具名称", // 例如 "add", "get_schema"
      "arg_<参数名>": "参数值" // 例如 "arg_b": 10, "arg_columns": ["Name", "Salary"]
    }
    • 'url': MCP服务器监听的完整HTTP URL。
    • 'tool': 指定客户端希望服务器执行的具体工具(函数)名称。
    • 'arg_<参数名>': 传递给指定工具的参数。

基本使用方法

  1. 编写服务器脚本: 创建一个Python文件 (例如 'my_mcp_server.py')。 导入 'MCPServerBuilder' 或相应的DataFrame Builder。 创建Builder实例,可以选择启用 'stateless_http=True'。 使用 '@builder.add_tool' 装饰器定义函数(工具)。 在 'if name == "main":' 块中调用 'builder.run()' 并指定 'transport'(例如 '"stdio"' 或 '"streamable-http"')。

  2. 运行服务器: 在终端中直接运行你的服务器脚本: 'python my_mcp_server.py' 如果使用HTTP,服务器会监听指定的地址和端口。如果使用Stdio,它会等待客户端连接。

  3. 客户端连接和调用(例如使用Intelli Flow): 在另一个Python脚本中,使用Intelli的 'Agent' 类创建一个MCP Agent。 'agent_type' 设置为 '"mcp"','provider' 设置为 '"mcp"'。 在 'model_params' 中配置服务器的连接信息('command'/'args' 或 'url')以及要调用的 'tool' 和 'arg_<参数名>'。 将此Agent添加到Intelli Flow或Task中执行。

    示例 (Stdio):

    # 假设你的服务器脚本在 /path/to/my_mcp_server.py
    mcp_agent = Agent(
        agent_type="mcp",
        provider="mcp",
        mission="执行计算",
        model_params={
            "command": "python",
            "args": ["/path/to/my_mcp_server.py"],
            "tool": "add",
            "arg_a": 5,
            "arg_b": 10
        }
    )
    # 在Flow中使用此Agent

    示例 (HTTP):

    # 假设你的HTTP服务器运行在 http://localhost:8000/mcp
    mcp_agent = Agent(
        agent_type="mcp",
        provider="mcp",
        mission="查询数据",
        model_params={
            "url": "http://localhost:8000/mcp",
            "tool": "get_head",
            "arg_n": 5
        }
    )
    # 在Flow中使用此Agent

通过以上步骤,你可以使用Intelli框架提供的功能轻松构建和集成自定义的MCP服务器到你的AI应用和工作流中。

信息

分类

AI与计算