项目简介

ProspectPro MCP 服务层是基于 Model Context Protocol (MCP) 构建的一系列应用后端。这些服务器的核心职责是以标准化方式向 LLM 客户端提供上下文信息和功能。它们通过 JSON-RPC 协议与客户端通信,托管并管理系统资源,注册和执行工具,并支持可定制的 LLM 交互模式。该服务层特别注重于为 ProspectPro 平台提供运维诊断、性能监控、记忆能力和决策流程的可追溯性,并深度集成了 OpenTelemetry 追踪和 Supabase 日志。

主要功能点

  • 可观测性服务 (Observability Server): 提供分布式追踪和监控能力。它允许 AI 代理启动、管理并结束分布式追踪,在追踪中添加事件,以及查询和生成性能分析报告。这有助于理解复杂工作流的执行情况。
  • Supabase 故障排除服务 (Supabase Troubleshooting Server): 专门为基于 Supabase 的后端系统提供诊断和故障排除工具。功能包括测试 Edge Functions、验证数据库权限、诊断配置错误(如 Anon Key 不匹配)、生成 RLS(行级安全)诊断查询以及收集和总结 Supabase 日志。
  • 记忆服务器 (Memory Server): 管理一个知识图谱,为 AI 代理提供持久化的记忆能力。它支持创建、读取、更新和删除实体、实体间的关系以及对实体的观察数据,帮助 AI 代理存储和检索重要的上下文信息。
  • 顺序思维服务器 (Sequential Thinking Server): 提供一个独特的工具,用于管理和记录 AI 代理的多步骤“思维链”过程。它支持 AI 代理进行结构化思考、修订已有想法、探索不同决策分支和验证假设,从而帮助处理复杂的决策任务。
  • 标准化工具接口: 所有 MCP 服务器的功能都通过标准化的 JSON-RPC 协议以“工具”的形式暴露出来,使得 LLM 客户端可以方便地发现和调用这些功能。
  • 日志与追踪集成: 深度整合 OpenTelemetry (OTEL) 收集器和 Supabase 日志,确保所有服务器操作都可追溯、可监控,并能进行详细的性能和错误分析。

安装步骤

  1. 克隆项目仓库:
    git clone https://github.com/Alextorelli/ProspectPro.git
    cd ProspectPro
  2. 安装项目依赖:
    npm install
  3. 启动本地 Supabase 环境 (仅供本地开发和测试): 如果您的 MCP 服务器需要与 Supabase 数据库或 Edge Functions 交互,您需要启动本地 Supabase 实例:
    supabase start
    请确保您的 '.env' 或环境变量中已正确配置 'SUPABASE_URL' 和 'SUPABASE_SERVICE_ROLE_KEY'。
  4. 配置 Jaeger (可选,用于OpenTelemetry追踪可视化): 如果需要使用可观测性服务器的分布式追踪功能,您需要在本地运行 Jaeger。最简单的方式是使用 Docker:
    docker run -d --name jaeger \
      -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
      -e COLLECTOR_OTLP_ENABLED=true \
      -p 6831:6831/udp \
      -p 6832:6832/udp \
      -p 16686:16686 \
      -p 4317:4317 \
      -p 4318:4318 \
      -p 14250:14250 \
      -p 14268:14268 \
      -p 14269:14269 \
      -p 9411:9411 \
      jaegertracing/all-in-one:latest
    然后,根据 Jaeger 的实际运行地址,配置相应的 'JAEGER_ENDPOINT' 环境变量。

服务器配置 (MCP 客户端使用)

MCP 客户端需要知道如何连接到这些 MCP 服务器。以下是 ProspectPro MCP 服务层中几个主要服务器的配置信息示例(JSON 格式),您的 MCP 客户端将需要这些信息来建立连接:

  • 可观测性服务器 (Observability Server):

    • 'server name': 'observability'
    • 'command': 'node'
    • 'args': 'dev-tools/agents/mcp-servers/observability-server.js'
    • 'env':
      • 'JAEGER_ENDPOINT': 'http://localhost:14268/api/traces' (根据您的 Jaeger 部署情况调整)
  • Supabase 故障排除服务器 (Supabase Troubleshooting Server):

    • 'server name': 'supabase-troubleshooting'
    • 'command': 'node'
    • 'args': 'dev-tools/agents/mcp-servers/supabase-troubleshooting-server.js'
    • 'env':
      • 'SUPABASE_URL': 'https://your-supabase-project-ref.supabase.co' (替换为您的 Supabase 项目 URL)
      • 'SUPABASE_SERVICE_ROLE_KEY': 'your_supabase_service_role_key' (替换为您的 Supabase Service Role Key)
  • 记忆服务器 (Memory Server):

    • 'server name': 'memory'
    • 'command': 'node'
    • 'args': 'dev-tools/agents/mcp-servers/mcp-tools/memory/index.ts'
    • 'env':
      • 'MCP_MEMORY_FILE_PATH': 'dev-tools/agents/context/session_store/memory.jsonl' (或您选择的其他路径)
  • 顺序思维服务器 (Sequential Thinking Server):

    • 'server name': 'sequential-thinking'
    • 'command': 'node'
    • 'args': 'dev-tools/agents/mcp-servers/mcp-tools/sequential/index.ts'
    • 'env':
      • 'SEQUENTIAL_LOG_PATH': 'dev-tools/agents/context/session_store/sequential-thoughts.jsonl' (或您选择的其他路径)

您的 MCP 客户端将使用 'server name' 来识别服务器,并使用 'command' 和 'args' 来启动服务器进程,然后通过标准输入/输出 (Stdio) 管道进行 JSON-RPC 通信。'env' 部分包含服务器运行时可能需要的环境变量。

基本使用方法

  1. 启动 MCP 服务器: 打开您的终端,导航到项目根目录,并根据需要启动一个或多个 MCP 服务器。例如,启动可观测性服务器:
    node dev-tools/agents/mcp-servers/observability-server.js
    如果您已在项目中配置了 'npm run mcp:start' 命令,可以直接运行它来启动所有配置好的 MCP 服务器。
  2. 通过 MCP 客户端交互: 使用您的 MCP 客户端(例如,基于 Model Context Protocol SDK 构建的 LLM 客户端)连接到已启动的服务器。客户端需要使用上述“服务器配置”中提供的 'server name' 和 'command'/'args' 信息来建立连接。
  3. 调用服务器工具: 连接成功后,LLM 客户端可以首先发送一个 'tool_code/list_tools' 请求来获取服务器支持的所有工具列表。例如,连接到可观测性服务器后,可以调用其 'health_check' 工具来检查服务状态:
    {
      "jsonrpc": "2.0",
      "method": "tool_code/call_tool",
      "params": {
        "name": "health_check",
        "arguments": {}
      },
      "id": 123
    }
    客户端将接收到 JSON-RPC 响应,其中包含工具的执行结果。其他工具(如 'start_trace'、'query_traces'、'create_entities' 等)也可以通过类似的方式调用,并传入相应的参数。

信息

分类

AI与计算