input-mcp
MCP server for collecting contextual user input.
The server exposes a single collect_input
tool that can request either drawable image input - or some "other kind" (that's todo, as I get time and usecases), It launches a dedicated Electron window, and returns the submission back to the calling MCP client.
Build and Test the UI Components
bun install
first. obviously.
Build the UI bundle (creates
ui/dist/
assets used by Electron):npm run build:ui # or bun run build:uiLaunch the Electron prompt helper directly (useful for smoke tests):
bun run createThis spawns the image/text prompt window with the default text spec.
Test script:
bunx tsx scripts/test-input.ts text bunx tsx scripts/test-input.ts image
Testing with MCP Inspector
npx @modelcontextprotocol/inspector bun server.ts
Try listing the tool and invoking it.
Adding MCP to Claude
claude mcp add input-mcp bun <absolute path to input-mcp/server.ts>
Dev
Project Structure
Development Workflow
Modify the renderer in
ui/renderer.ts
and module files underui/modules/
.Add new input kinds by extending
shared/types.ts
and branching insidemount*Module
helpers.When iterating on the UI, run
bun run create
(ornpx tsx scripts/test-input.ts image
) to open a live window with the current spec.Keep
arch_todo.md
in sync when architectural issues are addressed.
License
MIT
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Enables collecting contextual user input through a dedicated Electron window interface. Supports drawable image input and other input types, allowing MCP clients to request interactive user submissions.