dotvvm-docs-mcp
Click on "Install 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., "@dotvvm-docs-mcplist dotvvm controls"
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.
dotvvm-docs-mcp
An MCP (Model Context Protocol) server that exposes DotVVM UI control documentation to AI assistants. Documentation is sourced directly from the riganti/dotvvm-docs GitHub repository (branch 4.0) and cached locally for 30 days.
Status: Early prototype — not yet stable. Expect breaking changes. Not yet published to npm. The
npx @madev/dotvvm-docs-mcpinstall instructions below will work once the package is released.
Prerequisites
Node.js 18+ (native
fetchrequired)npm
Related MCP server: web-ui-component-spec-mcp
Development setup
npm install
npm run dev # runs via tsx (no build step needed)npm run dev starts the server on stdio. It does not print a prompt — this is expected, since MCP servers communicate over JSON-RPC on stdin/stdout.
Building
npm run build # compiles TypeScript to dist/
npm start # runs compiled outputMCP tools
Tool | Description |
| Lists all discovered controls. Accepts optional |
| Returns composed Markdown docs for a control (description, HTML output, code samples, ViewModels). |
Control naming
DotVVM controls are identified by a tag prefix that maps to a namespace:
Prefix | Namespace / Category |
| Built-in controls ( |
| Auto UI controls ( |
| Bootstrap 3 ( |
| Bootstrap 4 ( |
| Bootstrap 5 ( |
| Business Pack + Messaging ( |
Use prefix:Name syntax to disambiguate controls that exist in multiple namespaces — e.g. dot:Button, bp:GridView, bs5:Alert.
Integrating with Claude Code
Add to your Claude Code MCP config (.claude/settings.json or global settings):
{
"mcpServers": {
"dotvvm-docs": {
"command": "npx",
"args": ["-y", "@madev/dotvvm-docs-mcp"]
}
}
}Integrating with Claude Desktop
Add to %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"dotvvm-docs": {
"command": "npx",
"args": ["-y", "@madev/dotvvm-docs-mcp"]
}
}
}Restart Claude Desktop after editing the config.
Local development
To use a local checkout instead of the published package:
{
"mcpServers": {
"dotvvm-docs": {
"command": "npx",
"args": ["tsx", "/path/to/dotvvm-docs-mcp/src/index.ts"]
}
}
}Caching
Control discovery and documentation are cached to disk at:
~/.dotvvm-docs-mcp/cache/
├── _registry.json # control list (from GitHub API)
├── builtin__Button.json # per-control docs
└── ...Cache TTL is 30 days. To force a refresh, delete the relevant .json file or the entire cache directory.
Project structure
src/
├── index.ts # MCP server entry point, tool definitions
├── controls.ts # Control discovery via GitHub API + prefix resolution
├── fetcher.ts # Raw content fetcher + Markdown composition
└── cache.ts # File-based disk cache (30-day TTL)Data source
All documentation is fetched from:
Directory listings:
https://api.github.com/repos/riganti/dotvvm-docs/contents/Controls/{category}?ref=4.0Raw content:
https://raw.githubusercontent.com/riganti/dotvvm-docs/4.0/Controls/{category}/{ControlName}/
Each control directory may contain control.md, output.md, and sample{N}/ subdirectories with page.dothtml, ViewModel.cs, and sample.md.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/madev/dotvvm-docs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server