Browse documentation

send_feedback

[feedback]

Sends feedback and product facts as a public GitHub issue. First search open and closed issues in glidermcp/glidermcp for your exact problem using abstract, public terms. Confirm each duplicate concerns GliderTrace. Update to the latest product version. Restart the server. Retry the affected operation. If a duplicate exists, use the existing issue. Call send_feedback only if the problem persists after the update and no duplicate exists.

Before you use this tool

This is the one GliderTrace tool that publishes authored text off the machine and files it as a public GitHub issue. Other tools reach the network: trace_restore fetches packages and trace_run spawns processes. Only this one turns a call into a public report. It is off unless a release build runs with telemetry on, so a build with no feedback endpoint sends nothing. GLIDER_FEEDBACK=0 disables the tool; --no-telemetry and DO_NOT_TRACK=1 also disable it. At most 5 distinct reports are attempted per session. Retries with the original reportId use no additional report quota. The tool asks the agent to tell the user what it sent. Whether a call runs without a prompt is decided by the MCP client approval settings, not by the server. The public issue carries the report id and never an install or session identifier. Captured runtime evidence, artifacts, and dumps are never part of a report.

Try it locally in the GliderTrace playground

Parameters

NameTypeRequiredDescription
categorystringYesReport category: missing-capability, bad-output, error, or praise.
messagestringYesWhat 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.
relatedToolstringNoThe GliderTrace tool the report is about, for example trace_run. Optional. 1 to 64 lowercase letters, digits, or underscores.
harnessstringNoCoding agent and its version, for example "claude-code 2.1.0". Optional. Letters, digits, spaces, and . _ + - only.
modelstringNoModel that wrote the report, for example "claude-opus-5". Optional. Same character rules as harness.
otherMcpServersjsonNoOther MCP servers in the session, only when they matter to the report. JSON array of up to 8 names of lowercase letters, digits, - and _.
reportIdstringNoOptional GUID returned for a report in this server session. Reuse it with the original authored fields within 29 days to retry that report.

Examples

Replace sample paths and symbol keys with values from your workspace.

Report a missing capability after an update and a duplicate search

Arguments
{
  "category": "missing-capability",
  "message": "no tool reports thread pool starvation from stored runtime evidence",
  "relatedTool": "trace_run"
}
Full MCP request
Full MCP request
{
  "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"
    }
  }
}
Illustrative response
{
  "success": true,
  "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": "1.0.0",
    "os": "macos",
    "arch": "arm64",
    "runtime": "10.0"
  },
  "remainingThisSession": 4,
  "hints": {
    "nextSteps": [
      "Show the user the issue URL; the report is public there."
    ]
  }
}

Retry an unconfirmed report with its returned ID in the same session

Arguments
{
  "reportId": "3f9c2b1e-8d4a-4c6f-9a21-5b7e0d1c2f34",
  "category": "missing-capability",
  "message": "no tool reports thread pool starvation from stored runtime evidence",
  "relatedTool": "trace_run"
}
Full MCP request
Full MCP request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "send_feedback",
    "arguments": {
      "reportId": "3f9c2b1e-8d4a-4c6f-9a21-5b7e0d1c2f34",
      "category": "missing-capability",
      "message": "no tool reports thread pool starvation from stored runtime evidence",
      "relatedTool": "trace_run"
    }
  }
}

Response Notes

Returns the status of the report: filed, duplicate, queued, failed, or unconfirmed. A sent or unconfirmed result carries the report id. A disabled or refused call carries no report ID. A filed or duplicate result carries the public issue URL. A queued or failed result carries null. An unconfirmed result omits the field. A failed status means the server stored the report but could not publish it, and answers success:false. 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. Timeout and cancellation details appear under meta when applicable. A refused report returns success:false with 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 report may have reached the server but was not confirmed. The server answered without naming an issue, the call timed out, or the call was cancelled after it was sent. The report may or may not be public. To retry an unconfirmed report, pass its returned reportId and all original authored fields. Category and message remain required. The fields must match their original normalized values. The server resends the original report. It refuses unknown IDs, IDs from another session, and changed fields before submission. Retry IDs expire after 29 days or when the server session ends. Retries do not extend this limit. Clock changes can end availability earlier. An expired ID returns retry_expired without submission or quota use. Do not submit an expired report under a new ID.

GliderTrace 1.0.0 returns compact JSON for every tool. Result fields appear beside success; there is no response-format parameter. success describes the tool call. Check the process or session status and exitCode separately. Scalar results and fields that conflict with reserved names appear under result.

To migrate an envelope consumer, read response.sessionId instead of response.data.sessionId. Stored sessions and exported files keep their formats. --max-response-chars limits response text to 60,000 UTF-16 characters by default. Use 0 to disable it, or at least 1,000. This limit counts text characters, not transport bytes or tokens.

outputLimit.truncated marks omitted response detail. It does not change capture completeness. Use the returned next tool and arguments when available. Do not repeat a command or feedback submission to recover omitted output. For event pages, keep the filters and cursor while reducing limit.

For session details, set includeArtifacts and includeTopFindings to false to reduce output. Check error, actionable meta, warnings, and coverage before drawing conclusions. Internal diagnostics stay in local server logs.