Bugsink MCP Server
# Bugsink MCP Server
A [Model Context Protocol](https://modelcontextprotocol.io/) server for interacting with [Bugsink](https://www.bugsink.com/) error tracking via LLMs.
This server enables AI assistants like Claude, Cursor, and other MCP-compatible tools to query and analyze errors from your Bugsink instance.
## Features
- **List Projects** - View all projects in your Bugsink instance
- **List Teams** - View all teams
- **List Issues** - Query grouped error occurrences by project
- **Get Issue Details** - Retrieve detailed issue information
- **List Events** - View individual error occurrences with stacktraces
- **Get Event Details** - Full event data including tags and contexts
- **Test Connection** - Verify API connectivity
## Installation
### Via npx (Recommended)
```bash
npx bugsink-mcp
```
### Global Install
```bash
npm install -g bugsink-mcp
```
### From Source
```bash
git clone https://github.com/j-shelfwood/bugsink-mcp.git
cd bugsink-mcp
npm install
npm run build
```
## Configuration
### Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `BUGSINK_URL` | Yes | Your Bugsink instance URL (e.g., `https://error-tracking.example.com`) |
| `BUGSINK_TOKEN` | Yes | API token for authentication |
### Generating an API Token
```bash
# Via Bugsink management command
bugsink-manage create_auth_token
```
Or through the Bugsink web UI under Settings > API Tokens.
## MCP Client Configuration
### Claude Desktop
Add to your Claude Desktop configuration (`~/.claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"bugsink": {
"command": "npx",
"args": ["bugsink-mcp"],
"env": {
"BUGSINK_URL": "https://your-bugsink-instance.com",
"BUGSINK_TOKEN": "your-api-token"
}
}
}
}
```
### Claude Code CLI
```bash
claude mcp add bugsink -- npx bugsink-mcp
```
Then set environment variables in your shell or `.env` file.
### Cursor
Add to your Cursor MCP settings:
```json
{
"mcpServers": {
"bugsink": {
"command": "npx",
"args": ["bugsink-mcp"],
"env": {
"BUGSINK_URL": "https://your-bugsink-instance.com",
"BUGSINK_TOKEN": "your-api-token"
}
}
}
}
```
## Available Tools
### `test_connection`
Test connectivity to your Bugsink instance.
### `list_projects`
List all projects in the Bugsink instance.
### `get_project`
Get detailed information about a specific project including DSN.
**Parameters:**
- `project_id` (number, required): The project ID
### `list_teams`
List all teams in the Bugsink instance.
### `list_issues`
List issues for a specific project.
**Parameters:**
- `project_id` (number, required): The project ID
- `status` (string, optional): Filter by status ('unresolved', 'resolved', 'muted')
- `limit` (number, optional): Max results (default: 25)
### `get_issue`
Get detailed information about a specific issue.
**Parameters:**
- `issue_id` (number, required): The issue ID
### `list_events`
List events (individual error occurrences) for a specific issue.
**Parameters:**
- `issue_id` (number, required): The issue ID
- `limit` (number, optional): Max results (default: 10)
### `get_event`
Get detailed event information including full stacktrace.
**Parameters:**
- `event_id` (string, required): The event ID
## Example Usage
Once configured, you can ask your AI assistant:
- "List all projects in Bugsink"
- "Show me the latest issues for project 1"
- "What's the stacktrace for issue #42?"
- "Get the details of the most recent error event"
## Development
```bash
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Run tests
npm test
```
## API Compatibility
This server is designed for [Bugsink](https://www.bugsink.com/), a self-hosted error tracking platform. Bugsink uses its own REST API (`/api/canonical/0/`) which is different from Sentry's API.
**Note:** This server does NOT work with Sentry or Sentry-hosted services. For Sentry, use the official [sentry-mcp](https://github.com/getsentry/sentry-mcp) server.
## License
MIT
## Contributing
Contributions welcome! Please open an issue or PR on [GitHub](https://github.com/j-shelfwood/bugsink-mcp).
TDQS
Scored across 16 tools
Every tool has a clearly distinct purpose targeting specific resources and actions, with no ambiguity. For example, 'get_event' retrieves event details while 'list_events' lists events for an issue, and 'get_stacktrace' provides formatted stacktraces distinct from raw event data.
All tools follow a consistent verb_noun pattern throughout, using lowercase with underscores. The naming is predictable with verbs like 'create', 'get', 'list', 'update', and 'test' paired with specific nouns like 'project', 'issue', or 'team'.
With 16 tools, the count is slightly high but reasonable for a bug/error tracking system covering teams, projects, issues, events, releases, and connections. It feels comprehensive without being overwhelming, though it borders on the heavier side of typical scopes.
The tool set provides complete CRUD/lifecycle coverage for the Bugsink domain, including create, get, list, and update operations for teams, projects, issues, events, and releases, plus connection testing. There are no obvious gaps, enabling agents to handle full workflows without dead ends.