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.
- 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)
- Node.js >= 20.0.0
- pnpm >= 10.5.2
Clone the repository and install dependencies:
pnpm install
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.
pnpm build
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
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.
pnpm dev
{
"mcpServers": {
"sentry-server": {
"command": "npx",
"args": ["-y","@weekit/mcp-sentry@1.0.9"],
"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"
}
}
}
}
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)
The MCP Sentry server provides the following features through the MCP protocol:
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
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
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
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
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