Model Context Protocol

Introduction to MCP

How Datafuse's MCP runtime type works today, and what is not yet implemented.

The Model Context Protocol (MCP) is an open standard for connecting LLM clients to external tools and data sources. Datafuse supports mcp as one of its integration runtime types (alongside rest, database, and graphql), so you can register an MCP server's connection details as a Datafuse integration.


What Datafuse Does Today

When you create an integration with runtime_type: mcp, Datafuse stores the server's connection metadata (for example a command/args pair for a local stdio server) on the integration record and exposes a single discovery tool, mcp_list_tools, through the normal resolve-tools / invoke routes described in the client overview. Invoking mcp_list_tools is meant to enumerate the target MCP server's tools; it does not yet execute arbitrary tools on that server through Datafuse.

yaml
key: mcp-example
title: MCP Example
description: An MCP integration definition
runtime:
  type: mcp
mcp:
  command: npx
  args: ["-y", "@modelcontextprotocol/server-everything"]

Registering this via POST /api/v1/integrations (see Custom Integrations) creates an integration you can list and resolve tools for, exactly like a REST integration.


What Is Not Implemented Yet

The following capabilities are not currently built — do not rely on them:

  • A hosted process supervisor that keeps stdio/SSE MCP server processes alive, auto-heals crashes, or exposes them over authenticated HTTPS/SSE.
  • A published @datafuse/mcp-bridge npm package for wiring Claude Desktop, Cursor, or other MCP clients directly to Datafuse.
  • A "Single Toolkit MCP Mode" that compiles an entire provider into a standalone, externally-connectable MCP server.
  • Per-tool execution proxying into the target MCP server beyond the mcp_list_tools discovery call.

If you need a working MCP bridge today, run the target MCP server yourself and connect your client to it directly; use Datafuse for the providers whose actions are already implemented as rest, database, or graphql runtimes.


Next Steps