sentrybot
sentrybotは、Pythonで構築された自動化ツールで、特定のタスクを効率的に実行するための機能を提供します。主にエラーロギングやモニタリングに関連する機能が含まれており、開発者がアプリケーションのパフォーマンスを向上させる手助けをします。使いやすさと拡張性を兼ね備えた設計が特徴です。
GitHubスター
0
ユーザー評価
未評価
お気に入り
0
閲覧数
13
フォーク
0
イシュー
0
SentryBot
A Discord bot that integrates with Sentry via the Sentry MCP protocol and uses Anthropic’s Claude AI to answer user questions about Sentry data.
Features
- Connects to a Sentry MCP server to list and call tools.
- Interacts with Anthropic Claude to generate responses (you need an
ANTHROPIC_API_KEY
). - Provides two slash-style commands:
- !ask: Ask Claude a question about Sentry events/data.
- !status: Check Sentry connection status and tool availability.
- Also acts as a general chatbot and is aware of the sentry MCP tools.
Repository
git clone https://github.com/ohnotnow/sentrybot.git
cd sentrybot
Prerequisites
- git (already installed)
- Python 3.13 or higher
- Discord Bot Token (create at https://discord.com/developers/applications) (
DISCORD_BOT_TOKEN
) - Anthropic API Key (
ANTHROPIC_API_KEY
) - Sentry Auth Token (
SENTRY_AUTH_TOKEN
) - (Optional) Sentry Host (
SENTRY_HOST
, defaults tosentry.io
) - (Optional - only respond to one server) Discord server ID (
DISCORD_SERVER_ID
) - (Optional - allow direct private messages from specific users) Discord user IDs (
DISCORD_USER_IDS
- csv of user ids) - uv CLI tool for Python
- Documentation: https://docs.astral.sh/uv/
Installation
1. Clone the repository
git clone https://github.com/ohnotnow/sentrybot.git
cd sentrybot
2. Prepare environment variables
Create a file named .env
in the project root:
DISCORD_BOT_TOKEN=<your_discord_bot_token>
ANTHROPIC_API_KEY=<your_anthropic_api_key>
SENTRY_AUTH_TOKEN=<your_sentry_auth_token>
# Optional:
SENTRY_HOST=<your_sentry_host> # defaults to sentry.io
DISCORD_SERVER_ID=<your_server_id> # make the bot only respond to one server
3. Install dependencies
Use uv
to synchronize dependencies:
uv sync
Note: If you do not have
uv
installed, follow the installation instructions at https://docs.astral.sh/uv/.
Running the Bot
Once dependencies are installed and .env
is configured, start the bot with:
uv run main.py
The bot will:
- Load environment variables via
python-dotenv
. - Connect to the Sentry MCP server (using
npx @sentry/mcp-server@latest
). - Initialize the Anthropic Claude client.
- Register the
!ask
and!status
commands. - Begin listening for messages in Discord.
Running the bot using Docker
You can run the bot using Docker. There is a Dockerfile in the project, and also a convenience script run.sh
which will build and run the container.
./run.sh pandora
This will build the image, and then run the container for a bot named pandora
. The container expects there to be a file called .env.pandora
with your various Sentry and Discord keys/tokens.
Usage
In any channel where the bot is invited:
!ask
Ask Claude about Sentry data.
Example:!ask How many errors occurred in the last 24 hours?
!status
Check if the bot is connected to Sentry and how many tools are available.
Example:!status
Platform Notes
Installation and usage commands are identical on macOS, Ubuntu, and Windows when using a POSIX-like shell. If you use PowerShell on Windows, environment variables can be set per session:
$Env:DISCORD_BOT_TOKEN="..."
$Env:ANTHROPIC_API_KEY="..."
$Env:SENTRY_AUTH_TOKEN="..."
uv sync
uv run main.py
Logging
The bot uses Python’s built-in logging
module at INFO
level. Logs include:
- Connection status to Discord and Sentry.
- Errors during setup, tool calls, or Claude queries.
- Shutdown notifications.
License
This project is licensed under the MIT License.
See the LICENSE file for details.