使用说明
哨兵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 << 'EOF'
# Required: Sentry API Access Token
# Get from: https://sentry.io/settings/account/api/auth-tokens/
SENTRY_ACCESS_TOKEN=sntrys_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Optional: For self-hosted Sentry instances
SENTRY_HOST=sentry.io
# Optional: Default organization and project
# SENTRY_DEFAULT_ORG=my-org
# SENTRY_DEFAULT_PROJECT=my-project
# Optional: OpenAI API key (enables AI-powered search tools)
# OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
EOF
可选:项目级配置
您还可以创建 .env 项目目录中用于项目特定设置的文件:
# Copy the example file
cp .env.example .env
# Edit with your credentials
nano .env
用法
基本命令
# List all available tools (minimal output)
sentry list-tools
# List tools with JSON output (for AI assistants)
sentry list-tools --json
# Get help for any command
sentry --help
sentry list-tools --help
可用工具(共19个)
# Inspection Tools
sentry find-organizations [--query TEXT] [--json]
sentry find-projects [--org TEXT] [--query TEXT] [--json]
sentry find-teams [--org TEXT] [--query TEXT] [--json]
sentry find-releases [--org TEXT] [--project TEXT] [--query TEXT] [--json]
sentry get-issue-details <issue-id-or-url> [--json]
sentry get-trace-details <trace-id> [--org TEXT] [--json]
sentry get-event-attachment <event-id> [--project TEXT] [--attachment-id TEXT] [--json]
sentry search-events <query> [--org TEXT] [--project TEXT] [--limit N] [--json] # Requires OpenAI
sentry whoami [--json]
# AI Debugger (Seer)
sentry analyze-issue-with-seer <issue-id-or-url> [--instruction TEXT] [--json]
# Documentation
sentry search-docs <query> [--guide TEXT] [--limit N] [--json]
sentry get-doc <path> [--json]
# Issue Triage
sentry search-issues <query> [--org TEXT] [--project TEXT] [--limit N] [--json] # Requires OpenAI
sentry update-issue <issue-id> [--status TEXT] [--assignee TEXT] [--json]
# Project & Team Management
sentry create-team <name> [--org TEXT] [--json]
sentry create-project <name> [--team TEXT] [--platform TEXT] [--json]
sentry update-project <project-id> [--name TEXT] [--team TEXT] [--json]
sentry create-dsn <name> [--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 <tool-name> [--json] # Tier 2: Details (~200 tokens)
sentry tool-schema <tool-name> # 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/.env
MCP服务器无法启动
确保已安装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许可证-有关详细信息,请参阅许可证文件。
贡献
欢迎投稿!请打开问题或提交拉取请求。
相关项目
支持
对于问题和疑问: