Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ List BugSplat issues with optional filtering. The issues tool lists all crashes
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.
- `id`: Issue ID to retrieve

### get-key-crashes
Get all crashes for a specific Stack Key ID (crash group). This tool lists all individual crashes that belong to the same crash group, which is useful for analyzing patterns within a specific type of crash.
- `stackKeyId`: The Stack Key ID to get crashes for
### list-issues-for-group
Get all crashes for a specific Stack Key (Group) ID. This tool lists all individual crashes that belong to the same crash group, which is useful for analyzing patterns within a specific type of crash.
- `stackKeyId`: The Stack Key (Group) ID to get crashes for
- `pageSize`: Number of results per page (1-100, defaults to 10)

### get-summary
Expand All @@ -65,18 +65,18 @@ Get a specific attachment for a BugSplat issue. Returns the file content as a ba

### create-defect
Create a new defect in a connected defect tracking system.
- `stackKeyId`: The Stack Key ID you'd like to log as a defect
- `stackKeyId`: The Stack Key (Group) ID you'd like to log as a defect
- `notes`: Notes about the defect you'd like to log

### add-defect-link
Add a link between a BugSplat issue and an existing defect in a connected defect tracking system.
- `stackKeyId`: The Stack Key ID you'd like to log as a defect
- `stackKeyId`: The Stack Key (Group) ID you'd like to log as a defect
- `notes`: Notes about the defect you'd like to log
- `linkDefectId`: The ID of the defect you'd like to link to

### remove-defect-link
Remove the link between a BugSplat issue and a connected defect tracking system. The defect in the defect tracking system will not be deleted, but the link will be removed.
- `stackKeyId`: The Stack Key ID you'd like to remove the defect from
- `stackKeyId`: The Stack Key (Group) ID you'd like to remove the defect from

Each tool will automatically use the credentials provided in your `.env` file or the environment variables configured for the MCP server.

Expand Down
6 changes: 3 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,10 @@ server.tool(
);

server.tool(
"get-key-crashes",
"Get all crashes for a specific Stack Key ID (crash group). This tool lists all individual crashes that belong to the same crash group, which is useful for analyzing patterns within a specific type of crash.",
"list-issues-for-group",
"List BugSplat issues for a specific Stack Key (Group) ID with optional filtering. This tool lists all individual crashes that belong to the same crash group, which is useful for analyzing patterns within a specific type of crash.",
{
stackKeyId: z.number().describe("The Stack Key ID to get crashes for"),
stackKeyId: z.number().describe("The Stack Key (Group) ID to get crashes for"),
pageSize: z
.number()
.min(1)
Expand Down
4 changes: 2 additions & 2 deletions src/issue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ export function formatIssueOutput(
text += `IP Address: ${crash.ipAddress}\n`;
}
if (crash.stackKeyId) {
text += `Stack Key ID: ${crash.stackKeyId}\n`;
text += `Stack Key (Group) ID: ${crash.stackKeyId}\n`;
}
if (crash.stackKey) {
text += `Stack Key: ${crash.stackKey}\n`;
text += `Stack Key (Group): ${crash.stackKey}\n`;
}

text += `Linked Defects: ${crash.stackKeyDefectLabel || "None"}\n`;
Expand Down
4 changes: 2 additions & 2 deletions src/key-crash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ export function formatKeyCrashesOutput(
stackKeyId: number
): string {
if (rows.length === 0) {
return `No crashes found for Stack Key ID ${stackKeyId} in database ${database}`;
return `No crashes found for Stack Key (Group) ID ${stackKeyId} in database ${database}`;
}

let text = `Found ${rows.length} crashes for Stack Key ID ${stackKeyId} in database ${database}:\n\n`;
let text = `Found ${rows.length} crashes for Stack Key (Group) ID ${stackKeyId} in database ${database}:\n\n`;

return text + rows
.map((row, i) => {
Expand Down
2 changes: 1 addition & 1 deletion src/summary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export async function getSummary(
export function formatSummaryOutput(rows: SummaryApiRow[]): string {
return rows
.map((row) => {
return `Summary for ${row.stackKey} from ${row.firstReport} to ${row.lastReport} ${row.crashSum} crashes`;
return `Summary for ${row.stackKey} (Group ID:${row.stackKeyId}) from ${row.firstReport} to ${row.lastReport} ${row.crashSum} crashes`;
})
.join("\n");
}
Loading