跳转到主要内容

MCP 服务器

Snoopy 提供第一方 MCP(Model Context Protocol,模型上下文协议)服务器,用于智能体的编程式访问。该服务器通过 stdio 传输将 Snoopy 的完整监控面作为 MCP 工具暴露出来。

启动服务器

snoopy mcp

服务器通过 stdio 传输运行,旨在由 MCP 客户端(智能体框架)派生。它不接受交互式输入。

传输和范围

  • 传输方式:stdio(JSON-RPC 消息在 stdout 上输出,日志在 stderr 上输出)
  • 预期用途:本地进程派生的 MCP 客户端
  • 协议:MCP 1.0,支持 initialize、tools/list 和 tools/call

可用工具

服务器暴露 19 个工具,按类别组织:

健康检查工具

工具描述
snoopy_doctor完整系统健康检查(数据库、API 密钥、守护进程、任务、启动、最近错误)

守护进程工具

工具描述
snoopy_daemon_status显示守护进程是否运行及其 PID
snoopy_daemon_start启动后台守护进程
snoopy_daemon_stop停止后台守护进程
snoopy_daemon_reload不重启即可热重载任务计划

任务工具

工具描述
snoopy_job_list列出所有监控任务及其状态、子版块、计划
snoopy_job_runs列出某个任务或所有任务的最近运行历史
snoopy_job_add创建新的监控任务
snoopy_job_delete删除任务及其所有数据(运行、扫描项、日志)
snoopy_job_enable启用任务的计划调度
snoopy_job_disable禁用任务的计划调度
snoopy_job_run触发一次即时任务运行

分析和结果工具

工具描述
snoopy_analytics显示任务的分析数据(Token、费用、帖子、评论)
snoopy_export将已鉴定的扫描项导出为 JSON 或 CSV
snoopy_consume列出并标记未消费的已鉴定结果

诊断工具

工具描述
snoopy_errors显示某个任务最近失败或出错的运行
snoopy_logs查看特定运行的日志输出

设置工具

工具描述
snoopy_settings_get读取当前设置(模型、API 密钥状态、计划)
snoopy_settings_set更新单个设置项

MCP 调用示例

列出工具

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}

运行健康检查

{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "snoopy_doctor",
"arguments": {}
}
}

列出任务

{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "snoopy_job_list",
"arguments": {}
}
}

创建任务

{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "snoopy_job_add",
"arguments": {
"name": "SaaS 线索监控",
"subreddits": ["startups", "SaaS", "entrepreneur"],
"qualificationPrompt": "仅当用户正在积极寻求 SaaS 推荐或替代方案时才判定为合格。",
"scheduleCron": "*/30 * * * *"
}
}
}

导出结果

{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "snoopy_export",
"arguments": {
"jobRef": "saas-lead-monitor",
"format": "json",
"lastRun": true
}
}
}

错误处理

所有工具以 MCP 标准格式返回错误:

{
"content": [{ "type": "text", "text": "错误信息" }],
"isError": true
}

常见错误:

错误含义
Job not found: <ref>无效的任务引用;请检查 snoopy_job_list
Run not found: <id>无效的运行 ID;请检查 snoopy_job_runs
Unknown setting: <key>snoopy_settings_set 的无效设置键

故障排除

症状可能原因解决方案
服务器立即退出Stdio 传输错误确保在正确的 MCP 客户端上下文中运行
智能体中不显示工具服务器未注册运行 snoopy agent install <runtime>
Doctor 显示 API 密钥缺失密钥未配置运行 snoopy settings 或设置 SNOOPY_OPENROUTER_API_KEY
任务运行失败守护进程未运行运行 snoopy daemon start

相关页面