Skip to content

Commit efa0f4c

Browse files
bobbyg603Copilot
andauthored
feat: attachments (#2)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 0ea3aed commit efa0f4c

File tree

15 files changed

+2891
-160
lines changed

15 files changed

+2891
-160
lines changed

.github/workflows/test.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,7 @@ jobs:
2929
- name: Run tests
3030
run: npm test
3131
env:
32-
CI: true
32+
CI: true
33+
BUGSPLAT_DATABASE: ${{ secrets.BUGSPLATDATABASE }}
34+
BUGSPLAT_CLIENT_ID: ${{ secrets.BUGSPLATCLIENTID }}
35+
BUGSPLAT_CLIENT_SECRET: ${{ secrets.BUGSPLATCLIENTSECRET }}

.vscode/settings.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
{
22
"jasmineExplorer.nodeArgv": [
3+
"-r",
4+
"dotenv/config",
35
"--enable-source-maps",
46
"--experimental-vm-modules"
57
],

README.md

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,14 @@ This is a prototype implementation of a Model Context Protocol (MCP) server for
44

55
## Getting Started 👨‍🏫
66

7-
1. Install `bugsplat-mcp` globally with npm:
8-
```bash
9-
npm i -g bugsplat-mcp
10-
```
11-
12-
2. Add a local MCP server to [Claude Desktop](https://claude.ai/download) via `Settings > Developer > Edit Config`. Add the path to `npx` under `command` and the path to `bugsplat-mcp` under `args`. Finally add env values for `BUGSPLAT_DATABASE`, `BUGSPLAT_CLIENT_ID`, and `BUGSPLAT_CLIENT_SECRET`.
7+
1. Add a local MCP server to [Claude Desktop](https://claude.ai/download) via `Settings > Developer > Edit Config`. Add the path to `npx` under `command` and `-y`, `bugsplat-mcp@latest` under `args`. Finally add env values for `BUGSPLAT_DATABASE`, `BUGSPLAT_CLIENT_ID`, and `BUGSPLAT_CLIENT_SECRET`.
138
```json
149
{
1510
"mcpServers": {
1611
...
1712
"bugsplat-mcp": {
1813
"command": "npx",
19-
"args": [
20-
"bugsplat-mcp"
21-
],
14+
"args": ["-y", "bugsplat-mcp@latest"],
2215
"env": {
2316
"BUGSPLAT_DATABASE": "fred",
2417
"BUGSPLAT_CLIENT_ID": "***",
@@ -29,34 +22,43 @@ npm i -g bugsplat-mcp
2922
}
3023
```
3124

32-
3. Open Claude and ask about BugSplat.
25+
2. Open Claude and ask about BugSplat.
3326

3427
## Available Tools 🧰
3528

3629
The server provides the following tools for interacting with BugSplat:
3730

38-
### get-issues
39-
Get a list of BugSplat issues with optional filtering:
40-
- `application`: Filter by application name
41-
- `version`: Filter by version
42-
- `stackGroup`: Filter by stack frame the crash is grouped by
43-
- `startDate`: Filter by start date (ISO format)
44-
- `endDate`: Filter by end date (ISO format)
45-
- `pageSize`: Number of results per page (1-99, defaults to 50)
31+
### list-issues
32+
List BugSplat issues with optional filtering. The issues tool lists all crashes in the BugSplat database and is useful for determining the most recent crashes.
33+
- `application`: Application name to filter by
34+
- `version`: Version to filter by
35+
- `stackGroup`: Stack group to filter by
36+
- `startDate`: Start date for filtering (ISO format)
37+
- `endDate`: End date for filtering (ISO format)
38+
- `pageSize`: Number of results per page (1-100, defaults to 10)
4639

4740
### get-issue
48-
Get detailed information about a specific issue:
49-
- `id`: The issue ID to retrieve
41+
Get details of a specific BugSplat issue. The issue tool lists the details of a specific crash and is useful for determining the cause of and fixing a specific crash.
42+
- `id`: Issue ID to retrieve
5043

5144
### get-summary
52-
Get a summary of BugSplat issues with optional filtering:
45+
Get summary of BugSplat issues with optional filtering. The summary tool lists information about groups of crashes and is useful for determining what issues are most prevalent.
5346
- `applications`: Array of application names to filter by
5447
- `versions`: Array of versions to filter by
55-
- `startDate`: Filter by start date (ISO format)
56-
- `endDate`: Filter by end date (ISO format)
48+
- `startDate`: Start date for filtering (ISO format)
49+
- `endDate`: End date for filtering (ISO format)
5750
- `pageSize`: Number of results per page (1-20, defaults to 10)
5851

59-
Each tool will automatically use the credentials provided in your `.env` file.
52+
### list-attachments
53+
Get list of attachments for a specific BugSplat issue. The attachments tool lists the attachments (log files, screenshots, etc.) for a specific crash and is useful for determining the cause of and fixing a specific crash.
54+
- `id`: Issue ID to retrieve
55+
56+
### get-attachment
57+
Get a specific attachment for a BugSplat issue. Returns the file content as a base64 blob.
58+
- `crashId`: The ID of the crash report
59+
- `file`: The name of the attachment file to retrieve
60+
61+
Each tool will automatically use the credentials provided in your `.env` file or the environment variables configured for the MCP server.
6062

6163
## Developing 👨‍💻
6264

0 commit comments

Comments
 (0)