dashy-mcp
dashy-mcp
MCP server exposing Dashy's REST API as tools, so an LLM can read and edit your dashboard config: sections, items (tiles), and top-level config keys.
Built with FastMCP.
Enabling the API on your Dashy server
Dashy's API is opt-in and disabled by default. Enabling and securing it (via
ENABLE_API, API_TOKEN, and/or Dashy's existing user auth) is server-side
configuration specific to how you run Dashy, and out of scope for this project -
see Dashy's own docs: Enabling the API.
Install
Download a wheel from the latest release
and install it as a uv tool (no repo checkout needed):
uv tool install dashy_mcp-*.whlThis puts a dashy-mcp command on your PATH. Register it with Claude Code:
claude mcp add dashy \
--env DASHY_URL=https://your-dashy-host \
--env DASHY_TOKEN=<token> \
-- dashy-mcpFrom source
uv sync
cp .env.example .env # fill in DASHY_URL and DASHY_TOKENclaude mcp add dashy \
--env DASHY_URL=https://your-dashy-host \
--env DASHY_TOKEN=<token> \
-- uv run --directory /path/to/dashy-mcp dashy-mcpConfig
Env var | Required | Default |
| yes | - |
| no | none (no auth header sent) |
| no |
|
Tools
4 resource-scoped tools, each covering multiple Dashy API endpoints (14
total) via an operation parameter. Call a tool with operation set to one
of its listed operations and an arguments dict matching that operation's
parameters — the tool's own description (visible to your MCP client) lists
every operation, its signature, and a one-line doc.
Tool | Operations | Covers |
| 5 | List/add/get/update/delete items (tiles) |
| 4 | Add/get/update/delete sections |
| 3 | List config files, get/replace a config file |
| 2 | Get/set a top-level config key |
Example: dashy_section(operation="dashy_get_section", arguments={"sid": "Media"}).
Endpoint-level naming is preserved as the operation value:
Operation | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sid/iid accept either a zero-based index or an exact section name / item title.
filename defaults to conf.yml (or DASHY_CONFIG_FILE) on every operation.
PATCH-based updates are a shallow merge: only given fields change, and a nested
array included in the patch replaces the existing one wholesale.
Development
make help # list all commandsCommand | Does |
|
|
| Offline tests - one per endpoint, mocked HTTP |
| Tests against the live instance (needs |
| Build wheel + sdist into |
| Bump the version in |
| Remove build artifacts |
The release workflow (.github/workflows/release.yml) builds and publishes to
Releases whenever a v* tag is
pushed - so the usual flow is make bump-patch, commit, then tag and push.
The integration suite reads real config and, for the write lifecycle test, creates and
then deletes a scratch section named mcp-test-<uuid> - never touches your real
sections. Dashy also auto-backs up every write to user-data/config-backups/ as a
second safety net.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/SavageCore/dashy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server