In private development
In development. The server is built but not released, and it has not yet been verified from an editor or coding agent.
MCP server
- Home
- Integrations
- MCP server
An MCP server for data engineering.
emo mcp runs the Emolysis engine as a Model Context Protocol server, so any editor or coding agent that supports MCP can write, test and deploy pipelines with one configuration entry.
In development
Configure
One entry in your editor or coding agent
Call
Each engine command, except the machine-token ones, becomes one MCP tool
Sign in
emo login, or a short code from a tool
Test
Golden tests on DuckDB, on local files
Overview
What the MCP server is.
emo mcp exposes the Emolysis engine as an MCP server over standard input and output: your editor or coding agent starts it as a local process, and nothing listens on a network port.
That gives a tool you already use the parts of Emolysis it lacks: platform profiles that say how Databricks, Snowflake or Microsoft Fabric want code written, templates for the ten pipeline shapes, golden tests on DuckDB, and dashboards from a question. The tool keeps its own model and its own interface; Emolysis supplies the data engineering.
Like every use of Emolysis, the server needs an Emolysis account; the Free plan is one. You sign in once with emo login, or confirm the short code a tool returns in the browser. Signed in, it works on local files, CSV and Parquet, on DuckDB alone, with no platform connected. Tool calls run on your machine, with the same lint rules, templates and golden tests as the app.
Features
What the server exposes.
How the MCP server works, from the tool names to signing in.
One configuration entry
Most MCP clients take an entry with a command and its arguments.
A tool for every command
Each engine command, except the machine-token commands, becomes one MCP tool, and the tool's input schema is the command's parameter schema. The dot in a command id becomes an underscore, so query.run becomes query_run.
Useful without a platform
Signed in, you can read files, run SQL, render templates and run golden tests on local data, with no platform connected.
Sign in from your editor
When you are not signed in, or your sign-in has expired, a tool returns a short code and a link. You confirm the code in the browser, sign in with your GitHub, Microsoft or Google account and retry the call. The code expires after 15 minutes.
Typed errors a coding agent can act on
A failed tool call returns an MCP error result that carries one of nine error codes, so your coding agent can tell a missing parameter from a platform failure and try again.
Tools the app's skills use
The desktop app's agent skills for a dashboard from a question, a pipeline for a shape, connecting a platform and explaining a pipeline call these same tools.
How it works
Adding it to your tool.
Setting it up takes one entry. The exact configuration file and format depend on your editor or coding agent, so check its documentation.
Add the entry
Add an entry that runs emo with the argument mcp. The server speaks MCP over standard input and output, and your tool starts and stops it.
Start with local files
Signed in, with no platform connected, point your coding agent at a CSV or Parquet file. It can read the file, run SQL on DuckDB and render a template for a shape.
Run a golden test
Ask for a pipeline, such as Dedupe / conform for a messy extract. The template's golden tests run on DuckDB on your machine, and a red result goes back to the template fill.
Connect a platform
When you are ready for Databricks, the server returns a short code. Confirm it in the browser, authorize with the platform's own login and pick a workspace.
Deploy from the same chat
Deploying works through the server too, with the pipeline_deploy tool. The tool does not run the tests itself: the app's agent runs lint and the golden tests before it deploys, and a coding agent calls the same tools first.
{ "mcpServers": { "emolysis": { "command": "emo", "args": ["mcp"] } }}Reference
Commands become tools.
A tool is named after its command id with the dot replaced by an underscore, because some MCP clients accept only letters, digits, underscores and hyphens in tool names. Calls also accept the dotted id.
| Command id | MCP tool | What it does |
|---|---|---|
| query.run | query_run | Run a SQL query |
| template.list | template_list | List the templates for your platform's shapes |
| template.render | template_render | Fill a template for a shape |
| template.test | template_test | Run a template's golden tests on DuckDB |
| dialect.lint | dialect_lint | Check SQL against your platform's lint rules |
| dialect.transpile | dialect_transpile | Translate SQL into your platform's dialect |
| dashboard.publish | dashboard_publish | Publish a dashboard as a link; needs sign-in |
Data handling
Data handling
What your tool's model sees.
Your editor or coding agent sends the tool results to its own model provider, under its own terms. Tool results can include schemas, query results and sample values.
Point it at tables you are comfortable sharing that way. Emolysis's own steps work as the security page describes: platform credentials in your machine's credential store, deployed pipelines on your platform, and a dashboard leaving your machine only when you publish it.
What leaves your machine lists every case.
Read next
Questions
MCP server questions.
Answers about the MCP server. More in the FAQ.
Can I use Emolysis from my editor or coding agent?
Not yet: nothing is released. Emolysis includes an MCP server, emo mcp, so an editor or coding agent that supports the Model Context Protocol can use the same commands as the desktop app, with one configuration entry.
Does the MCP server need an account?
Yes. Every use of Emolysis needs an Emolysis account, local files included; the Free plan is one. Sign in once with emo login, or confirm the short code a tool returns in the browser. Signed in, the server works on local files, CSV and Parquet, on DuckDB alone, with no platform connected.
Does the MCP server open a network port?
No. It speaks MCP over standard input and output. Your editor or coding agent starts it as a local process, and nothing listens on a network port.
What does the model behind my coding agent see?
Your coding agent sends tool results to its own model provider, under its own terms. Tool results can include schemas, query results and sample values, so point the agent at tables you are comfortable sharing that way, such as a development workspace.
Which editors and coding agents does it work with?
It is built for any editor or coding agent that supports MCP and has not yet been verified with one. The configuration entry is the same idea everywhere, but the file and format depend on the tool, so check its documentation. We do not name tools on this site.
What are the MCP tool names?
Each engine command, except the machine-token commands, becomes one tool, named after its command id with the dot replaced by an underscore: query.run becomes query_run and template.render becomes template_render. Calls also accept the dotted id.
Nothing is released yet
Help shape the MCP server.
Early access is by invitation, starting with data engineering teams on Databricks.