Skip to main content
Glama

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
NameRequiredDescriptionDefault
titleYesIssue title, e.g. 'Bug: BarChart tooltip shows undefined'
bodyNoIssue body with details, reproduction steps, diagnoseConfig output
labelsNoGitHub labels, e.g. ['bug'] or 'bug'

Implementation Reference

  • 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}` }],
      }
    }
  • 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
    )
  • 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
    )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nteract/semiotic'

If you have feedback or need assistance with the MCP directory API, please join our Discord server