哨兵MCP CLI
Sentry MCP服务器的轻量级CLI包装器-针对具有渐进式披露的AI助手进行了优化。
概述
此CLI工具为Sentry的模型上下文协议(MCP)服务器提供了一个令牌高效的接口,使AI助手能够通过简单的命令与Sentry进行交互。它实现了 渐进式披露 -默认情况下显示最少的信息(~50-100个令牌),并随需提供详细的文档。
主要特点
- ✅ 令牌高效:与加载完整的MCP服务器相比,令牌使用量减少了81-90%
- ✅ 渐进式披露:默认情况下信息最少,根据要求提供详细文档
- ✅ AI优先设计:默认为JSON输出,
--no-interactive标志,针对代理进行了优化 - ✅ 所有哨兵工具:访问19个MCP工具(检查、AI调试器、文档、分类、管理)
- ✅ 智能配置:自动加载
~/.claude/.env和./.env使用python dotenv - ✅ uv工具:易于安装
uv tool install
代币效率
| 场景 | 传统MCP | Sentry CLI | 节省 |
|---|---|---|---|
| 发现 | ~8000个令牌 | ~100个令牌 | 98.8% |
| 单次操作 | ~8500个代币 | ~800个代币 | 90.6% |
| 2次操作 | ~9000个令牌 | ~1500个令牌 | 83.3% |
安装
先决条件
- Python 3.13或更高版本
- 紫外线 包管理器
- Node.js和npm(用于通过以下方式运行Sentry MCP服务器
npx) - Sentry API访问令牌
通过紫外线安装(推荐)
# Install as a uv tool (global installation)
uv tool install git+https://github.com/kenneth-liao/sentry-mcp-cli
# Verify installation
sentry --help
sentry list-tools安装用于开发
# Clone the repository
git clone https://github.com/kenneth-liao/sentry-mcp-cli
cd sentry-mcp-cli
# Install dependencies with uv
uv sync
# Run commands during development
uv run sentry --help
uv run sentry list-tools配置
环境变量
CLI从两个位置加载环境变量(按优先级顺序):
~/.claude/.env(所有AI助手的用户级配置)./.env(项目级配置)
所需配置
创建 ~/.claude/.env 使用您的哨兵证书:
# Create ~/.claude directory if it doesn't exist
mkdir -p ~/.claude
# Create .env file with your credentials
cat > ~/.claude/.env [--json]
sentry get-trace-details [--org TEXT] [--json]
sentry get-event-attachment [--project TEXT] [--attachment-id TEXT] [--json]
sentry search-events [--org TEXT] [--project TEXT] [--limit N] [--json] # Requires OpenAI
sentry whoami [--json]
# AI Debugger (Seer)
sentry analyze-issue-with-seer [--instruction TEXT] [--json]
# Documentation
sentry search-docs [--guide TEXT] [--limit N] [--json]
sentry get-doc
[--json]
# Issue Triage
sentry search-issues [--org TEXT] [--project TEXT] [--limit N] [--json] # Requires OpenAI
sentry update-issue [--status TEXT] [--assignee TEXT] [--json]
# Project & Team Management
sentry create-team [--org TEXT] [--json]
sentry create-project [--team TEXT] [--platform TEXT] [--json]
sentry update-project
[--name TEXT] [--team TEXT] [--json]
sentry create-dsn [--project TEXT] [--json]
sentry find-dsns [--project TEXT] [--json]
# Meta Commands (Progressive Disclosure)
sentry list-tools [--json] # Tier 1: Discovery (~100 tokens)
sentry describe-tool [--json] # Tier 2: Details (~200 tokens)
sentry tool-schema # Tier 3: Full schema (~500 tokens)全球旗帜
所有命令都支持这些全局标志:
--json # Output as JSON (machine-readable, default for AI assistants)
--verbose / -v # Increase output verbosity
--quiet / -q # Minimal output
--no-interactive # Disable interactive prompts (for automation)
--org TEXT # Default organization slug (overrides config)
--help # Show help message例子
# List organizations in JSON format
sentry find-organizations --json
# Get issue details with verbose output
sentry get-issue-details PROJ-123 --org my-org --verbose --json
# AI-powered search (requires OPENAI_API_KEY in .env)
sentry search-events "database errors in last hour" --org my-org --json
# Find projects in a specific organization
sentry find-projects --org my-org --json
# Get tool documentation
sentry describe-tool get-issue-details运作原理
建筑
AI Assistant (Claude/etc)
↓ runs CLI command
sentry-cli (Python + Typer + Rich)
↓ spawns subprocess
npx @sentry/mcp-server@latest
↓ stdio transport (JSON-RPC)
MCP Session ←→ Sentry API渐进式披露
CLI实现了一个三层信息系统:
第1层:发现(~50个代币)
$ sentry list-tools
# Shows: Tool names + one-line descriptions第2层:工具描述(约200个代币)
$ sentry describe-tool get-issue-details
# Shows: Full description, parameters, examples第3层:完整架构(约500个令牌)
$ sentry tool-schema get-issue-details
# Shows: Complete JSON schema for the tool与加载完整的MCP服务器模式相比,这种方法将令牌使用率降低了约90%。
AI驱动的工具
有两个工具需要一个OpenAI API密钥:
search-events-自然语言事件搜索和聚合search-issues-自然语言问题搜索
设置OpenAI
# Add to ~/.claude/.env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx故障弱化
如果你尝试在没有OpenAI API密钥的情况下使用AI驱动的工具,你会得到一个有用的错误:
Error: This tool requires an OpenAI API key.
Setup:
1. Get an API key from: https://platform.openai.com/api-keys
2. Add to ~/.claude/.env:
OPENAI_API_KEY="sk-xxxxxxxxxxxxx"
3. Run command again
Alternative: Use 'sentry get-issue-details' for specific issue inspection.发展
项目结构
sentry-mcp-cli/
├── src/
│ └── sentry_cli/
│ ├── main.py # Main Typer app + CLI entry point
│ ├── config/
│ │ └── settings.py # Pydantic settings with dotenv support
│ ├── mcp/
│ │ └── connector.py # MCP stdio connection manager
│ ├── commands/
│ │ ├── tools.py # Tool commands
│ │ └── meta.py # Meta commands (list-tools, etc)
│ └── output/
│ └── formatters.py # Output formatters
└── tests/运行测试
# Install dev dependencies
uv sync --extra dev
# Run tests (when implemented)
uv run pytest实施状态
第一阶段:基础 ✅ 完成
- \[x\] 使用uv进行项目设置
- \[x\] 加载dotenv的设置类
- \[x\] 带stdio子流程的MCP连接器
- \[x\] 带有全局标志的主打字机应用程序
- \[x\]
list-tools命令
第二阶段:元命令 ✅ 完成
- \[x\]
describe-tool命令-详细的工具文档(第2层) - \[x\]
tool-schemacommand-完整JSON模式(第3层) - \[x\] 输出格式化程序(JSON、表格、人类可读)
第3-6阶段:所有工具 📋 计划的
- \[\]检查工具(查找-*,得到-*哇)
- \[\]人工智能驱动的工具(搜索-*,分析-*)
- \[\]文档工具(搜索文档、获取文档)
- \[\]分类工具(搜索问题、更新问题)
- \[\]管理工具(创建-*,更新-*,查找dsns)
故障排除
未找到命令:哨兵
确保uv的tool bin目录在您的PATH中:
# Add to ~/.bashrc or ~/.zshrc
export PATH="$HOME/.local/bin:$PATH"缺少SENTRY_ACCESS_TOKEN
# Create ~/.claude/.env with your token
mkdir -p ~/.claude
echo 'SENTRY_ACCESS_TOKEN="sntrys_xxx"' > ~/.claude/.envMCP服务器无法启动
确保已安装Node.js和npm:
# Check versions
node --version # Should be v18 or higher
npm --version # Should be v9 or higher
# If not installed, install Node.js from: https://nodejs.org/许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
欢迎投稿!请打开问题或提交拉取请求。
相关项目
支持
对于问题和疑问:
