reportIssue
Submit bug reports or feature requests for Semiotic data visualizations by generating pre-filled GitHub issue URLs with structured details.
Instructions
Generate a GitHub issue URL for Semiotic bug reports or feature requests. Returns a URL the user can open to submit. For rendering bugs, include the component name, props summary, and any diagnoseConfig output in the body.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Issue title, e.g. 'Bug: BarChart tooltip shows undefined' | |
| body | No | Issue body with details, reproduction steps, diagnoseConfig output | |
| labels | No | GitHub labels, e.g. ['bug'] or 'bug' |
Implementation Reference
- ai/mcp-server.ts:366-390 (handler)The handler function `reportIssueHandler` which constructs the GitHub issue URL based on provided title, body, and labels.
async function reportIssueHandler(args: { title?: string; body?: string; labels?: string[] | string }): Promise<ToolResult> { const title = args.title const body = args.body const labels = args.labels if (!title) { return { content: [{ type: "text" as const, text: "Missing 'title' field. Provide { title: 'Bug: ...', body: '...', labels?: ['bug'] }." }], isError: true, } } const params = new URLSearchParams() params.set("title", title) if (body) params.set("body", body) if (labels) { const labelList = Array.isArray(labels) ? labels.join(",") : labels params.set("labels", labelList) } const url = `https://github.com/${REPO}/issues/new?${params.toString()}` return { content: [{ type: "text" as const, text: `Open this URL to submit the issue:\n\n${url}` }], } } - ai/mcp-server.ts:440-449 (registration)Registration of the `reportIssue` tool within the McpServer using Zod schemas for validation.
srv.tool( "reportIssue", "Generate a GitHub issue URL for Semiotic bug reports or feature requests. Returns a URL the user can open to submit. For rendering bugs, include the component name, props summary, and any diagnoseConfig output in the body.", { title: z.string().describe("Issue title, e.g. 'Bug: BarChart tooltip shows undefined'"), body: z.string().optional().describe("Issue body with details, reproduction steps, diagnoseConfig output"), labels: z.union([z.array(z.string()), z.string()]).optional().describe("GitHub labels, e.g. ['bug'] or 'bug'"), }, reportIssueHandler ) - ai/mcp-server.ts:443-449 (schema)Zod schema defining the input arguments (title, body, labels) for the `reportIssue` tool.
{ title: z.string().describe("Issue title, e.g. 'Bug: BarChart tooltip shows undefined'"), body: z.string().optional().describe("Issue body with details, reproduction steps, diagnoseConfig output"), labels: z.union([z.array(z.string()), z.string()]).optional().describe("GitHub labels, e.g. ['bug'] or 'bug'"), }, reportIssueHandler )