send_feedback
[feedback]
Sends abstract feedback and product facts as a public GitHub issue. Search open and closed Glider issues for a duplicate. Check the loaded root against the intended worktree and build configuration, then repeat the operation. Update and restart when practical; state any check you could not do. Include observed evidence when available. For an invented code example, supply evidence, run instructions, and invented files. Use preview first, show the complete public text to the user, and get explicit approval before sending.
Before you use this tool
With preview=false, this tool sends authored text off the machine and files it as a public GitHub issue. 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. 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 issue carries the report id and never an install or session identifier.
Try it locally in the Glider playground
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| category | string | Yes | Report category: missing-capability | bad-output | error | 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 | Glider tool the report is about, for example find_code. Optional. |
| 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. 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 _. |
| evidence | json | No | Optional observed facts: reproductionStatus is required inside evidence. Use original_reproduced only after repeating the failure, synthetic_reproduced only after running an invented example, or unable_to_test when blocked. Optional workspaceMatch, steps, expected, actual, and context stay abstract; each text field is at most 500 Unicode scalar values. No code or paths. Unreleased parameter. Available in development builds. |
| preview | boolean | No | Set true to validate and show the public issue and duplicate comment without sending or using quota. Unreleased parameter. Available in development builds. Default: false |
| instructions | string | No | Run instructions for invented files. Supply with files and synthetic_reproduced evidence. Unreleased parameter. Available in development builds. |
| files | json | No | One to six invented .cs, .csproj, or .md files. Up to 8 KiB each and 16 KiB total. Supply with instructions and synthetic_reproduced evidence. Unreleased parameter. Available in development builds. |
| reportId | string | No | Optional GUID returned for a report in this server session. Reuse it with the original authored fields within 29 days to retry that report. Unreleased parameter. Available in development builds. |
| responseDetail | string | No | compact returns results and actionable state. full adds diagnostic metadata under responseDiagnostics. Default: "compact" |
Examples
Replace sample paths and symbol keys with values from your workspace.
Report a missing capability after an update and a duplicate search
{
"category": "missing-capability",
"message": "no tool returns the package dependency graph for a solution",
"relatedTool": "get_project_graph"
}Full MCP request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_feedback",
"arguments": {
"category": "missing-capability",
"message": "no tool returns the package dependency graph for a solution",
"relatedTool": "get_project_graph"
}
}
}{
"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 returns the package dependency graph for a solution",
"relatedTool": "get_project_graph",
"harness": null,
"model": null,
"otherMcpServers": null
},
"product": {
"product": "glider",
"productVersion": "7.3.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
{
"reportId": "3f9c2b1e-8d4a-4c6f-9a21-5b7e0d1c2f34",
"category": "missing-capability",
"message": "no tool returns the package dependency graph for a solution",
"relatedTool": "get_project_graph"
}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 returns the package dependency graph for a solution",
"relatedTool": "get_project_graph"
}
}
}Response Notes
With preview=true, returns the full public issue and duplicate comment without a network request, quota use, or report ID. The worker adds a report marker only when sending. With preview=false, returns the status of the report (filed, duplicate, queued, failed, or unconfirmed), report id, public issue URL, authored fields including any evidence and synthetic files, public product facts, reports left this session, and next steps. The result excludes the install and session identifiers. A refused report names the rejected field so the agent can rewrite it in abstract words. Feedback is disabled by GLIDER_FEEDBACK=0, --no-telemetry, or DO_NOT_TRACK=1. At most 5 distinct reports are attempted per session. An unconfirmed report may already be public. Retry it with the original reportId and every unchanged authored field in the same server session, within 29 days. A failed report was stored but could not be published. An expired retry ID cannot start a replacement report. Results use top-level fields with success. Compact is the default; full adds responseDiagnostics. Both modes retain errors, coverage, partial state, and recovery advice.