Skip to main content
Glama

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 Invoice table with the usual audit fields, point it at Customer, 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

  1. Install the extension (DASE comes with it).

  2. Open a .dsorm file — that starts DASE's agent bridge.

  3. Open Chat, switch to Agent mode, and open the tools picker: the DASE ORM Designer server is listed with its tools already enabled.

  4. 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

daseMcp.bridgeUrl

""

Fixed bridge address, e.g. http://127.0.0.1:39100/bridge. Skips discovery.

daseMcp.discoveryDir

""

Directory holding DASE's bridge-endpoint*.json files. Defaults to the installed DASE extension's global storage.

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-mcp

The 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 .dsorm file; check that dase.agentBridge.enabled is on.

The wrong model is edited

Pass document, or open the intended model — the server matches your workspace folder.

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 trip

claude-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 zip

License

MIT © Hermes Silva. Integration and security notes: docs/MCP_INTEGRATION.md.

Available Tools

1 tool
dase_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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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. 1 tool updatev1.0.666
    • First observeddase_status

TDQS

A4.3/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity between tools.

Naming Consistency5/5

A single tool cannot be inconsistent; the name 'dase_status' follows a clear noun-based pattern.

Tool Count3/5

One tool is minimal and feels thin for a server, even if it covers a single purpose; borderline for typical scoping.

Completeness5/5

The tool completely covers its stated purpose of reporting connection status and providing instructions, with no obvious missing functionality.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    This 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    This server provides database access capabilities to Claude, supporting SQLite, SQL Server, PostgreSQL, and MySQL databases.
    806
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    This server provides database access capabilities to Claude, supporting SQLite, SQL Server, PostgreSQL, and MySQL databases.
    806
    MIT

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/hermessilva/DASE-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server