Skip to main content
Glama
5aab

MCP Color Picker

by 5aab

🎨 MCP Color Picker β€” Sample MCP App

An interactive color picker that renders as a UI inside MCP-compatible hosts like VS Code GitHub Copilot and Claude.


Prerequisites

  • Node.js 18+

  • VS Code with GitHub Copilot (or Claude / Claude Desktop)


Related MCP server: Colors MCP Server

Setup

1. Install & build

npm install
npm run build

2. Start the server

npm run serve

You should see:

βœ… MCP Color Picker running at http://localhost:3001/mcp

Connect to VS Code Copilot

Add the server to your VS Code MCP config.

Option A β€” project-level (.vscode/mcp.json in your workspace):

{
  "servers": {
    "color-picker": {
      "type": "http",
      "url": "http://localhost:3001/mcp"
    }
  }
}

Option B β€” global (~/.copilot/mcp.json):

{
  "servers": {
    "color-picker": {
      "type": "http",
      "url": "http://localhost:3001/mcp"
    }
  }
}

Then in VS Code:

  1. Open Copilot Chat (Ctrl+Alt+I / Cmd+Alt+I)

  2. Switch to Agent mode (dropdown in the chat input)

  3. Type: "open the color picker"

The interactive color picker UI will render right inside the chat! πŸŽ‰


Connect to Claude (web / desktop)

For Claude.ai or Claude Desktop you need to expose the server publicly. In a separate terminal:

npx cloudflared tunnel --url http://localhost:3001

Copy the generated URL (e.g. https://random-name.trycloudflare.com) and add it as a Custom Connector in Claude:

Profile β†’ Settings β†’ Connectors β†’ Add custom connector

Note: Custom connectors require a paid Claude plan (Pro, Max, or Team).


How it works

File

Role

server.ts

MCP server β€” registers the color_picker tool + serves the HTML UI resource

mcp-app.html

HTML entry point for the color picker UI

src/mcp-app.ts

UI logic β€” connects to the host via the MCP App SDK

vite.config.ts

Bundles everything into a single self-contained HTML file

Key concepts

  • registerAppTool β€” registers the tool with _meta.ui.resourceUri, telling the host to render a UI when this tool is called

  • registerAppResource β€” serves the bundled HTML when the host requests it

  • App.connect() β€” establishes bidirectional communication between the UI and the host

  • app.ontoolresult β€” receives data pushed from the server when the tool runs


Rebuilding after UI changes

npm run build   # rebuild the UI
npm run serve   # restart the server

Or run both at once:

npm run dev

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A lightweight MCP server that enables AI assistants to collect interactive user feedback via a browser window with full Markdown rendering and syntax highlighting.
    1
    22 npm
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A simple color utility MCP server for frontend developers. Convert, mix, adjust, and analyze colors right from your AI agents.
    11
    24 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables users to generate color palettes (complementary, analogous, triadic, etc.) and check WCAG contrast ratios within AI chat applications using interactive UI.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that lets coding agents ask their human via interactive UIs like sliders, forms, diffs, and live previews.
    MIT