Skip to main content
Glama
burkeholland

VS Code MCP Button Generator

by burkeholland

Copilot install buttons (raw URL)

copilot_buttons_from_raw

Generate VS Code install buttons for raw URLs containing chat instructions, prompts, or modes to enable quick setup of MCP server configurations.

Instructions

Generate VS Code install buttons for a raw URL to chat instructions, prompts, or chat modes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesInstall kind
urlYesRaw GitHub URL or any public raw URL to the file.

Implementation Reference

  • src/index.ts:150-164 (registration)
    Registration of the MCP tool 'copilot_buttons_from_raw'. Includes title, description, input schema validating 'kind' (enum) and 'url' (string url), and handler that invokes generateCopilotInstallButtons to produce markdown content.
    server.registerTool(
      "copilot_buttons_from_raw",
      {
        title: "Copilot install buttons (raw URL)",
        description: "Generate VS Code install buttons for a raw URL to chat instructions, prompts, or chat modes.",
        inputSchema: {
          kind: z.enum(["chat-instructions", "chat-prompt", "chat-mode"]).describe("Install kind"),
          url: z.string().url().describe("Raw GitHub URL or any public raw URL to the file."),
        }
      },
      async ({ kind, url }) => {
        const markdown = generateCopilotInstallButtons(kind, url);
        return { content: [{ type: "text", text: markdown }] };
      }
    );
  • Main execution logic for the tool: generateCopilotInstallButtons constructs VS Code Stable and Insiders markdown install buttons (badges + links) for Copilot chat instructions/prompts/modes from the raw URL.
    export function generateCopilotInstallButtons(kind: CopilotInstallKind, rawUrl: string): string {
      const stableBadge = makeInstallBadge('0098FF', 'VS_Code');
      const insidersBadge = makeInstallBadge('24bfa5', 'VS_Code_Insiders');
      const stableLink = buildCopilotInstallLink(kind, rawUrl, false);
      const insidersLink = buildCopilotInstallLink(kind, rawUrl, true);
      const stable = `[![Install in VS Code](${stableBadge})](${stableLink})`;
      const insiders = `[![Install in VS Code](${insidersBadge})](${insidersLink})`;
      return `${stable}\n${insiders}`;
    }
  • Helper function to build the VS Code redirect install link with proper URL encoding for scheme, kind, and rawUrl.
    function buildCopilotInstallLink(kind: CopilotInstallKind, rawUrl: string, insiders = false) {
      const scheme = insiders ? 'vscode-insiders' : 'vscode';
      const host = insiders ? 'https://insiders.vscode.dev/redirect' : 'https://vscode.dev/redirect';
      // Encode the prefix and the raw URL separately so inner % are not double-encoded
      const prefix = encodeURIComponent(`${scheme}:${kind}/install?url=`);
      const raw = encodeURIComponent(rawUrl);
      return `${host}?url=${prefix}${raw}`;
    }
  • Helper function to generate the shield badge image URL for the install buttons.
    function makeInstallBadge(color: string, label: string) {
      // e.g., VS_Code-Install-0098FF
      return `https://img.shields.io/badge/${encodeURIComponent(label)}-Install-${color}?style=flat-square&logo=visualstudiocode&logoColor=white`;
    }
  • Zod input schema for the tool parameters: kind (enum of chat types) and url (validated URL).
    inputSchema: {
      kind: z.enum(["chat-instructions", "chat-prompt", "chat-mode"]).describe("Install kind"),
      url: z.string().url().describe("Raw GitHub URL or any public raw URL to the file."),
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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/burkeholland/mcp-vsc-button-gen'

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