Project Atlas MCP Server
A standard, forkable MCP App server with a Streamable HTTP endpoint, providing a self-contained UI resource and native tools like search_projects for project discovery.
README
OpenWork MCP App examples
A public, forkable monorepo of standard MCP Apps for testing OpenWork Connect. It contains three Vite + React interfaces, shared MCP Apps runtime helpers, a real Streamable HTTP MCP server, deterministic host-side fixtures, a multi-App browser playground, and protocol-level verification.
Build the Apps outside OpenWork with any coding agent, publish a self-contained index.html, and import that URL into an OpenWork Plugin. Or deploy this repository's MCP server and add it through Connect as a normal tool-backed MCP server.
Published Apps
Each URL is a complete self-contained MCP App resource. It contains no credentials, mock records, or OpenWork-specific runtime manifest.
| Example | What it demonstrates | URL to import |
|---|---|---|
| Project Atlas | Metrics, search, table/detail layout, capability discovery and execution | https://reachjalil.github.io/openwork-remote-mcp-app-example/project-atlas/index.html |
| Capability Explorer | Semantic capability search, exact match selection, arguments, and approved execution | https://reachjalil.github.io/openwork-remote-mcp-app-example/capability-explorer/index.html |
| Component Gallery | Cards, status chips, loading/empty/error states, responsive table, and timeline | https://reachjalil.github.io/openwork-remote-mcp-app-example/component-gallery/index.html |
| Project Atlas revision 2 | A second immutable URL for update, activation, retirement, and rollback tests | https://reachjalil.github.io/openwork-remote-mcp-app-example/v2/index.html |
The original Project Atlas URL remains available at https://reachjalil.github.io/openwork-remote-mcp-app-example/index.html.
Run locally
Requires Node.js 20+ and pnpm.
git clone https://github.com/reachjalil/openwork-remote-mcp-app-example.git
cd openwork-remote-mcp-app-example
pnpm install
pnpm verify
pnpm dev
Open http://localhost:5173/. The playground embeds all three generated documents, performs the real MCP Apps postMessage handshake, delivers ordinary launch structuredContent, and handles ordinary same-server tools/call requests with deterministic fixtures.
Run one App without the multi-App host while editing:
pnpm dev:atlas
pnpm dev:capabilities
pnpm dev:gallery
Run the standard MCP server in another terminal:
pnpm start:mcp
# http://127.0.0.1:8787/mcp
The endpoint is a stateless Streamable HTTP MCP server with three versioned ui:// resources, three launch tools bound through exact _meta.ui.resourceUri, and app-visible same-server tools. pnpm check:mcp connects with the official SDK and verifies resource reads, MIME types, metadata, launch data, capability search, exact execution, and the native Project Atlas tool.
Monorepo map
| Surface | Purpose |
|---|---|
apps/project-atlas |
Tool-backed project dashboard |
apps/capability-explorer |
Capability-search and execution reference UI |
apps/component-gallery |
Reusable interface pattern gallery |
packages/mcp-app-runtime |
MCP Apps handshake, launch-result, and same-server tool-call helper |
packages/example-ui |
Shared React components and visual tokens |
playground |
Deterministic browser host for all generated Apps |
fixtures/mock-data.json |
Host/server-only local data; never bundled into the Apps |
scripts/mcp-server.mjs |
Standard MCP server exposing all three Apps |
scripts/check-mcp-server.mjs |
Protocol-level contract check |
docs |
Generated self-contained Pages resources; do not hand-edit |
React is only an authoring choice. Vite compiles each UI into one self-contained client document. That immutable HTML document is the MCP App resource; OpenWork never executes this source tree at render time, and this is not React SSR.
Use with OpenWork
Import a published App URL
- Choose or create an OpenWork Plugin.
- Ask an agent to import one of the HTTPS URLs above through OpenWork Connect.
- Review and approve the third-party executable-content installation.
- Open the cached resource from the Plugin's MCP capabilities.
OpenWork downloads the exact HTML bytes server-side, validates and digests them, and serves the cached immutable revision through a versioned ui:// resource. It does not execute or iframe the live source URL.
For Apps that need Connect tools or Code Mode Programs, the OpenWork launch result supplies the exact app-visible gateway tool names in ordinary structuredContent:
{
"serverTools": {
"searchCapabilities": "search_capabilities",
"executeCapability": "execute_capability"
}
}
The App searches by intent, selects an exact capability (and schema digest when present), then executes it with ordinary same-server MCP tools/call. OpenWork mediates the underlying Connect tool or durable Program, preserving authorization, confirmation, and audit behavior. The sandboxed iframe receives no provider credentials and does not contact unrelated MCP servers directly. codemodeScripts policy can control Program availability without enabling OpenWork-generated UI authoring.
The Component Gallery is deliberately launch-data-only, so it is useful even when capability search is unavailable. Project Atlas and Capability Explorer surface a clear disconnected state until a compatible host supplies gateway names.
Add the native MCP server through Connect
- Deploy
pnpm start:mcpto a public HTTPS Node service, or expose the local port with a temporary HTTPS tunnel. - Add its
/mcpURL through OpenWork Connect. - Grant the desired member/team access.
- Ask the agent to call
open_project_atlas,open_capability_explorer, oropen_component_gallery.
This path requires no conversion. OpenWork discovers each tool's _meta.ui.resourceUri, reads its ui:// resource from the originating server, and lets the sandboxed App call that server's app-visible tools through the standard host bridge.
Demo it
DEMO_SCRIPT.md contains a prepared 7–10 minute product demo, exact agent prompts, local and Connect setup, the native and URL-import paths, expected proof points, and fallbacks.
The OpenWork implementation is tracked in PR #3782, stacked on the merged Plugin foundation. This repository intentionally demonstrates standard MCP concepts; URL downloading and semantic capability search are OpenWork installation/gateway behavior, not new MCP protocol primitives.
See EXECUTION_CONTRACT.md for the runtime and security boundary and CONTRIBUTING.md for the verification loop.
License
MIT. Fork the repo, replace the examples, keep the MCP contracts standard, and publish your own resources or server.
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.
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.
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.
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
E2B
Using MCP to run code via e2b.
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.