npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@dashbodk/mcp

v0.1.2

Published

MCP server that calls DashBODK Studio public APIs (docs, validator, MML)

Readme

@dashbodk/mcp

npm version Node engine License: MIT

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

  1. Install the package (global or in your project):

    npm install -g @dashbodk/mcp

    or

    pnpm add -g @dashbodk/mcp
  2. In Cursor Settings → MCP, add a server:

    {
      "mcpServers": {
        "dashbodk": {
          "command": "npx",
          "args": ["-y", "@dashbodk/mcp"],
          "env": {
            "DASHBODK_URL": "https://dashbodk.studio"
          }
        }
      }
    }

    Omit DASHBODK_URL to 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-mcp

Usage examples

  • Search docs: Call search_docs with query (and optionally category).
  • List categories: Call list_doc_categories (no args).
  • Validate asset: Call validate_asset with url set 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_mml with mml set to your MML XML string.
  • List MML tags: Call list_mml_tags (no args) to get the supported tag list.
  • Generate MML: Call generate_mml with description set to a scene description.

All tools return content as JSON text in the MCP response.

Tool reference

  • search_docs

    • query (required): string
    • category (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-asset with 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/generate with 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 (uses tsup; output in dist/).
  • Run locally: node dist/index.js or npx . 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.