@rustrak/mcp 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -63
- package/package.json +23 -4
package/README.md
CHANGED
|
@@ -1,24 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://abians.github.io/rustrak">
|
|
3
|
+
<img src="https://raw.githubusercontent.com/AbianS/rustrak/main/apps/docs/public/logo.svg" alt="Rustrak" width="64" height="64" />
|
|
4
|
+
</a>
|
|
5
|
+
<h1>@rustrak/mcp</h1>
|
|
6
|
+
<p>MCP server that gives AI assistants full control of your <a href="https://abians.github.io/rustrak">Rustrak</a> error tracking</p>
|
|
7
|
+
|
|
8
|
+
<p>
|
|
9
|
+
<a href="https://www.npmjs.com/package/@rustrak/mcp">
|
|
10
|
+
<img src="https://img.shields.io/npm/v/@rustrak/mcp?style=flat-square&color=cb3837" alt="npm version" />
|
|
11
|
+
</a>
|
|
12
|
+
<a href="https://www.npmjs.com/package/@rustrak/mcp">
|
|
13
|
+
<img src="https://img.shields.io/npm/dw/@rustrak/mcp?style=flat-square" alt="weekly downloads" />
|
|
14
|
+
</a>
|
|
15
|
+
<a href="https://github.com/AbianS/rustrak/blob/main/LICENSE">
|
|
16
|
+
<img src="https://img.shields.io/npm/l/@rustrak/mcp?style=flat-square" alt="license" />
|
|
17
|
+
</a>
|
|
18
|
+
<a href="https://github.com/AbianS/rustrak/actions/workflows/ci.yml">
|
|
19
|
+
<img src="https://img.shields.io/github/actions/workflow/status/AbianS/rustrak/ci.yml?style=flat-square&label=CI" alt="CI" />
|
|
20
|
+
</a>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
<p>
|
|
24
|
+
<a href="https://abians.github.io/rustrak/sdks/mcp">Documentation</a>
|
|
25
|
+
·
|
|
26
|
+
<a href="https://github.com/AbianS/rustrak">GitHub</a>
|
|
27
|
+
·
|
|
28
|
+
<a href="https://github.com/AbianS/rustrak/issues">Report a Bug</a>
|
|
29
|
+
</p>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
`@rustrak/mcp` is a [Model Context Protocol](https://modelcontextprotocol.io) server for [Rustrak](https://abians.github.io/rustrak) — the self-hosted, Sentry-compatible error tracker. Connect it to Claude Desktop, Cursor, Continue.dev, or any MCP-compatible AI assistant and get 18 tools to list projects, inspect issues, view stack traces, resolve errors, and manage tokens without leaving your AI tool.
|
|
35
|
+
|
|
36
|
+
**[Full documentation →](https://abians.github.io/rustrak/sdks/mcp)**
|
|
12
37
|
|
|
13
38
|
## Quick Start
|
|
14
39
|
|
|
15
40
|
### 1. Generate an API token
|
|
16
41
|
|
|
17
|
-
In the Rustrak web UI: **Settings → Tokens → Create token**. Save the
|
|
42
|
+
In the Rustrak web UI: **Settings → Tokens → Create token**. Save the token value — it is shown only once.
|
|
18
43
|
|
|
19
|
-
### 2.
|
|
44
|
+
### 2. Add to your AI client
|
|
20
45
|
|
|
21
|
-
|
|
46
|
+
**Claude Desktop** — `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
22
47
|
|
|
23
48
|
```json
|
|
24
49
|
{
|
|
@@ -35,18 +60,16 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
|
35
60
|
}
|
|
36
61
|
```
|
|
37
62
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Build first, then configure with a `node` command pointing to the dist:
|
|
63
|
+
**Cursor** — `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):
|
|
41
64
|
|
|
42
65
|
```json
|
|
43
66
|
{
|
|
44
67
|
"mcpServers": {
|
|
45
68
|
"rustrak": {
|
|
46
|
-
"command": "
|
|
47
|
-
"args": ["
|
|
69
|
+
"command": "npx",
|
|
70
|
+
"args": ["-y", "@rustrak/mcp"],
|
|
48
71
|
"env": {
|
|
49
|
-
"RUSTRAK_API_URL": "
|
|
72
|
+
"RUSTRAK_API_URL": "https://your-rustrak-instance.example.com",
|
|
50
73
|
"RUSTRAK_API_TOKEN": "your-40-char-hex-token"
|
|
51
74
|
}
|
|
52
75
|
}
|
|
@@ -54,27 +77,61 @@ Build first, then configure with a `node` command pointing to the dist:
|
|
|
54
77
|
}
|
|
55
78
|
```
|
|
56
79
|
|
|
57
|
-
|
|
80
|
+
**Continue.dev** — `~/.continue/config.json`:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"experimental": {
|
|
85
|
+
"modelContextProtocolServers": [
|
|
86
|
+
{
|
|
87
|
+
"transport": {
|
|
88
|
+
"type": "stdio",
|
|
89
|
+
"command": "npx",
|
|
90
|
+
"args": ["-y", "@rustrak/mcp"],
|
|
91
|
+
"env": {
|
|
92
|
+
"RUSTRAK_API_URL": "https://your-rustrak-instance.example.com",
|
|
93
|
+
"RUSTRAK_API_TOKEN": "your-40-char-hex-token"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 3. Ask your AI anything
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
"List all unresolved issues in project 1"
|
|
106
|
+
"Show me the stack trace for issue abc-123"
|
|
107
|
+
"Resolve all TypeError issues from the last deployment"
|
|
108
|
+
"Create a CI pipeline token and give me the value"
|
|
109
|
+
"How many events does issue xyz have?"
|
|
110
|
+
```
|
|
58
111
|
|
|
59
112
|
## Environment Variables
|
|
60
113
|
|
|
61
|
-
| Variable | Required |
|
|
62
|
-
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
114
|
+
| Variable | Required | Description |
|
|
115
|
+
|---|---|---|
|
|
116
|
+
| `RUSTRAK_API_URL` | ✅ | Base URL of your Rustrak server (e.g. `https://errors.example.com`) |
|
|
117
|
+
| `RUSTRAK_API_TOKEN` | ✅ | 40-char hex API token — create one in Settings → Tokens |
|
|
118
|
+
|
|
119
|
+
The server exits immediately with a clear error message if either variable is missing.
|
|
65
120
|
|
|
66
|
-
## Available Tools
|
|
121
|
+
## Available Tools (18)
|
|
67
122
|
|
|
68
123
|
### Projects
|
|
124
|
+
|
|
69
125
|
| Tool | Description |
|
|
70
|
-
|
|
126
|
+
|---|---|
|
|
71
127
|
| `list_projects` | List all projects |
|
|
72
128
|
| `get_project` | Get project details including DSN |
|
|
73
129
|
| `create_project` | Create a new project |
|
|
74
130
|
|
|
75
131
|
### Issues
|
|
132
|
+
|
|
76
133
|
| Tool | Description |
|
|
77
|
-
|
|
134
|
+
|---|---|
|
|
78
135
|
| `list_issues` | List issues with filters (open / resolved / muted / all) |
|
|
79
136
|
| `get_issue` | Get a single issue with full details |
|
|
80
137
|
| `resolve_issue` | Mark an issue as resolved |
|
|
@@ -83,69 +140,45 @@ Or use the project-level `.mcp.json` at the repo root (Claude Code picks this up
|
|
|
83
140
|
| `delete_issue` | ⚠️ Permanently delete an issue and all its events |
|
|
84
141
|
|
|
85
142
|
### Events
|
|
143
|
+
|
|
86
144
|
| Tool | Description |
|
|
87
|
-
|
|
145
|
+
|---|---|
|
|
88
146
|
| `list_events` | List raw events for an issue (cursor pagination) |
|
|
89
147
|
| `get_event` | Get a single event with full Sentry envelope data |
|
|
90
148
|
|
|
91
149
|
### Tokens
|
|
150
|
+
|
|
92
151
|
| Tool | Description |
|
|
93
|
-
|
|
152
|
+
|---|---|
|
|
94
153
|
| `list_tokens` | List API tokens (masked) |
|
|
95
154
|
| `create_token` | Create a new API token (full value shown once) |
|
|
96
155
|
| `revoke_token` | ⚠️ Permanently revoke an API token |
|
|
97
156
|
|
|
98
157
|
### Alerts
|
|
158
|
+
|
|
99
159
|
| Tool | Description |
|
|
100
|
-
|
|
160
|
+
|---|---|
|
|
101
161
|
| `list_alert_channels` | List notification channels (Slack, email, webhook) |
|
|
102
162
|
| `test_alert_channel` | Send a test notification to a channel |
|
|
103
163
|
| `list_alert_rules` | List alert rules for a project |
|
|
104
164
|
|
|
105
|
-
> ⚠️
|
|
106
|
-
|
|
107
|
-
## Example prompts
|
|
108
|
-
|
|
109
|
-
Once connected, you can ask your AI assistant things like:
|
|
110
|
-
|
|
111
|
-
- _"List all unresolved issues in project 1"_
|
|
112
|
-
- _"Show me the stack trace for issue abc-123"_
|
|
113
|
-
- _"Resolve all TypeError issues from the last deployment"_
|
|
114
|
-
- _"Create a token called 'CI pipeline' and give me the value"_
|
|
115
|
-
- _"How many events does issue xyz have?"_
|
|
116
|
-
|
|
117
|
-
## Development
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
# Build
|
|
121
|
-
pnpm --filter @rustrak/mcp build
|
|
122
|
-
|
|
123
|
-
# Run tests (33 tests)
|
|
124
|
-
pnpm --filter @rustrak/mcp test
|
|
125
|
-
|
|
126
|
-
# Type check
|
|
127
|
-
pnpm --filter @rustrak/mcp typecheck
|
|
128
|
-
|
|
129
|
-
# Watch mode
|
|
130
|
-
pnpm --filter @rustrak/mcp dev
|
|
131
|
-
```
|
|
165
|
+
> ⚠️ Destructive tools (`delete_issue`, `revoke_token`) are annotated with `destructiveHint` — supported clients will prompt for confirmation before executing.
|
|
132
166
|
|
|
133
167
|
## Architecture
|
|
134
168
|
|
|
135
169
|
```
|
|
136
|
-
AI Client (Claude Desktop / Cursor)
|
|
170
|
+
AI Client (Claude Desktop / Cursor / Continue)
|
|
137
171
|
│ stdio (JSON-RPC)
|
|
138
172
|
▼
|
|
139
173
|
┌─────────────────────┐
|
|
140
|
-
│ @rustrak/mcp │
|
|
141
|
-
│ McpServer │
|
|
174
|
+
│ @rustrak/mcp │ ← This package
|
|
142
175
|
│ ├── projects │
|
|
143
176
|
│ ├── issues │
|
|
144
177
|
│ ├── events │
|
|
145
178
|
│ ├── tokens │
|
|
146
179
|
│ └── alerts │
|
|
147
180
|
└──────────┬──────────┘
|
|
148
|
-
│ HTTP (Bearer token)
|
|
181
|
+
│ HTTP (Bearer token via @rustrak/client)
|
|
149
182
|
▼
|
|
150
183
|
┌─────────────────────┐
|
|
151
184
|
│ Rustrak Server │
|
|
@@ -153,6 +186,38 @@ AI Client (Claude Desktop / Cursor)
|
|
|
153
186
|
└─────────────────────┘
|
|
154
187
|
```
|
|
155
188
|
|
|
189
|
+
The server runs as a local process over stdio — no open network port, no daemon. The API token is read from environment variables and never exposed as a tool argument.
|
|
190
|
+
|
|
191
|
+
## Related Packages
|
|
192
|
+
|
|
193
|
+
| Package | Description |
|
|
194
|
+
|---|---|
|
|
195
|
+
| [`@rustrak/client`](https://www.npmjs.com/package/@rustrak/client) | TypeScript HTTP client for the Rustrak API — used internally by this package |
|
|
196
|
+
|
|
197
|
+
## What is Rustrak?
|
|
198
|
+
|
|
199
|
+
[Rustrak](https://abians.github.io/rustrak) is a self-hosted error tracking server written in Rust that is fully compatible with any Sentry SDK. No code changes needed if you're migrating from Sentry. Runs on ~50 MB of memory as a single binary or Docker image.
|
|
200
|
+
|
|
201
|
+
- [Getting Started](https://abians.github.io/rustrak/getting-started/overview)
|
|
202
|
+
- [Self-Hosting Guide](https://abians.github.io/rustrak/configuration/production)
|
|
203
|
+
- [GitHub](https://github.com/AbianS/rustrak)
|
|
204
|
+
|
|
205
|
+
## Development
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Build
|
|
209
|
+
pnpm --filter @rustrak/mcp build
|
|
210
|
+
|
|
211
|
+
# Run tests (33 tests)
|
|
212
|
+
pnpm --filter @rustrak/mcp test
|
|
213
|
+
|
|
214
|
+
# Type check
|
|
215
|
+
pnpm --filter @rustrak/mcp typecheck
|
|
216
|
+
|
|
217
|
+
# Watch mode
|
|
218
|
+
pnpm --filter @rustrak/mcp dev
|
|
219
|
+
```
|
|
220
|
+
|
|
156
221
|
## License
|
|
157
222
|
|
|
158
|
-
GPL-3.0
|
|
223
|
+
[GPL-3.0](https://github.com/AbianS/rustrak/blob/main/LICENSE)
|
package/package.json
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rustrak/mcp",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "MCP server
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "MCP server that gives AI assistants (Claude, Cursor, Continue) full control of your Rustrak error tracking",
|
|
5
|
+
"homepage": "https://abians.github.io/rustrak/sdks/mcp",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/AbianS/rustrak.git",
|
|
9
|
+
"directory": "packages/mcp"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/AbianS/rustrak/issues"
|
|
13
|
+
},
|
|
5
14
|
"publishConfig": {
|
|
6
15
|
"access": "public"
|
|
7
16
|
},
|
|
@@ -26,13 +35,23 @@
|
|
|
26
35
|
"mcp",
|
|
27
36
|
"model-context-protocol",
|
|
28
37
|
"error-tracking",
|
|
29
|
-
"
|
|
38
|
+
"sentry",
|
|
39
|
+
"self-hosted",
|
|
40
|
+
"claude",
|
|
41
|
+
"cursor",
|
|
42
|
+
"ai",
|
|
43
|
+
"monitoring",
|
|
44
|
+
"observability"
|
|
30
45
|
],
|
|
46
|
+
"author": "AbianS",
|
|
31
47
|
"license": "GPL-3.0",
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=18"
|
|
50
|
+
},
|
|
32
51
|
"dependencies": {
|
|
33
52
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
34
53
|
"zod": "4.4.3",
|
|
35
|
-
"@rustrak/client": "0.1.
|
|
54
|
+
"@rustrak/client": "0.1.3"
|
|
36
55
|
},
|
|
37
56
|
"devDependencies": {
|
|
38
57
|
"@types/node": "25.8.0",
|