@jemidev/mcp
MCP server for Jemi that lets AI assistants read and edit Jemi projects via a local WebSocket bridge.
README
@jemidev/mcp
MCP server for Jemi. It lets an AI assistant - Claude Code, Codex, Cursor, and anything else that speaks the Model Context Protocol - read and edit your Jemi projects.
It listens on 127.0.0.1:4401, and forwards every request to a Jemi tab over a local WebSocket bridge.
assistant ──HTTP──▶ jemi-mcp (127.0.0.1:4401) ──WebSocket──▶ your Jemi tab ──▶ Jemi API
no keys, no storage holds the keys
Usage
Start the server and leave it running:
bunx @jemidev/mcp # or: npx -y @jemidev/mcp
Register it with your assistant:
claude mcp add --transport http jemi http://127.0.0.1:4401/mcp
Then open Jemi, go to Settings → MCP and press Connect. That page also has ready-made snippets for Claude Desktop, Codex, OpenCode, Cursor, Gemini CLI, VS Code and Windsurf.
Configuration
| Variable | Default | Purpose |
|---|---|---|
JEMI_MCP_PORT |
4401 |
Port to listen on. Change it in your client config too. |
JEMI_MCP_ALLOWED_ORIGINS |
https://app.jemi.dev |
Comma-separated origins allowed to attach a bridge. |
The origin allowlist matters: without it any page you visit could connect to the local port and feed your assistant fabricated project data. It could not read anything — it has no keys — but it could lie.
Tools
34 tools covering projects, channels, tasks, documents, comments, chat, dictionaries (tags,
priorities, difficulties) and members. Ids are opaque, so resolve them first —
jemi_list_projects → jemi_list_channels — before acting. The exception is a task number
like ALP-0254: jemi_find_task_by_key resolves it in one call.
jemi_list_tasks filters by board, title, tag, priority, difficulty, assignee and by what a
task is missing, and returns a brief shape by default — listing a busy channel in full does
not fit in an assistant's context. Bulk tools (jemi_update_tasks,
jemi_update_dictionary_items, jemi_create_tasks, jemi_delete_tasks) exist so twenty edits
are one call.
Task bodies, comments and chat messages are TipTap documents. jemi_document_format returns
the accepted nodes and marks for each surface.
Destructive tools (deleting a task, a channel, a dictionary entry) require a confirmation
argument that the assistant must get from you in words. That is a guardrail against an
over-eager agent, not a security boundary.
Bridge protocol
The frame types the server and the browser exchange are published as a subpath export, for anyone building another bridge:
import { MCP_PROTOCOL_VERSION, parseFrame, type TMcpBridgeFrame } from '@jemidev/mcp/protocol'
Only one bridge may be attached at a time: every operation targets "the tab the user is looking at", and with two tabs connected there is no way to say which one that is.
Development
bun install
bun run dev # watch mode, from source
bun run build # bundles dist/ for Node
bun run check-types
The runtime is plain Node (node:http + ws) so the package works under npx as well as
bunx; Bun is used for the toolchain.
License
MIT © Jemi
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.