使用说明

项目简介

Papaya 是一个 MCP 服务器,旨在为 Python Web 应用程序提供轻量级的实时可观测性功能。它通过包装现有的 Web 服务器(目前主要支持 FastAPI 应用),并暴露出符合 Model Context Protocol (MCP) 协议的接口,使得 MCP 客户端能够通过标准化的方式访问应用程序的运行日志,从而实现对应用程序的监控和问题诊断。

主要功能点

  • 日志收集与访问: Papaya 能够拦截并收集 Python Web 应用的关键运行日志,例如请求的进出、耗时较长的函数调用、以及被处理的异常等。这些日志信息被存储在内存中(有容量限制),并可以通过 MCP 协议提供的工具进行访问。
  • MCP 接口: Papaya 实现了 MCP 服务器的核心功能,允许 MCP 客户端通过 JSON-RPC 协议调用预定义的工具(Tools)来获取日志信息。
  • 易于集成: Papaya 通过简单的命令行包装方式集成到现有的 Python Web 应用启动命令中,无需修改应用程序代码即可启用观测性功能。
  • 安全性: 支持通过对称密钥进行安全访问,保护日志信息不被未授权的客户端获取 (虽然仓库代码中暂未体现对称密钥的具体实现,但README中提到了)。

安装步骤

  1. 安装 Papaya 包:
    pip install papaya-wrapper

服务器配置

为了让 MCP 客户端(如 Cursor)连接到 Papaya 服务器,您需要提供以下配置信息。这些信息通常配置在 MCP 客户端的 'servers' 字段中。

{
  "servers": [
    {
      "name": "Papaya Server",  // MCP 服务器的名称,可以自定义
      "command": "papaya",    // 启动 MCP 服务器的命令,即 papaya-wrapper 提供的 papaya 命令行工具
      "args": [              // 传递给 papaya 命令的参数
        "uvicorn",          // 指定使用 uvicorn 启动 web 应用 (Papaya 目前仅支持 uvicorn)
        "main:app",         // 你的 FastAPI 应用入口,例如 main.py 文件中的 app 变量
        "--host",           // (可选) uvicorn 的 host 参数,指定监听地址
        "0.0.0.0",          // (可选) 监听所有 IP 地址
        "--port",           // (可选) uvicorn 的 port 参数,指定端口
        "80"               // (可选) 监听端口 80
        // ... 其他 uvicorn 支持的参数
      ]
    }
  ]
}

参数注释:

  • '"name"': 为您的 Papaya MCP 服务器指定一个易于识别的名称。
  • '"command": "papaya"': 这是启动 Papaya MCP 服务器的关键命令,它会调用 'papaya-wrapper' 包提供的 'papaya' 命令行工具。
  • '"args"': 这个数组包含了传递给 'papaya' 命令的参数。
    • '"uvicorn"': 必须 作为第一个参数,表明使用 uvicorn 启动 Web 应用并集成 Papaya 的观测性功能。
    • '"main:app"': 请替换为您实际的 FastAPI 应用入口。这部分与您平时使用 'uvicorn' 启动应用时一致。例如,如果您的 FastAPI 应用定义在 'my_app.py' 文件的 'application' 变量中,则应填写 '"my_app:application"'。
    • '"--host", "0.0.0.0", "--port", "80"': 这些是 可选的 'uvicorn' 参数,用于配置 Web 服务器的监听地址和端口。您可以根据需要进行调整,或者添加其他 'uvicorn' 支持的参数。

重要提示:

  • 确保您的 Python Web 应用(例如 'main.py' 和 'app' 变量)在 MCP 客户端能够访问到的环境中。通常,MCP 客户端和 Papaya 服务器运行在同一台机器或网络环境下。
  • Papaya 目前主要设计用于与 FastAPI 框架的应用集成。
  • 仓库代码中 'mcp/main.py' 的示例代码 'server_endpoint = "localhost"' 和 'server_port = 8000' 可能需要根据您的实际 Web 应用运行地址和端口进行调整,但这部分代码更像是用于本地测试 'get_logs' 工具的,实际运行时 MCP 客户端会通过配置的 'command' 和 'args' 启动整个集成了 Papaya 的 Web 服务器。

基本使用方法

  1. 启动 Papaya 服务器: 根据上述服务器配置,在 MCP 客户端中配置好 'command' 和 'args' 后,启动 MCP 服务器。实际上,这将启动您的 Python Web 应用,并同时启用 Papaya 的 MCP 服务。
  2. 连接 MCP 客户端: 使用 MCP 客户端(如 Cursor)连接到配置的 Papaya 服务器。连接地址通常是您的 Web 应用的地址加上 '/papaya_mcp' 路径,例如 'http://userapp.com/papaya_mcp' (根据 README.md 中的描述推断,实际路径可能需要查看代码确认,但通常会是类似 '/mcp' 或 '/mcp_server' 这样的标准路径)。
  3. 调用工具 (Tools): 在 MCP 客户端中,您可以调用 Papaya 服务器提供的工具,例如 'get_logs' 工具。该工具允许您获取 Web 应用的运行日志信息。具体调用方式请参考 MCP 客户端的使用文档。
  4. 查看日志: MCP 客户端会接收到 Papaya 服务器返回的日志信息,您可以在客户端中查看和分析这些日志,用于监控应用状态和诊断问题。

示例场景: 假设您有一个 FastAPI 应用,入口文件是 'app.py',应用实例是 'app'。您希望在端口 8000 运行并使用 Papaya 进行观测。您可以使用以下配置:

{
  "servers": [
    {
      "name": "MyWebApp with Papaya",
      "command": "papaya",
      "args": [
        "uvicorn",
        "app:app",
        "--host",
        "0.0.0.0",
        "--port",
        "8000"
      ]
    }
  ]
}

然后,在 MCP 客户端连接到 'http://localhost:8000/papaya_mcp' (假设您的应用运行在本地),即可使用 'get_logs' 工具获取日志。

信息

分类

开发者工具