使用说明

项目简介

AgentR Middleware MCP服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型 (LLM) 应用提供上下文信息和功能。它通过集成各种应用(如GitHub, ZenQuote, Tavily, OpenWeather)和外部服务(通过Nango集成),将它们的功能以工具的形式暴露给LLM客户端。服务器采用SSE (Server-Sent Events) 协议与客户端通信,提供实时的工具调用和数据访问能力。

主要功能点

  • 资源管理 (Resources): 通过集成不同的应用,服务器可以管理来自这些应用的数据资源,例如GitHub仓库信息、天气数据、网页搜索结果等。(虽然代码中没有明确“资源”的概念,但集成的应用可以被视为资源提供者)
  • 工具注册和执行 (Tools): 服务器能够注册来自不同应用的工具,并允许LLM客户端通过MCP协议调用这些工具。例如,'star_repository' (GitHub), 'get_weather' (OpenWeather), 'search' (Tavily), 'get_quote' (ZenQuote)。
  • 集成管理 (Integrations): 支持通过Nango和AgentR平台集成外部服务,简化了OAuth认证和API密钥管理。
  • 会话管理: 服务器为每个用户和工作区创建独立的Server实例,实现会话隔离。(虽然代码中会话管理不明显,但'Server'类初始化时接受'user_id'和'workspace_id'暗示了这一点)
  • SSE传输协议: 使用 Server-Sent Events 作为主要的传输协议,实现实时的双向通信。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/AgentrDev/middleware.git
    cd middleware
  2. 安装依赖 (虽然仓库中没有明确的依赖管理文件,但根据代码推测可能需要安装以下库):
    pip install fastapi uvicorn httpx loguru mcp-server langchain-anthropic langchain-core langchain-mcp-adapters
    请注意,可能需要根据实际运行情况安装缺少的依赖库。

服务器配置

MCP客户端需要配置以下信息以连接到 AgentR Middleware MCP服务器。以下是基于仓库代码生成的配置信息示例 (JSON 格式):

{
  "server_name": "agentr_middleware",
  "command": "python",
  "args": ["src/agentr/app.py"],
  "transport": "sse",
  "transport_url": "http://localhost:8000/sse"
}

配置参数说明:

  • 'server_name': 服务器名称,可以自定义,例如 "agentr_middleware"。
  • 'command': 启动服务器的命令,通常为 'python'。
  • 'args': 启动命令的参数,指向服务器入口文件 'src/agentr/app.py'。
  • 'transport': 传输协议,设置为 'sse' (Server-Sent Events)。
  • 'transport_url': SSE协议的URL,默认为 'http://localhost:8000/sse' (根据 'app.py' 中配置的路由)。

重要提示:

  • 确保Python环境已正确安装并配置。
  • 上述配置假设服务器在本地运行,端口为 '8000'。如果需要更改端口或部署到远程服务器,请相应修改 'src/agentr/app.py' 中的 'uvicorn.run' 配置和客户端的 'transport_url'。
  • 仓库中使用了Nango和AgentR的API密钥 '"7261c2fd-91aa-4ba1-9657-a34b2a0e4272"',这很可能是测试或示例用途的密钥。在实际生产环境中,务必替换为自己的有效API密钥,并妥善管理。

基本使用方法

  1. 启动服务器: 在仓库根目录下,打开终端并运行配置中 'command' 和 'args' 指定的命令:

    python src/agentr/app.py

    服务器成功启动后,会监听 'http://localhost:8000'。

  2. 配置MCP客户端: 在你的MCP客户端应用中,根据上述 “服务器配置” 部分提供的 JSON 配置信息,配置连接到 AgentR Middleware MCP服务器。

  3. 调用工具: 客户端连接成功后,可以向服务器发送MCP请求,例如列出可用工具、调用特定工具等。 具体工具的调用方法和参数,请参考各个工具的文档或代码注释(例如 'github.py', 'openweather.py', 'tavily.py', 'zenquote.py' 中的工具函数)。

例如,在 'agent/graph.py' 中提供了一个使用 'langchain_mcp_adapters.client' 连接到本地 AgentR MCP 服务器并调用工具的示例。你可以参考该示例进行客户端开发。

from langchain_mcp_adapters.client import MultiServerMCPClient
...
async with MultiServerMCPClient(
    {
        "agentr": {
            "url": "http://localhost:8000/sse",
            "transport": "sse",
        },
    }
) as client:
    tools = client.get_tools()
    # ... 调用 tools 中的工具

请注意: 本使用说明基于对仓库代码的分析推断,可能与实际情况略有差异。 详细的使用方法和API文档,请参考项目仓库的官方文档或联系开发者。

信息

分类

网页与API