[feedback]
Reports a gap in GliderTrace to its developers as a public GitHub issue. Call it when a capability is missing, a result is wrong, or a call errors. Praise is a category, not a trigger. Tell the user what you sent. Write it abstractly. The tool refuses code, paths, source and config file names, secrets, and stack traces.
A missing trace, dump, or counter summary is only visible at the moment an agent needs it, and no stored session records that moment.
The model files the gap in abstract words. A filed report answers with the public issue URL, so the user sees what was published. One environment variable turns the tool off.
Try it locally in the GliderTrace playground
| Name | Type | Required | Description |
|---|---|---|---|
| category | string | Yes | Report category: missing-capability, bad-output, error, or praise. |
| message | string | Yes | What you tried to do and could not do, abstractly. 1 to 500 characters. The tool refuses code, paths, source and config file names, secrets, and stack traces, and names the reason. Do not name private symbols. |
| relatedTool | string | No | The GliderTrace tool the report is about, for example trace_run. Optional. 1 to 64 lowercase letters, digits, or underscores. |
| harness | string | No | Coding agent and its version, for example "claude-code 2.1.0". Optional. Letters, digits, spaces, and . _ + - only. |
| model | string | No | Model that wrote the report, for example "claude-opus-5". Optional. Same character rules as harness. |
| otherMcpServers | json | No | Other MCP servers in the session, only when they matter to the report. JSON array of up to 8 names of lowercase letters, digits, - and _. |
Report a missing capability at the moment the agent meets it
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_feedback",
"arguments": {
"category": "missing-capability",
"message": "no tool reports thread pool starvation from stored runtime evidence",
"relatedTool": "trace_run"
}
}
}{
"success": true,
"data": {
"status": "filed",
"reportId": "3f9c2b1e-8d4a-4c6f-9a21-5b7e0d1c2f34",
"issueUrl": "https://github.com/glidermcp/glidermcp.com/issues/123",
"report": {
"category": "missing-capability",
"message": "no tool reports thread pool starvation from stored runtime evidence",
"relatedTool": "trace_run",
"harness": null,
"model": null,
"otherMcpServers": []
},
"product": {
"product": "glider-trace",
"productVersion": "0.12.0",
"os": "macos",
"arch": "arm64",
"runtime": "10.0"
},
"remainingThisSession": 4,
"hints": {
"nextSteps": [
"Show the user the issue URL; the report is public there."
]
}
},
"meta": {
"durationMs": 412,
"cancelled": false,
"timedOut": false,
"timeoutMs": 1200000
},
"error": null
}Returns the status of the report: filed, duplicate, queued, failed, unconfirmed, or not_sent. A sent, unconfirmed, or not_sent result carries the report id. A disabled or refused call carries none, because none was minted. A filed or duplicate result carries the public issue URL. A queued or failed result carries null. An unconfirmed or not_sent result omits the field. A failed status means the server stored the report but could not publish it, and answers success:false. A not_sent status means the report never reached the server, so nothing is stored. It repeats the authored fields exactly as they were sent. It adds the public product facts, the number of reports left in this session, and next steps. The result never carries an install or session identifier. The envelope also carries meta with durationMs, cancelled, timedOut, and timeoutMs. A refused report returns success:false with data.refused { reason, field, detail }, so the agent can rewrite the named field. A disabled tool returns success:false with the reason it sends nothing, and trace_status reports the same state under feedback. An unconfirmed status means the server answered without naming an issue. The report may or may not have been published.