@fusedashlabs/ui9000-workspace
OfficialSupports spatial intents by producing Mapbox-powered map charts, with a configurable Mapbox access token for rendering maps.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@fusedashlabs/ui9000-workspaceshow a comparison chart for the attached CSV"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@fusedashlabs/ui9000-workspace
Stage 3 workspace MCP: one tool, show_workspace. The model sends a closed intent; this package picks the widget from @fusedashlabs/widgets and a DataProfile. It does not call mcp-ui generate_*.
FuseDash client / gateway keep using mcp-ui. This package is what Cursor and Claude Desktop run as MCP. In Cursor and Claude, Approve is displayed, not enforced; blocking an unapproved action is Stage 5, on a page we own.
npm: @fusedashlabs/ui9000-workspace
Server key in Cursor / Claude: UI9000-Workspace
Install in Cursor or Claude
Node.js 22+. No env required. Chart JSON is POSTed to https://mcp.ui9000.com/v1/data-links.
Cursor
Replace @fusedashlabs/ui9000-mcp in ~/.cursor/mcp.json (leave FuseDash's mcp-ui install alone):
{
"mcpServers": {
"UI9000-Workspace": {
"command": "npx",
"args": ["-y", "@fusedashlabs/ui9000-workspace"]
}
}
}Restart Cursor. Attach or paste a CSV, then ask with an intent (comparison, spatial, summary, form). The model should call show_workspace with csv (the table including the header) or path to a local file. Keep datasetId from the result for the next chart on the same table.
WORKSPACE_DATA_PATH is only a fallback when no csv / path / url / datasetId is passed (shipped demo CSV). Chat attachments are not that env file — they must go through csv or path.
Claude.ai (custom connector)
Claude web cannot run npx. Add a custom connector:
Customize → Connectors → Add custom connector
Name:
UI9000-WorkspaceURL:
https://mcp.ui9000.com/workspace/mcpNo auth. Enable the connector in the new chat. Paste CSV via show_workspace.csv (or datasetId from a previous call). url / path are disabled on this hosted server. Without a source, the shipped demo CSV (regional-incidents) is used.
Do not use https://mcp.ui9000.com/mcp — that is mcp-ui (generate_*), not show_workspace.
Claude Desktop
Edit claude_desktop_config.json:
{
"mcpServers": {
"UI9000-Workspace": {
"command": "npx",
"args": ["-y", "@fusedashlabs/ui9000-workspace"]
}
}
}Related MCP server: Vela MCP Server
Run from this repo (stdio)
# from the ui9000-widgets repo root
yarn build
yarn workspace @fusedashlabs/ui9000-workspace startCatalog import is @fusedashlabs/widgets/catalog (dist/). If that file is missing, yarn build first.
Optional: WORKSPACE_DATA_PATH to a CSV the server already holds (the model still sends only { "intent": "…" }). Relative paths resolve against packages/core, not $HOME.
Cursor / Claude open ui://ui9000/chart. In this multi-repo checkout the HTML
is the sibling mcp-ui generated App View; otherwise the server fetches
https://mcp.ui9000.com/mcp-app/chart. The data-link URL is for the widget
fetch, not a page — do not open it in a browser.
stdio JSON-RPC on stdin/stdout. Do not log to stdout — that breaks the frame stream.
Environment
None required to start. Overrides:
Variable | Default | What |
|
| Hosted data-link origin (same remote as mcp-ui). Loopback ( |
| dev fallback outside prod-like envs | HMAC key for local signing only. Hosted POST is signed by |
| baked public FuseDash charts key | Always present so |
|
| Signed-link lifetime. Floored, minimum 1. |
|
| Cap on serialized payload bytes. |
|
| Local TTL store (also a cache of hosted ids). |
| shipped demo CSV ( | Fallback table when the tool call has no |
tools/list is length 1. Pass a table with csv, url, path, or datasetId — never data[] / rows. Dataset rows never appear in the MCP result or the description.
Publish to npm
Does not use the widgets v* tag (that workflow publishes only @fusedashlabs/widgets).
From GitHub: Actions → Release — workspace MCP → Run workflow (NPM_TOKEN is already on this repo).
Locally (after npm login to the @fusedashlabs org):
yarn build
yarn workspace @fusedashlabs/ui9000-workspace npm publishYarn rewrites workspace:* to the published @fusedashlabs/widgets version.
Folder map
Path | Owner | What |
| senior | spec schema, |
| senior | three-layer validator |
| senior | rules, score, disqualify |
| senior | decision trace shape |
| senior |
|
| senior |
|
| senior |
|
| senior | public re-exports |
| junior | loader over widgets 0.5.0 ( |
| junior | columns → |
| junior | hand-rolled JSON-RPC for in-process tests; MCP SDK + ext-apps for live stdio |
| junior | copy from mcp-ui |
| junior | copy from mcp-ui |
| junior | 9 fail-closed cases |
| junior | same dataset × 4 intents |
| junior | data only |
Engine code does not live in the widgets package or in mcp-ui.
Public API
validateSpec, decide, INTENTS, DATA_PROFILE_KEYS, loadWorkspaceCatalog, profileColumns, signDataLink, readDataLink, handleShowWorkspace, createServer, createWorkspaceServer, startWorkspaceServer, applyWorkspaceHostDefaults.
This server cannot be deployed
Maintenance
Related MCP Connectors
- BasedashOAuthcom.basedash
Governed BI MCP. Ask questions of live company data and list workspace sources via OAuth.
Renders interactive Chart.js charts and dashboards inline in AI conversations.
Create, inspect, manage, and render charts and data visualizations as SVG/PNG or interactive embeds.
Assess AI-discovery readiness, plan visibility fixes, and summarize scan evidence. Read-only.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables AI clients to generate over 26 chart types via MCP, automatically starting a private rendering service.271-
- AlicenseNot gradedqualityBmaintenanceEnables governed, agent-agnostic data exploration by allowing users to ask natural language questions through MCP-compatible agents, executing safe, permission-scoped queries against data sources and returning interactive charts.16 npmApache 2.0
- FlicenseNot gradedqualityBmaintenanceEnables agents to create interactive dashboards from natural language queries, returning both text results and portable dashboard resources for MCP Apps-compatible hosts.-
- AlicenseAqualityBmaintenanceEnables AI assistants to query Oracle AI Database read-only, profile tables, and render result sets as PNG charts.7MIT