MCP Sentry Server
by weekitmo
This is a Node.js implementation of the Model Context Protocol (MCP) Sentry server. It provides integration with Sentry for retrieving error reports and stacktraces through MCP.
Last updated: N/A
MCP Sentry Server (Node.js)
This is a Node.js + TypeScript implementation of the Model Context Protocol (MCP) Sentry server. It provides integration with Sentry for retrieving error reports and stacktraces through MCP.
Features
- Integration with Sentry API for error tracking and monitoring
- Support for both standard MCP over stdin/stdout and SSE (Server-Sent Events) transport
- Configurable port for the SSE server (default: 3579)
Prerequisites
- Node.js >= 20.0.0
- pnpm >= 10.5.2
Installation
Clone the repository and install dependencies:
pnpm install
Configuration
Create a .env
file in the root directory with your Sentry authentication token:
SENTRY_TOKEN=your_sentry_auth_token_here
You can obtain your Sentry authentication token from your Sentry account settings.
Usage
Build the Project
pnpm build
Run the Server
pnpm start
Alternatively, you can specify the Sentry authentication token and API base as command-line arguments:
pnpm start --auth-token your_sentry_auth_token_here --api-base your_sentry_api_base_here
Run with SSE Support
pnpm start:sse
This will start an Express server with SSE support on port 3579 (default). You can access the SSE endpoint at:
http://localhost:3579/sse
You can also customize the environment variables using a .env.local
file.
Development Mode
pnpm dev
MCP Configuration
{
"mcpServers": {
"sentry-server": {
"command": "npx",
"args": ["-y","@weekit/[email protected]"],
"env": {
"SENTRY_TOKEN": "your_sentry_auth_token_here",
"SENTRY_API_BASE": "https://your_sentry_api_base_here"
}
}
}
}
Using local build:
{
"mcpServers": {
"my-sentry": {
"command": "node",
"args": ["path/to/dist/index.js"],
"env": {
"SENTRY_TOKEN": "your_sentry_auth_token_here",
"SENTRY_API_BASE": "https://your_sentry_api_base_here"
}
}
}
}
Communication Protocols
The MCP Sentry server supports two communication protocols:
- Standard MCP Protocol: Communication over standard input/output streams
- SSE Transport: Server-Sent Events for web-based communication via HTTP (port 3579)
MCP Features
The MCP Sentry server provides the following features through the MCP protocol:
Prompts
sentry-issue
: Retrieve a Sentry issue by ID or URLmost-triggered-issue
: Find the issue affecting the most users from a Sentry issues list URL
Tools
get_sentry_issue
: Retrieve and analyze a Sentry issue by ID or URLget_sentry_issues_list
: Retrieve and analyze a list of Sentry issues from a URL
API
The server communicates using the Model Context Protocol over standard input/output streams and provides the following functionalities:
- Listing available prompts and tools
- Retrieving Sentry issue information including:
- Issue title and ID
- Status and severity level
- First and last seen timestamps
- Event count
- Detailed stacktrace
MCP Workflow
Below is the workflow diagram of the MCP Sentry server:
flowchart TD
A[Client/LLM] -->|1. Send MCP Request| B[MCP Sentry Server]
B -->|2. Parse Request Type| C{Determine Request Type}
C -->|Prompt Request| D[Handle Prompt\nsentry-issue]
C -->|Tool Request| E[Handle Tool\nget_sentry_issue]
D -->|3. Extract Issue ID| F[Call Sentry API]
E -->|3. Extract Issue ID| F
F -->|4. Get Issue Data| G[Sentry API]
G -->|5. Return Issue Data| F
F -->|6. Get Event Data| G
G -->|7. Return Event Data| F
F -->|8. Parse Data| H[Create SentryIssueData Object]
H -->|9. Format Data| I{Response Type}
I -->|Prompt Response| J[Convert to PromptResult Format]
I -->|Tool Response| K[Convert to ToolResult Format]
J -->|10. Return Response| B
K -->|10. Return Response| B
B -->|11. Send MCP Response| A
Testing
Run all tests:
pnpm test
Run unit tests:
pnpm test test/unit.test.ts
Run integration tests:
pnpm test test/integration.test.ts
View test coverage:
pnpm test -- --coverage