open-mcp-apps — Claude Code MCP server: what it does, how to install
Local execution layer for persistent interactive micro-apps inside AI agents. It equips coding assistants with reusable HTML interfaces linked to SQLite storage.
claude mcp add --env OMA_DB=<OMA_DB> --env OMA_VIEWER=<OMA_VIEWER> --env OMA_DYNAMIC_TOOLS=<OMA_DYNAMIC_TOOLS> --transport stdio open-mcp-apps -- npx -y @2nd1st/open-mcp-appsWhat open-mcp-apps does
The server implements the MCP Apps protocol specification (ui://, io.modelcontextprotocol/ui) to connect desktop assistants to a local browser runtime. When asked for an interface, the model writes a standalone HTML widget tailored to the window.oma API and registers it. Once saved, the application remains accessible across subsequent chats.
Application state is decoupled from the user interface. Records reside in SQLite collections backed by an append-only change_event log with optimistic concurrency. This mechanism lets humans and models update the same database safely without clobbering each other. The package arrives with 34 tools and three pre-configured system apps.
Running this engine demands Node 22 or newer. The local server binds strictly to 127.0.0.1 over stdio, so web interfaces like claude.ai cannot reach your machine without using the hosted openmcp.app service. Always install the scoped package @2nd1st/open-mcp-apps, because an unrelated project owns the plain unscoped package name.
What it helps with
- Retain AI-generated HTML interfaces across independent chat sessions
- Maintain persistent application data within local SQLite storage
- Avoid race conditions during parallel updates using event versioning
- Provide desktop AI clients with native themed widgets via stdio
Example prompts for the agent
- "Create an HTML issue tracker and save it into the open-mcp-apps registry."
- "Launch the dashboard app and retrieve recent records from the SQLite store."
How to install open-mcp-apps
Platform CLI
claude mcp add --env OMA_DB=<OMA_DB> --env OMA_VIEWER=<OMA_VIEWER> --env OMA_DYNAMIC_TOOLS=<OMA_DYNAMIC_TOOLS> --transport stdio open-mcp-apps -- npx -y @2nd1st/open-mcp-appsReplace <…> with your own values
Platform CLI
codex mcp add open-mcp-apps --env OMA_DB=<OMA_DB> --env OMA_VIEWER=<OMA_VIEWER> --env OMA_DYNAMIC_TOOLS=<OMA_DYNAMIC_TOOLS> -- npx -y @2nd1st/open-mcp-appsReplace <…> with your own values
Config file
{
"mcpServers": {
"open-mcp-apps": {
"command": "npx",
"args": [
"-y",
"@2nd1st/open-mcp-apps"
],
"env": {
"OMA_DB": "<OMA_DB>",
"OMA_VIEWER": "<OMA_VIEWER>",
"OMA_DYNAMIC_TOOLS": "<OMA_DYNAMIC_TOOLS>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"open-mcp-apps": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@2nd1st/open-mcp-apps"
],
"env": {
"OMA_DB": "<OMA_DB>",
"OMA_VIEWER": "<OMA_VIEWER>",
"OMA_DYNAMIC_TOOLS": "<OMA_DYNAMIC_TOOLS>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e OMA_DB=<OMA_DB> -e OMA_VIEWER=<OMA_VIEWER> -e OMA_DYNAMIC_TOOLS=<OMA_DYNAMIC_TOOLS> open-mcp-apps npx -y @2nd1st/open-mcp-appsReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about open-mcp-apps
How to install open-mcp-apps in Claude Code?
Run claude mcp add open-mcp-apps -- npx -y @2nd1st/open-mcp-apps in your terminal. You must have Node 22 or newer installed on your system.
What does open-mcp-apps do?
It provides a local runtime for desktop AI hosts to build, save, and reuse HTML widgets backed by SQLite data collections.
Why must the package name use the @2nd1st scope?
The unscoped open-mcp-apps identifier on npm belongs to an entirely separate project. Using @2nd1st/open-mcp-apps ensures your host runs this specific engine.