@dashbodk/mcp
v0.1.2
Published
MCP server that calls DashBODK Studio public APIs (docs, validator, MML)
Readme
@dashbodk/mcp
What is this?
@dashbodk/mcp is an MCP (Model Context Protocol) server that calls the DashBODK Studio public APIs. It exposes tools for searching docs, validating ODK assets and MML, listing MML tags, and generating MML from a description. This package does not use Supabase or any private backend — it only talks to the public HTTP API of a DashBODK Studio instance (by default https://dashbodk.studio).
Tools
| Tool | Description |
|------|-------------|
| search_docs | Search documentation by query; optional category filter. |
| list_doc_categories | List all doc categories. |
| validate_asset | Validate a GLB/glTF URL against ODK constraints (size, triangles, skeleton, textures). |
| get_odk_specs | Return ODK specs (max triangles, file size, texture size, skeleton, glTF, MML runtime). |
| validate_mml | Validate MML markup; returns supported/unsupported tags, warnings, element count. |
| list_mml_tags | List supported MML tags (Feb 2026 Alpha). |
| generate_mml | Generate MML scene code from a natural language description. |
Requirements
- Node.js ≥ 20
- A running DashBODK Studio instance (or use the default public URL).
Installation
Cursor
Install the package (global or in your project):
npm install -g @dashbodk/mcpor
pnpm add -g @dashbodk/mcpIn Cursor Settings → MCP, add a server:
{ "mcpServers": { "dashbodk": { "command": "npx", "args": ["-y", "@dashbodk/mcp"], "env": { "DASHBODK_URL": "https://dashbodk.studio" } } } }Omit
DASHBODK_URLto use the default.
Claude Desktop / other MCP clients
Add the server the same way: command = npx, args = ["-y", "@dashbodk/mcp"], and optionally set DASHBODK_URL in env.
CLI (stdio)
Run the server directly (it speaks MCP over stdio):
npx @dashbodk/mcp
# or, if installed globally:
dashbodk-mcpUsage examples
- Search docs: Call
search_docswithquery(and optionallycategory). - List categories: Call
list_doc_categories(no args). - Validate asset: Call
validate_assetwithurlset to a public GLB/glTF URL. - ODK specs: Call
get_odk_specs(no args) for a short text summary of ODK limits. - Validate MML: Call
validate_mmlwithmmlset to your MML XML string. - List MML tags: Call
list_mml_tags(no args) to get the supported tag list. - Generate MML: Call
generate_mmlwithdescriptionset to a scene description.
All tools return content as JSON text in the MCP response.
Tool reference
search_docs
query(required): stringcategory(optional): string- Calls
GET {BASE_URL}/api/docs/search?q=...&category=...
list_doc_categories
- No arguments
- Calls
GET {BASE_URL}/api/docs/categories
validate_asset
url(required): string (GLB/glTF URL)- Calls
POST {BASE_URL}/api/studio/validate-assetwith body{ url }
get_odk_specs
- No arguments
- Returns hardcoded ODK/MML spec text (no network call).
validate_mml
mml(required): string- Parses tags with
/(<[a-z-]+)/g, checks against supported/unsupported lists; returns{ valid, unsupported_tags, warnings, element_count }.
list_mml_tags
- No arguments
- Returns the list of supported MML tags as JSON.
generate_mml
description(required): string- Calls
POST {BASE_URL}/api/mml/generatewith body{ prompt: description }; returns{ mml }.
Config
| Variable | Description |
|----------|-------------|
| DASHBODK_URL | Base URL of the DashBODK Studio instance (default: https://dashbodk.studio). |
Set in the MCP server env or in the environment when running the binary.
Development
git clone <repo>
cd packages/mcp
npm install
npm run build- Build:
npm run build(usestsup; output indist/). - Run locally:
node dist/index.jsornpx .from the package directory after build.
Contributing
Contributions are welcome. Open an issue or PR in the DashBODK Studio repository. Keep this package free of Supabase or private APIs; it should only depend on the public HTTP API.
License
MIT. See LICENSE in this package.
