mcp-apps-builder
Where to look before changing MCP server code in this repo (tools, resources, prompts, widgets, auth). Points to the house skills, the CLAUDE.md invariants, widget-shell's view runtime and the official MCP SDK's typings and docs; it teaches no framework API itself.
- License 许可
- MIT
- 所属仓库
- Miragon/pulse
- 最近更新
- 2026-11-14
- Stars
- ★ 8
- Forks
- 0
01 前言 Front Matter
- name
- mcp-apps-builder
- description
- Where to look before changing MCP server code in this repo (tools, resources, prompts, widgets, auth). Points to the house skills, the CLAUDE.md invariants, widget-shell's view runtime and the official MCP SDK's typings and docs; it teaches no framework API itself.
03 SKILL.md 正文
MCP server work in this repo
This repo builds on the official MCP TypeScript SDK: @modelcontextprotocol/server (the server,
McpServer, createMcpHandler), @modelcontextprotocol/node (the Node listener) and the MCP Apps
extension @modelcontextprotocol/ext-apps (registerAppTool on the server, the App in a view).
A module registers on a ModuleServer, which is the SDK's own
registerTool/registerPrompt/registerResource, so the SDK's examples apply as they are. What Pulse adds on top (the module contract, the registrar,
toolsets, tool errors, the view and feed bindings, server i18n, caller identity) lives in
@miragon/pulse-widget-shell/server, the view runtime in @miragon/pulse-widget-shell/widgets,
the UI in @miragon/pulse-ui. Read these, in this order:
- The root
CLAUDE.md: the architecture invariants. Tools go through the registrar, engine access throughwithEngine, a view through the module's view map under its view tool's name (invariant 3), feeds throughbuildDataFeedResult, and there is no federation in this server. - The house skill for the change:
add-bpm-feature: an engine tool, a cockpit route, a*_datafeed or a widget.
- widget-shell's README (
packages/core/widget-shell/README.md) for everything a widget does: the bundle root, the view host seam, the query hooks andTestViewHost; its UI comes from the design kit (packages/core/ui/README.md). Widgets never import@modelcontextprotocol/ext-apps: only widget-shell's host adapter does. The server half (the module port withModuleServer, the registrar,showToolBinding,appOnly, the server i18n) and the module test server (recordingModuleServer) are in the same README, under./serverand./testing. - The official SDK: its docs for tools, prompts and the server
(ts.sdk.modelcontextprotocol.io/v2) and for MCP
Apps (apps.extensions.modelcontextprotocol.io/api).
Read the typings this repo installs
(
packages/core/widget-shell/node_modules/@modelcontextprotocol/) before you trust an example from the web: they name the version that runs here.
Where an SDK example and the house skills disagree, the house skills win: a tool's view binding
comes from showToolBinding, never a hand-written _meta.ui, and the boot serves the view
resources, so a connector registers none (an ESLint gate holds that; a customer's module may bring
a finished HTML view, see widget-shell's README).
A user-visible change (env vars, tools, ports, getting-started steps) updates the Pulse docs
in docs/ in the same PR; they build into the site https://miragon.github.io/pulse/
(pnpm docs:build fails on a dead link). The product page https://miragon.ai/tools/pulse/ is
built from Miragon/miragon-ai-docs; a change it shows needs a PR there too.
04 同仓库更多 Skills
setup-server
Set up, configure, run, brand, and deploy this composed MCP server. Use whenever connecting a Camunda 7 / CIB seven engine, selecting modules or toolsets (`MCP_ACTIVE_MODULES`), renaming the `@acme` scope, building the Docker image, running behind an MCP gateway, or troubleshooting boot warnings or inspector issues.
create-module
暂无简介
add-widget
Step-by-step house pattern for adding an interactive widget to a module (the React component built from the design kit `@miragon/pulse-ui` and widget-shell's view runtime, the `show_*` widget tool, the app-only `*_data` feed, the view map keyed by the show tool's name, and a widget test under `TestViewHost`). Use whenever adding or changing widgets, `show_*` tools, `*_data` feeds, in-widget data fetching, or when debugging a widget that renders empty, unstyled, or hangs on "Loading…".
pulse-cli
Inspect and operate Camunda 7, Operaton and CIB seven process engines through their REST API with the Pulse CLI (deployments, process instances, user tasks, external tasks, incidents, jobs, history, variables, decisions), and drive process instances with its workflow commands (inspect, wait, advance, retry, deploy, status). Use it whenever a task needs to read or change the state of such an engine.
shadcn
Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for "shadcn init", "create an app with --preset", or "switch to --preset".
create-ticket
Create or update a GitHub issue for Pulse using the `gh` CLI. Use when the user asks to "file a bug", "create a feature request", "open a GitHub issue", or "update an existing one". Supports feature, bug, and refactor issue types with structured templates; shows a draft for confirmation before creating or editing; looks up existing issues by number or URL for updates.