Index / MCP servers / Datadef

Datadef MCP server

Datadef is a remote MCP server that gives an AI agent 36 tools, among them canvas_add_flow_arrow, canvas_add_lineage, canvas_add_nodes. It answers at https://datadef.io/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 10 September 2026; the last check, on 19 October 2026, succeeded.

Status
Answering
Tools
36
Official
yes, served from datadef.io
Reliability
6 of 6 checks
Response time
132 ms
Transport
streamable HTTP
Last checked
19 October 2026

Generate, edit, and export data-architecture diagrams from your AI. Column lineage, PNG in chat.

Description as the publisher wrote it.

The 36 tools Datadef offers

ToolWhat it does
canvas_add_flow_arrowDraw one large labelled arrow representing a whole flow — "ingest", "serve", "publish" — instead of many thin edges saying the same thing. Use this when several things move the same way for the same reason: draw the arrow once between the t
Inputs: diagram_id, arrows
canvas_add_lineageRecord column-level lineage: which source column produces which target column, and how. This is what makes the diagram queryable for impact analysis, so add it for every real transformation. Operates on one Datadef diagram, named by diagram
Inputs: diagram_id, links
canvas_add_nodesAdd one or more nodes to the canvas. Batch every node you want in a single call. Positions are assigned by canvas_layout_canvas afterwards — never set them yourself. Operates on one Datadef diagram, named by diagram_id. If you have not alre
Inputs: diagram_id, nodes
canvas_add_regionDraw a labelled translucent area behind existing nodes to show they belong together, without reparenting them. Use this when the grouping is a reading aid rather than real containment, when areas would need to overlap, or when a node belong
Inputs: diagram_id, regions
canvas_add_shapePlace a rectangle, circle, arrow, or line as a visual annotation — a backdrop highlighting a region, an arrow pointing something out, a divider. Shapes sit behind data nodes and are not part of the data flow. To group nodes into a labelled
Inputs: diagram_id, shapes
canvas_add_standalone_nodeAdd a single data node at an exact position, without connecting it to anything. Use when the user wants something placed somewhere specific, or when you will wire it up yourself afterwards. For building out a connected diagram, canvas_add_n
Inputs: diagram_id, type, label, description, icon, technology
canvas_add_textPlace a free-floating text box on the canvas — a caption, a callout, a section heading, a note explaining a decision. Position it with explicit coordinates from canvas_measure_canvas. Text boxes are annotations: they are not part of the dat
Inputs: diagram_id, texts
canvas_align_nodesAlign nodes to a shared edge or centre line, or space them evenly. Cleaner and far more reliable than computing coordinates by hand. Operates on one Datadef diagram, named by diagram_id.
Inputs: diagram_id, nodes, mode
canvas_collapse_nodesMerge several nodes into one summary node, keeping every connection. Use when a set of near-identical objects adds length without adding meaning — eight staging models that all behave the same become "stg_* (8)". Do not use when the individ
Inputs: diagram_id, nodes, label, description
canvas_connect_nodesDraw edges between nodes to show how data flows. Always label the edge with what actually happens ("ingest", "dbt transform", "hourly sync") — unlabelled edges make a diagram useless. Operates on one Datadef diagram, named by diagram_id.
Inputs: diagram_id, edges
canvas_describe_canvasGet an overview of the current canvas: every node with its id, type, label and group, plus all connections and groups. Call this first, before any edit, so you work from real node ids instead of guesses. Operates on one Datadef diagram, nam
Inputs: diagram_id, includeColumns
canvas_disconnect_nodesRemove the edge between two nodes. Operates on one Datadef diagram, named by diagram_id.
Inputs: diagram_id, edges
canvas_group_nodesCreate a labelled zone (e.g. "Bronze Layer", "Ingestion") and optionally move nodes into it. Zones are what turn a tangle of boxes into a readable architecture — use them for layers, domains, or environments. Operates on one Datadef diagram
Inputs: diagram_id, label, description, parentGroup, style, family
canvas_inspect_nodesGet full detail for specific nodes: all columns with types and keys, metadata, schedule, formula, owners. Use before modifying a node so you preserve fields you are not changing. Operates on one Datadef diagram, named by diagram_id.
Inputs: diagram_id, nodes
canvas_layout_canvasArrange the canvas. Call this once at the end, after all structural edits are done — not between each edit. By default only the parts you touched are re-arranged and everything else keeps its position. Operates on one Datadef diagram, named
Inputs: diagram_id, full
canvas_measure_canvasGet exact geometry: every node's position and size in canvas units, the overall canvas bounds, and any nodes that overlap each other. Call this before moving, resizing, or placing anything precisely — positions are meaningless without it. O
Inputs: diagram_id, nodes
canvas_move_nodesSet node positions precisely. Use absolute x/y to place something exactly, or dx/dy to nudge it. Coordinates are absolute canvas units (same space canvas_measure_canvas reports). Moving a group moves its children with it — do not also move
Inputs: diagram_id, moves
canvas_move_to_groupMove existing nodes into an existing group, or out of any group. Operates on one Datadef diagram, named by diagram_id.
Inputs: diagram_id, nodes, group
canvas_remove_nodesDelete nodes and every edge touching them. Deleting a group also deletes the nodes inside it — check with canvas_describe_canvas first if that is not what you want. Operates on one Datadef diagram, named by diagram_id.
Inputs: diagram_id, nodes
canvas_replace_nodeSwap a node for a different one while keeping every connection, its position, and its group. Use this when a component changes — Redshift becomes Snowflake, a batch job becomes streaming — instead of deleting and rebuilding, which would los
Inputs: diagram_id, node, type, label, description, icon
canvas_resize_nodesSet the width and height of nodes. Mostly for shapes, text boxes, and group zones — data nodes size themselves from their content, and resizing one can clip what it displays. Operates on one Datadef diagram, named by diagram_id.
Inputs: diagram_id, resizes
canvas_search_iconsSearch Datadef's icon library (2000+ cloud and data-tool logos) for a valid icon id. Use it when you want a specific vendor logo and are unsure of its exact id — passing an invalid id silently falls back to a generic icon. Operates on one D
Inputs: diagram_id, query, limit
canvas_set_columnsSet the full column list of a table node, replacing whatever it had. Pass every column you want to keep — this is a replace, not a merge. Mark primary and foreign keys; they are what make a data diagram worth reading. Operates on one Datade
Inputs: diagram_id, node, columns
canvas_suggest_simplificationsReport where this canvas could be collapsed — groups of similar nodes that could become one summary node — without changing anything. Use it to decide whether the diagram is denser than it needs to be. Density is not automatically a problem
Inputs: diagram_id, minGroupSize
canvas_update_edgesChange existing connections without deleting them: fix a label, change the type, or restyle. Use this to correct a wrong edge label rather than disconnecting and reconnecting. Operates on one Datadef diagram, named by diagram_id.
Inputs: diagram_id, updates
canvas_update_nodesChange properties of existing nodes. Only the fields you pass are touched; everything else is preserved. To replace a table's columns use canvas_set_columns instead. Operates on one Datadef diagram, named by diagram_id.
Inputs: diagram_id, updates
canvas_validate_canvasCheck the canvas for structural problems (disconnected nodes, circular data flow, broken references) and quality problems (unlabelled edges, tables without columns). Call this before you finish, and fix any errors it reports. Operates on on
Inputs: diagram_id
create_blank_diagramCreate an empty diagram and return its diagram_id, so you can build it yourself with the canvas_* tools. No AI generation runs and no credit is spent: you draw it. Use this when you want control over the result, or already know the architec
Inputs: name, description
create_diagramGenerate a professional data architecture diagram from a description and save it to the user's Datadef account. Use this for any data-shaped diagram: medallion and lakehouse architectures, ETL/ELT pipelines, streaming topologies, data mesh,
Inputs: prompt, name, scope, detailed
edit_diagramChange an existing diagram with a natural-language instruction, add nodes, rewire connections, add columns, reorganise into layers, fill in owners and schedules. Be specific about what to change and where. "Add a Kafka topic between the API
Inputs: diagram_id, instruction, include_image
export_diagramRender a diagram to a PNG or JPEG image. Returns the image inline AND a short-lived signed download URL. Use the inline image to show the diagram; use the URL when the user wants to save it, attach it, or share a link: it serves the file di
Inputs: diagram_id, format, width, height
get_design_guideDatadef's standard for what makes a diagram readable, size, edge discipline, nested zones, annotations, and the tool order for building or editing. Read this BEFORE your first canvas_* call. It is the same standard Datadef's own generator f
get_diagramRead the full structure of a diagram: every node with its type and columns, every connection, and the groups. Use this before editing so you know what is actually there.
Inputs: diagram_id, include_columns, include_image
list_diagramsList diagrams in the user's Datadef account, most recently updated first. Use this to find the id of a diagram before editing or exporting it.
Inputs: limit
repo_refreshRe-sync a repo-linked diagram from the current state of its repository. If the tracked branch or tag has not moved since the last sync, nothing changes. If it has, the diagram is REGENERATED from the repository, which replaces manual canvas
Inputs: project_id
repo_statusFor a diagram that was created from a connected git repository: which repo and branch or tag it tracks, when it last synced, the commit it reflects, and whether daily sync is on. Use repo_refresh to sync it now. Only the owner of the reposi
Inputs: project_id

Add Datadef to your AI client

Every block below points at https://datadef.io/mcp. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http datadef https://datadef.io/mcp
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "datadef": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://datadef.io/mcp"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "datadef": {
      "url": "https://datadef.io/mcp"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "datadef": {
      "type": "http",
      "url": "https://datadef.io/mcp"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "datadef": {
      "url": "https://datadef.io/mcp"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "datadef": {
      "serverUrl": "https://datadef.io/mcp"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "datadef": {
      "url": "https://datadef.io/mcp"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: Datadef
version: 0.0.1
schema: v1
mcpServers:
  - name: Datadef
    type: streamable-http
    url: https://datadef.io/mcp
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "datadef": {
      "httpUrl": "https://datadef.io/mcp"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "datadef": {
      "type": "http",
      "url": "https://datadef.io/mcp"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "datadef": {
      "url": "https://datadef.io/mcp"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fdatadef.io%2Fmcp&type=streamable_http&id=datadef&name=Datadef

Is Datadef up right now?

It answered our last check on 19 October 2026 in 132 ms. Over 6 checks since 10 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to Datadef

Questions about Datadef

Is there an official Datadef MCP server?

Yes. It is published by datadef.io and served from datadef.io, the vendor's own domain: https://datadef.io/mcp.

How many tools does Datadef have?

36, as returned by the server's own tools/list on 12 September 2026: canvas_add_flow_arrow, canvas_add_lineage, canvas_add_nodes, canvas_add_region, canvas_add_shape, canvas_add_standalone_node, canvas_add_text, canvas_align_nodes, and 28 more.

Is Datadef down?

It answered our last check on 19 October 2026 in 132 ms. Over 6 checks since 10 September 2026 it answered 6.

How do I add Datadef to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://datadef.io/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does Datadef need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: io.datadef. Endpoint host: datadef.io. ARD identifier: urn:air:io.datadef:mcp:mcp. First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.