项目简介
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 日志,确保所有服务器操作都可追溯、可监控,并能进行详细的性能和错误分析。
安装步骤
- 克隆项目仓库:
git clone https://github.com/Alextorelli/ProspectPro.git cd ProspectPro - 安装项目依赖:
npm install - 启动本地 Supabase 环境 (仅供本地开发和测试):
如果您的 MCP 服务器需要与 Supabase 数据库或 Edge Functions 交互,您需要启动本地 Supabase 实例:
请确保您的 '.env' 或环境变量中已正确配置 'SUPABASE_URL' 和 'SUPABASE_SERVICE_ROLE_KEY'。supabase start - 配置 Jaeger (可选,用于OpenTelemetry追踪可视化):
如果需要使用可观测性服务器的分布式追踪功能,您需要在本地运行 Jaeger。最简单的方式是使用 Docker:
然后,根据 Jaeger 的实际运行地址,配置相应的 'JAEGER_ENDPOINT' 环境变量。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
服务器配置 (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' 部分包含服务器运行时可能需要的环境变量。
基本使用方法
- 启动 MCP 服务器:
打开您的终端,导航到项目根目录,并根据需要启动一个或多个 MCP 服务器。例如,启动可观测性服务器:
如果您已在项目中配置了 'npm run mcp:start' 命令,可以直接运行它来启动所有配置好的 MCP 服务器。node dev-tools/agents/mcp-servers/observability-server.js - 通过 MCP 客户端交互: 使用您的 MCP 客户端(例如,基于 Model Context Protocol SDK 构建的 LLM 客户端)连接到已启动的服务器。客户端需要使用上述“服务器配置”中提供的 'server name' 和 'command'/'args' 信息来建立连接。
- 调用服务器工具:
连接成功后,LLM 客户端可以首先发送一个 'tool_code/list_tools' 请求来获取服务器支持的所有工具列表。例如,连接到可观测性服务器后,可以调用其 'health_check' 工具来检查服务状态:
客户端将接收到 JSON-RPC 响应,其中包含工具的执行结果。其他工具(如 'start_trace'、'query_traces'、'create_entities' 等)也可以通过类似的方式调用,并传入相应的参数。{ "jsonrpc": "2.0", "method": "tool_code/call_tool", "params": { "name": "health_check", "arguments": {} }, "id": 123 }
信息
分类
AI与计算