@tootega/dase-mcp
This server is a standalone MCP proxy that bridges Claude Code and the DASE ORM Designer running in VS Code via a local HTTP bridge.
Check connection status: The
dase_statustool reports whether the proxy can reach the DASE ORM Designer in VS Code, and provides instructions to bring it online if offline.43 tools total: 12 read tools, 23 write/mutation tools, 7 command triggers, and 1 status tool (details in
docs/MCP_API_SPEC.md).Automatic discovery: Automatically finds the running VS Code window with the DASE extension active by reading discovery files.
Lazy connection & retry: Connects on first tool call and retries once if a call fails (e.g., after VS Code reload).
Claude Code integration: Installable as a Claude Code plugin, bundled into a single
.cjsfile for easy setup.No VS Code extension dependency: All MCP logic lives in this server; the DASE extension itself carries no MCP code.
Configurable: Override the bridge URL with
DASE_BRIDGE_URLor the discovery directory withDASE_MCP_DISCOVERY_DIR.
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., "@@tootega/dase-mcplist all tables in the current project"
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.
Overview
DASE turns VS Code into a visual ORM modeling workbench. This extension publishes DASE's whole API as an MCP server, so GitHub Copilot agent mode — and any other MCP client — can work on the live diagram: the tables it adds appear on the canvas immediately, positioned, colored and validated.
Install it and the server shows up ready to use; there is nothing to configure, no port to pick and
no JSON to paste into mcp.json.
"Add an
Invoicetable with the usual audit fields, point it atCustomer, and put it next to the other billing tables" — one prompt, applied to the open designer.
Related MCP server: MCP Database Server
Requirements
VS Code 1.101 or newer (the version that lets extensions contribute MCP servers)
The DASE extension — installed automatically as a dependency
A DASE window with the model open; the tools act on the designer that owns your workspace
Getting started
Install the extension (DASE comes with it).
Open a
.dsormfile — that starts DASE's agent bridge.Open Chat, switch to Agent mode, and open the tools picker: the DASE ORM Designer server is listed with its tools already enabled.
Ask for what you want. Run DASE MCP: Show Bridge Status from the Command Palette if you ever need to confirm the connection.
What the agent can do
43 tools — the same surface DASE exposes to itself:
Group | Tools | Examples |
Read | 12 | inspect the model, tables, fields, data types, validation issues, seed data, DBML export |
Write | 23 | add/rename/delete tables, fields and FK references, move and color, edit any property, save |
Commands | 7 | generate ORM code, create the SQL script, import DBML, organize tables with AI |
Status | 1 | report connectivity and how to bring the designer online |
Destructive tools are annotated as such, so the client can ask before running them. Every tool
accepts an optional document, which targets a specific model — opening it when needed — instead of
whichever designer happens to be focused.
Full reference: docs/MCP_API_SPEC.md.
Settings
Both settings exist for unusual setups; leave them empty and discovery does the right thing.
Setting | Default | Purpose |
|
| Fixed bridge address, e.g. |
|
| Directory holding DASE's |
Commands: DASE MCP: Show Bridge Status and DASE MCP: Refresh MCP Server.
How it works
Copilot agent mode ──stdio──> dase-mcp server ──HTTP (dase-bridge/1)──> DASE agent bridge
(or Claude Code, server/dase-mcp.cjs (VS Code extension host)
Cursor, Windsurf…) │ discovery: bridge-endpoint.<hash>.json │
└── globalStorage/hermessilva.dase ◄─── written by ─┘The full MCP implementation — server, 43 tools, protocol handling — lives outside VS Code, in
src/server/. DASE itself carries no MCP code: it only exposes a loopback agent bridge (plain
JSON over HTTP) and writes discovery files into its global storage. Each tool call becomes one HTTP
round trip; when a call fails (say, the ephemeral port changed after a reload), the server
re-discovers and retries once.
This extension is the thin part: it tells VS Code how to spawn that same server, hands it the
workspace folder as cwd — which is how the right DASE window gets picked when several are open —
and points it at DASE's exact global-storage directory.
Bridge protocol: POST /bridge with { "method": "...", "args": [...] } →
{ "ok": true, "result": ... } or { "ok": false, "error": "..." }. GET /bridge lists the
available methods. The bridge binds to 127.0.0.1 only and checks the Origin header; it is on by
default (dase.agentBridge.enabled).
Other MCP clients
The same server drives DASE from outside VS Code. As a Claude Code plugin:
/plugin marketplace add https://github.com/HermesSilva/DASE-MCP
/plugin install dase-mcpThe editor registers MCP servers in-process, so the Claude Code CLI does not inherit this
extension's server — it reads its own config. The extension takes care of that: when it activates
and finds the CLI installed with no dase server registered, it asks once whether it may add it
(Register / Not now / Never). Every later activation checks the entry the CLI holds and
silently repairs it — the recorded path lives inside the versioned extension folder, so each
update moves it. DASE MCP: Register with Claude Code CLI in the Command Palette forces the
same registration, and is the way back for anyone who answered Never. Either way the CLI ends
up with:
claude mcp add dase --scope user -e "DASE_MCP_DISCOVERY_DIR=<globalStorage>\hermessilva.dase" -- node "<extension>\server\dase-mcp.cjs"For Claude Desktop, Cursor, Windsurf or any generic client, run the bundle over stdio:
{
"mcpServers": {
"dase": { "command": "node", "args": ["<repo>/claude-plugin/server/dase-mcp.cjs"] }
}
}Environment overrides: DASE_BRIDGE_URL (skip discovery), DASE_MCP_DISCOVERY_DIR (extra discovery
directory).
Troubleshooting
Symptom | Fix |
Tools fail with "no live DASE agent bridge" | Open a |
The wrong model is edited | Pass |
Nothing after an upgrade | DASE MCP: Refresh MCP Server, then re-run the request. |
Build
npm install
npm run build # typecheck + esbuild: server bundle, staged copy, extension bundle
npm run smoke # fake bridge + stdio round tripclaude-plugin/server/dase-mcp.cjs is a committed build artifact — Claude Code plugin installs
clone the repo and must not need npm install. server/ and out/ are generated, and only those
two (plus media/) ship inside the VSIX.
Release
Two channels, one version — both call scripts/Set-Version.ps1, which writes package.json, the
Claude plugin manifest and SERVER_VERSION:
./build-package.ps1 # VSIX (no -Version → increments the build)
./publish-package.ps1 -Pat … # VS Code Marketplace
./prepare-release.ps1 # npm tarball + Claude Code plugin zipLicense
MIT © Hermes Silva. Integration and security notes: docs/MCP_INTEGRATION.md.
Available Tools
1 tooldase_statusA
Report the connection status between this MCP proxy and the DASE ORM Designer running in VS Code, with instructions to bring the designer online.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It indicates a read-like operation ('report') and includes instructions (likely non-destructive), but does not explicitly state it has no side effects or requires no permissions. The absence of any behavioral detail beyond the core function limits transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loading the action ('Report the connection status') and adding the secondary purpose ('with instructions'). Every word is functional and no unnecessary detail exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status tool with no parameters and no siblings, the description is largely complete. It states what is reported (connection status) and the additional guidance provided. However, it does not describe the format of the report or instructions, which could be useful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is fully documented (100% coverage). The description adds no parameter information because none exist. Per guidelines, baseline for 0 params is 4, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports connection status and provides instructions to bring the designer online. It uses specific verbs ('report', 'bring the designer online') and identifies the resource ('DASE ORM Designer'). Without siblings, differentiation is not needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when connection status is needed or designer is offline) but does not explicitly state context or exclusions. Since no siblings exist, explicit alternatives are unnecessary, but adding a 'use when' phrase would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v1.0.666- First observed
dase_status
TDQS
With only one tool, there is no possibility of ambiguity between tools.
A single tool cannot be inconsistent; the name 'dase_status' follows a clear noun-based pattern.
One tool is minimal and feels thin for a server, even if it covers a single purpose; borderline for typical scoping.
The tool completely covers its stated purpose of reporting connection status and providing instructions, with no obvious missing functionality.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Drop-in proxy keeping OpenAI Assistants API calls working past the August 26, 2026 sunset, plus a Th
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA proxy server that enables communication between clients (like Claude AI or VS Code) and JetBrains IDEs, allowing AI assistants to access IDE functionality.0-
- AlicenseNot gradedqualityDmaintenanceThis server enables Claude to directly interact with SQLite, SQL Server, PostgreSQL, and MySQL databases through the Model Context Protocol, allowing for query execution, table management, and data export capabilities.MIT
- AlicenseNot gradedqualityDmaintenanceThis server provides database access capabilities to Claude, supporting SQLite, SQL Server, PostgreSQL, and MySQL databases.806MIT
- AlicenseNot gradedqualityDmaintenanceThis server provides database access capabilities to Claude, supporting SQLite, SQL Server, PostgreSQL, and MySQL databases.806MIT
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/hermessilva/DASE-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server