Token导航 LogoToken导航TokenDH.com
scout apm MCP.rb logo
开发工具stdio官方级别未说明来源级核验

scout apm MCP.rb

MCP Server

@modelcontextprotocol/inspector

提供ScoutAPM API客户端和MCP服务器工具,用于获取跟踪、端点、指标、错误和洞察信息,适用于集成MCP兼容客户端的开发环境。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
RubyJavaScriptClaude开发工具Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

amkisko

提供方

amkisko

最后核验

2026/5/17 20:19

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector bundle exec scout_apm_mcp

详细介绍

scout_apm-mcp

Ruby gem提供ScoutAPM API客户端和MCP(模型上下文协议)服务器工具,用于获取跟踪、端点、度量、错误和见解。与MCP兼容的客户端集成,如Cursor IDE、Claude Desktop和其他启用MCP的工具。

赞助 好吧。.

需求

  • Ruby 3.1或更高版本 (不支持Ruby 3.0及更早版本)

快速开始

  1. 在scoutapm中,在“组织设置”下创建API密钥:https://scoutapm.com/settings
  2. 在1Password中创建一个名为“Scout APM API”的项,并将API密钥存储在名为API_key的新字段中
  3. 配置您最喜欢的服务以使用本地MCP服务器,确保OP_ENV_ENTRY_PATH具有正确的保管库和项目名称(两者都在1Password UI中可见)

安装

gem install scout_apm_mcp

光标IDE配置

对于Cursor IDE,创建或更新 .cursor/mcp.json 在您的项目中:

{
  "mcpServers": {
    "scout-apm": {
      "command": "gem",
      "args": ["exec", "scout_apm_mcp"],
      "env": {
        "OP_ENV_ENTRY_PATH": "op://Vault Name/Item Name",
        "RUBY_VERSION": "3.4.7"
      }
    }
  }
}

Claude桌面配置

对于Claude Desktop,编辑MCP配置文件:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "scout-apm": {
      "command": "gem",
      "args": ["exec", "scout_apm_mcp"],
      "env": {
        "OP_ENV_ENTRY_PATH": "op://Vault Name/Item Name",
        "RUBY_VERSION": "3.4.7"
      }
    }
  }
}

安全最佳实践

请勿将API密钥或令牌存储在MCP配置文件中。相反,使用以下方法之一:

  1. 1密码集成:设置 OP_ENV_ENTRY_PATH 环境变量(例如。, op://Vault/Item)通过opdotenv自动加载凭据
  2. 1Password命令行界面:如果opdotenv不可用,gem将自动回退到1Password CLI
  3. 环境变量:设置 API_KEYSCOUT_APM_API_KEY 在您的shell环境中(不建议用于生产环境-使用secret vault进行内存配置)

gem将自动检测并使用来自您的环境或1Password集成的凭据。

MCP检验员测试

您可以使用以下工具测试MCP服务器 MCP检查员 工具:

# Set your 1Password entry path (or use API_KEY/SCOUT_APM_API_KEY)
export OP_ENV_ENTRY_PATH="op://Vault/Scout APM"

# Run the MCP inspector with the server
npx @modelcontextprotocol/inspector bundle exec scout_apm_mcp

检查员将:

  1. 启动代理服务器并打开浏览器界面
  2. 通过STDIO连接到MCP服务器
  3. 允许您以交互方式测试所有可用工具
  4. 显示请求/响应消息和任何错误

这有助于:

  • 在与MCP客户端集成之前测试工具功能
  • 调试MCP协议通信
  • 正在验证API密钥配置
  • 探索可用工具及其参数

手动运行MCP服务器

安装后,您可以立即启动MCP服务器:

# With bundler
gem install scout_apm_mcp && bundle exec scout_apm_mcp

# Or if installed globally
scout_apm_mcp

服务器将使用MCP协议通过STDIN/STDOUT启动和通信。请确保您已配置ScoutAPM API密钥(请参阅下面的API密钥管理部分)。

升级

要升级到gem的最新版本,请执行以下操作:

gem update scout_apm_mcp

如果您正在使用Bundler,请更新您的 Gemfile.lock:

bundle update scout_apm_mcp

备注:从0.1.3版起,客户端方法返回提取的数据(数组、哈希),而不是完整的API响应结构。与之前的版本相比,这是一个突破性的变化。请参阅 更改日志.md 有关重大更改和新功能的详细信息。

特性

  • ScoutAPM API客户端:ScoutAPM REST API的完整客户端
  • MCP服务器集成:与Cursor IDE、Claude Desktop和其他启用MCP的工具兼容的即用型MCP服务器
  • API密钥管理:支持环境变量和1Password集成(通过可选 opdotenv 宝石)
  • URL解析:用于解析ScoutAPM URL和提取ID的辅助方法
  • 时间实用程序:格式化、解析和使用ISO 8601时间字符串的辅助方法
  • 输入验证:在API调用之前验证度量值类型、洞察类型和时间范围
  • 自定义错误处理:专用的异常类,用于更好的错误处理和调试
  • API全面覆盖:支持所有ScoutAPM API端点(应用程序、指标、端点、跟踪、错误、见解)
  • 数据提取:客户端方法返回提取的数据,而不是完整的API响应结构,以便于使用

基本用法

API客户端

备注:从0.1.3版起,所有客户端方法都返回提取的数据(数组、哈希),而不是完整的API响应结构。与之前的版本相比,这是一个突破性的变化。

require "scout_apm_mcp"

# Get API key (from environment or 1Password)
api_key = ScoutApmMcp::Helpers.get_api_key

# Create client
client = ScoutApmMcp::Client.new(api_key: api_key)

# List applications (returns Array)
apps = client.list_apps

# List applications filtered by active_since
apps = client.list_apps(active_since: "2025-11-01T00:00:00Z")

# Get application details (returns Hash)
app = client.get_app(123)

# List endpoints
endpoints = client.list_endpoints(123)

# Fetch trace
trace = client.fetch_trace(123, 456)

# Get metrics (returns Hash with series data)
metrics = client.get_metric(123, "response_time", from: "2025-01-01T00:00:00Z", to: "2025-01-02T00:00:00Z")

# List error groups
errors = client.list_error_groups(123, from: "2025-01-01T00:00:00Z", to: "2025-01-02T00:00:00Z")

# Get insights
insights = client.get_all_insights(123, limit: 20)

URL解析

# Parse a ScoutAPM trace URL
url = "https://scoutapm.com/apps/123/endpoints/.../trace/456"
parsed = ScoutApmMcp::Helpers.parse_scout_url(url)
# => { app_id: 123, endpoint_id: "...", trace_id: 456, decoded_endpoint: "...", query_params: {...} }

时间和持续时间帮助因素

# Format Time object to ISO 8601 string
time_str = ScoutApmMcp::Helpers.format_time(Time.now)
# => "2025-11-21T12:00:00Z"

# Parse ISO 8601 string to Time object
time = ScoutApmMcp::Helpers.parse_time("2025-11-21T12:00:00Z")
# => #

# Create duration hash from two ISO 8601 strings
duration = ScoutApmMcp::Helpers.make_duration("2025-11-21T00:00:00Z", "2025-11-21T12:00:00Z")
# => { start: #, end: # }

# Extract endpoint ID from endpoint hash
endpoint_id = ScoutApmMcp::Helpers.get_endpoint_id(endpoint_hash)
# => "base64-encoded-endpoint-id"

API密钥管理

gem支持多种方法用于API密钥检索(按顺序检查):

  1. 直接参数:通行证 api_key: 通话时 Helpers.get_api_key
  2. 环境变量:设置 API_KEYSCOUT_APM_API_KEY
  3. 1通过OP_ENV_ENTRY_PATH发送密码:设置 OP_ENV_ENTRY_PATH 环境变量(例如。, op://Vault/Item)
  4. 通过opdoteny输入1个密码:如果满足以下条件,则自动从1Password加载 opdotenv gem可用 op_vault/op_item 提供
  5. 1Password命令行界面:回退到直接 op CLI命令
# From environment variable (recommended: use in-memory vault or shell environment)
# Set API_KEY or SCOUT_APM_API_KEY in your environment
api_key = ScoutApmMcp::Helpers.get_api_key

# From 1Password using OP_ENV_ENTRY_PATH (recommended for 1Password users)
# Set OP_ENV_ENTRY_PATH in your environment (e.g., op://Vault/Item)
ENV["OP_ENV_ENTRY_PATH"] = "op://YourVault/YourItem"
api_key = ScoutApmMcp::Helpers.get_api_key

# From 1Password with explicit vault/item (requires opdotenv gem or op CLI)
api_key = ScoutApmMcp::Helpers.get_api_key(
  op_vault: "YourVault",
  op_item: "Your ScoutAPM API",
  op_field: "API_KEY"
)

安全说明:切勿在代码或配置文件中硬编码API密钥。始终使用环境变量、内存保管库或1Password等安全凭据管理系统。

API方法

应用程序

  • list_apps(active_since:) -列出所有应用程序(可选择按上次报告的时间筛选)
  • get_app(app_id) -获取应用程序详细信息

指标

  • list_metrics(app_id) -列出可用的度量类型
  • get_metric(app_id, metric_type, from:, to:) -获取时间序列度量数据

端点

  • list_endpoints(app_id, from:, to:) -列出所有端点
  • get_endpoint_metrics(app_id, endpoint_id, metric_type, from:, to:) -获取端点指标
  • list_endpoint_traces(app_id, endpoint_id, from:, to:) -列出端点跟踪

注意:API不提供直接的端点详细信息端点。使用 list_endpoints 并根据endpoint_id进行过滤,以获得特定的端点信息。

痕迹

  • fetch_trace(app_id, trace_id) -获取详细的跟踪信息

错误

  • list_error_groups(app_id, from:, to:, endpoint:) -列出错误组
  • get_error_group(app_id, error_id) -获取错误组详细信息
  • get_error_group_errors(app_id, error_id) -获取组内的错误

洞察

  • get_all_insights(app_id, limit:) -获取所有见解类型
  • get_insight_by_type(app_id, insight_type, limit:) -获取特定的见解类型
  • get_insights_history(app_id, from:, to:, limit:, pagination_cursor:, pagination_direction:, pagination_page:) -获取历史见解
  • get_insights_history_by_type(app_id, insight_type, from:, to:, limit:, pagination_cursor:, pagination_direction:, pagination_page:) -按类型获取历史见解

OpenAPI架构

  • fetch_openapi_schema -获取ScoutAPM OpenAPI模式

MCP服务器集成

此gem包括一个可以直接运行的即用型MCP服务器:

# After installing the gem
bundle exec scout_apm_mcp

或者,如果全局安装:

gem install scout_apm_mcp
scout_apm_mcp

服务器将使用MCP协议通过STDIN/STDOUT进行通信。在MCP客户端中配置它(例如,Cursor IDE、Claude Desktop或其他启用MCP的工具)。

错误处理

客户端使用自定义异常类来更好地处理错误:

  • ScoutApmMcp::Error -所有ScoutAPM SDK错误的基本异常类
  • ScoutApmMcp::AuthError -身份验证失败时引发(401未经授权)
  • ScoutApmMcp::APIError -为API错误引发(包括 status_coderesponse_data 属性)

客户端还验证输入参数并提出 ArgumentError 用于:

  • 度量类型无效(必须是以下类型之一: apdex, response_time, response_time_95th, errors, throughput, queue_time)
  • 无效的洞察类型(必须是以下类型之一: n_plus_one, memory_bloat, slow_query)
  • 时间范围无效(from_time必须早于_time,范围不能超过2周)
  • 跟踪超过7天的查询(适用于 list_endpoint_traces)
begin
  client.get_metric(123, "invalid_metric", from: "2025-01-01T00:00:00Z", to: "2025-01-02T00:00:00Z")
rescue ScoutApmMcp::AuthError => e
  puts "Authentication failed: #{e.message}"
rescue ScoutApmMcp::APIError => e
  puts "API error (#{e.status_code}): #{e.message}"
  puts "Response data: #{e.response_data}"
rescue ArgumentError => e
  puts "Invalid parameter: #{e.message}"
rescue ScoutApmMcp::Error => e
  puts "Error: #{e.message}"
end

发展

# Install dependencies
bundle install

# Run tests
bundle exec rspec

# Run tests across multiple Ruby versions
bundle exec appraisal install
bundle exec appraisal rspec

# Run linting
bundle exec standardrb --fix

# Validate RBS type signatures
bundle exec rbs validate

贡献

欢迎在GitHub上提交Bug报告和拉取请求,网址为https://github.com/amkisko/scout_apm_mcp.rb.

出资政策:

  • 新功能不一定添加到gem中
  • Pull请求应包含受影响部件的测试范围
  • 拉取请求应具有更改日志条目

审查政策:

  • 审查和合并关键修复可能需要长达2个日历周的时间
  • 审查和合并拉取请求可能需要长达6个日历月的时间
  • 审查一个问题可能需要长达1个日历年的时间

有关更多信息,请参见 贡献.md.

安全

如果您发现安全漏洞,请负责任地报告。看 安全.md 了解详情。

许可证

根据以下条款,gem可作为开源软件使用 MIT许可证.

目录标签

目录标签

RubyJavaScriptClaude开发工具本地部署性能监控API客户端MCP服务器错误追踪

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP