Skip to content

MCP Server for AI Integration

DeltaFi includes a built-in Model Context Protocol (MCP) server that enables AI assistants to interact with your DeltaFi system. This allows AI tools like Claude, ChatGPT, Cursor, and others to query system status, manage flows, debug issues, and even generate new plugins.

Overview

The MCP server exposes DeltaFi capabilities as tools that AI assistants can invoke. Instead of manually running CLI commands or navigating the UI, you can describe what you want in natural language and let an AI assistant handle the details.

Example interactions:

  • "Show me all flows that are currently stopped"
  • "What errors occurred in the last hour?"
  • "Resume all errored DeltaFiles in the passthrough-transform flow"
  • "Create a new Java plugin called data-normalizer with a transform action"
  • "Why is the s3-egress data sink invalid?"

Quick Start

Starting the MCP Server

bash
deltafi mcp

This starts an MCP server on stdio, which is the standard transport for local AI tool integration.

Configuring Claude Code

For Claude Code integration, create a .mcp.json file in your project root:

json
{
  "mcpServers": {
    "deltafi": {
      "type": "stdio",
      "command": "deltafi",
      "args": ["mcp"]
    }
  }
}

Claude Code automatically discovers this file and makes DeltaFi tools available in your conversations.

Configuring Other AI Tools

The .mcp.json format is supported by multiple AI tools with slight path variations:

ToolProject-level ConfigGlobal Config
Claude Code.mcp.json~/.claude/mcp.json
Cursor.cursor/mcp.json~/.cursor/mcp.json
JetBrains AI.junie/mcp/mcp.json~/.junie/mcp/mcp.json

Available Tool Groups

Tools are organized into groups. You can enable specific groups using the --tags flag:

bash
# Enable all tools (default)
deltafi mcp

# Enable specific tool groups
deltafi mcp --tags debug,flows

# Available tags: debug, operations, flows, ingest, ingress, plugins, admin, metrics,
# testing, auto_resume, delete_policies, events, annotations, generate

Debug Tools

Query and inspect DeltaFiles for debugging and troubleshooting.

ToolDescription
get_deltafileGet detailed information about a DeltaFile by DID
search_deltafilesSearch DeltaFiles with filters (stage, flow, time range, etc.)
get_error_summaryGet summary of errors grouped by flow or message
count_errorsCount unacknowledged errors
get_annotation_keysList all annotation keys used across DeltaFiles
export_configExport system configuration as YAML

Example: "Search for all errored DeltaFiles from the last 2 hours in the passthrough flow"

Operations Tools

List, search, resume, acknowledge, and replay errored DeltaFiles.

ToolDescription
list_errorsList DeltaFiles in ERROR state with optional filters
search_errored_deltafilesSearch errored DeltaFiles with flow/action detail
resume_errored_deltafilesResume errored DeltaFiles matching a filter
acknowledge_errored_deltafilesAcknowledge errors with a reason
replay_errored_deltafilesReplay errored DeltaFiles (re-ingest original data)
replay_and_acknowledge_errored_deltafilesReplay and acknowledge in one operation

Example: "Resume all errored DeltaFiles in the xml-transform flow from the last hour"

Flows Tools

Manage flows, topics, and flow configurations.

ToolDescription
list_flowsList all flows with status
get_flowGet detailed flow configuration (runtime state)
get_flow_planGet a flow's plan (the load_flow input, placeholders intact, no runtime state)
start_flowStart a stopped or paused flow
stop_flowStop a running flow
pause_flowPause a flow (completes in-flight, stops accepting new data)
list_topicsList all pub/sub topics with publishers and subscribers
get_action_descriptorsList available action types from plugins
get_action_schemaGet parameter schema for an action type
enable_test_modeEnable test mode on a flow
disable_test_modeDisable test mode
load_flowCreate or update a flow from JSON
validate_flowValidate flow configuration and action parameters
delete_flowDelete a system flow by name and type (stop it first; plugin flows are removed with their plugin)
export_system_plansExport all system flow plans as an import_system_plans-compatible payload
import_system_plansBulk import a full set of flow plans (pair with export_system_plans for migration)

Example: "Show me why the s3-egress data sink is invalid"

Ingest Tools

Manage data sources and ingestion settings.

ToolDescription
list_data_sourcesList all data sources (REST, timed, on-error)
get_data_sourceGet data source details
get_timed_source_statusGet schedule and status for timed sources
delete_data_sourceDelete a data source
set_timed_source_scheduleUpdate cron schedule for timed sources

Example: "Change the cron schedule for my-timed-source to run every 10 minutes"

Plugins Tools

Manage plugin installation and lifecycle.

ToolDescription
list_pluginsList installed plugins with status
get_plugin_detailsGet plugin actions, variables, and configuration
install_pluginInstall a plugin from image (optionally wait for completion)
uninstall_pluginRemove a plugin
enable_pluginEnable a disabled plugin
disable_pluginDisable a plugin without removing it
retry_plugin_installRetry a failed installation
rollback_pluginRollback a failed upgrade to the previous version

Example: "Install the deltafi/deltafi-stix plugin version 2.0 and wait for it to complete"

Admin Tools

System administration, configuration, snapshots, and lookup tables.

ToolDescription
get_system_propertiesGet system configuration
update_system_propertiesUpdate one or more system properties (set a value to null to clear it)
get_status_reportAggregated health summary (status, error count, queue depths, CPU/memory/disk, version)
list_snapshotsList system snapshots
get_snapshotGet snapshot details
create_snapshotCreate a system snapshot
delete_snapshotDelete a snapshot by id
restore_snapshotReset the system to the state captured in a snapshot (optional hard_reset)
import_snapshotImport a snapshot from JSON, optionally resetting the system after import
list_delete_policiesList content deletion policies
get_ssl_infoGet SSL/TLS configuration
list_lookup_tablesList all lookup tables
get_lookup_tableGet lookup table schema and metadata
query_lookup_tableQuery rows from a lookup table with filters and pagination
create_lookup_tableCreate a new lookup table
delete_lookup_tableDelete a lookup table
upsert_lookup_table_rowsInsert or update rows in a lookup table

Example: "Create a snapshot, raise the requeue interval to 60 seconds, and report the new status"

Metrics Tools

Monitor system health, performance, and time-series data.

ToolDescription
get_system_statusGet overall system health
get_versionGet DeltaFi version info
get_deltafile_statsGet DeltaFile processing statistics
list_running_flowsList currently running flows
get_node_metricsGet node resource usage (CPU, memory, disk)
list_available_metricsList predefined metric keys for time-series queries
query_metricsQuery time-series metrics (ingestion rates, errors, queue depths, etc.)
query_custom_metricsExecute custom MetricsQL/PromQL queries

Example: "Show me the ingestion rate by data source over the last 6 hours"

Ingress Tools

Send data into DeltaFi from the MCP server.

ToolDescription
ingress_fileIngress a file from the local filesystem. Absolute, relative, and ~-prefixed paths are all accepted; the file is read by the host running the MCP server.
ingress_contentIngress inline content (text or base64-encoded bytes) into a named data source

Example: "Ingress ~/samples/order-42.json into the orders-rest data source with content type application/json"

Testing Tools

Manage integration tests and inspect their results.

ToolDescription
list_integration_testsList configured integration tests
get_integration_testGet a single integration test definition
load_integration_testLoad (create or update) an integration test from inline config_yaml or a YAML file at config_path
start_integration_testStart an integration test by name and return the run id
remove_integration_testDelete an integration test definition
get_test_resultsList all integration test run results
get_test_resultGet a single integration test result by id
remove_test_resultDelete a recorded integration test result

Example: "Start the smoke-test integration test and tell me when it finishes"

Auto-Resume Tools

Configure and exercise the automatic error-recovery system.

ToolDescription
list_resume_policiesList all resume policies
get_resume_policyGet a single resume policy by id
load_resume_policiesLoad a batch of resume policies (optional replace_all to swap the full set)
update_resume_policyUpdate an existing resume policy by id
remove_resume_policyDelete a resume policy by id
toggle_resume_policyEnable or disable a resume policy
apply_resume_policiesApply named policies to any matching errored DeltaFiles
resume_policy_dry_runEvaluate a policy against existing errors without applying it

Each policy expects name, maxAttempts, and a backOff object (delay required; maxDelay, multiplier, random optional). Optional scoping fields: errorSubstring, dataSource, action, priority, enabled.

Example: "Dry-run a resume policy that retries 503 errors three times with a one-minute back-off"

Delete Policy Tools

Manage timed delete policies for DeltaFile retention.

ToolDescription
load_timed_delete_policyCreate or update a single timed delete policy
import_delete_policiesBulk import (optional replace_all to swap the full set; an empty set clears all policies)
remove_delete_policyDelete a policy by id
toggle_delete_policyEnable or disable a policy
export_delete_policiesExport all delete policies in a form suitable for re-import

Each policy requires name, enabled, deleteMetadata, and at least one of afterCreate or afterComplete (ISO-8601 duration strings such as PT24H or P7D). Optional flow and minBytes narrow the scope.

Example: "Import a delete policy that purges files older than seven days in the bulk-ingest flow"

Events Tools

Read and write the DeltaFi event log over the REST API.

ToolDescription
list_eventsList events with optional filters and paging, ordered newest first
list_events_with_countSame as list_events but includes total-count metadata for paging UIs
get_eventGet a single event by id
create_eventCreate an event (defaults: source MCP, severity info)
acknowledge_eventSet or clear the acknowledged flag on an event
delete_eventDelete an event from the event log

Supported filters keys: id, severity, summary, content, source, acknowledged, notification, start, and end.

Example: "Record an info event summarizing the rollout, then list all unacknowledged warnings from the last six hours"

Annotations Tools

Add or inspect DeltaFile annotations.

ToolDescription
annotate_deltafileAdd one or more key/value annotations to a DeltaFile. Set allow_overwrites to replace existing values.

Annotation values are coerced to strings; pass null to send an empty value. get_annotation_keys (in the debug group) lists every key already in use across the system.

Example: "Annotate DeltaFile <did> with reviewed=true and tier=gold"

Plugin Generation Tools

Scaffold new plugins, add actions and suppliers to existing ones, and refresh an existing plugin's scaffolding to the latest templates. These tools wrap the same generators used by deltafi plugin generate and write files into the configured repoPath.

ToolDescription
generate_pluginCreate a new Java, Python, or Go plugin in the repos directory. Go plugins require a module path.
generate_plugin_actionAdd a new action to an existing plugin. Language is auto-detected. Supported action types: TransformAction (default), EgressAction, TimedIngressAction, JoiningTransformAction.
generate_plugin_supplierAdd a lookup table supplier to an existing Go plugin.
update_plugin_scaffoldingRefresh an existing plugin's scaffolding (build files, Dockerfile, Makefile, flow files, README) to the current templates. Pass dry_run=true to preview; pass include_source=true to also refresh user-owned source files.

For generate_plugin_action, generate_plugin_supplier, and update_plugin_scaffolding, the plugin argument can be either a name (resolved against repoPath in the development config) or an absolute path to a plugin directory.

Example: "Generate a new Go plugin called metrics-collector with module github.com/acme/metrics-collector, then add a TimedIngressAction called PollPrometheus."

Use Cases

Debugging Data Flow Issues

When data isn't flowing as expected, an AI assistant can help investigate:

User: "Data from the rest-ingest source isn't reaching the s3-egress sink"

AI Assistant uses:
1. list_flows - Check if all flows in the path are running
2. list_topics - Verify topic subscriptions are correct
3. search_deltafiles - Find recent DeltaFiles and check their stage
4. get_deltafile - Inspect a specific DeltaFile's action history
5. get_error_summary - Check for errors in the pipeline

Bulk Error Recovery

After fixing an upstream issue, recover affected DeltaFiles:

User: "The external API was down for an hour. Resume all the failures."

AI Assistant uses:
1. get_error_summary - Identify affected flows and error counts
2. resume_errored_deltafiles - Resume errors with appropriate filters
3. search_deltafiles - Verify DeltaFiles are processing

Flow Configuration

Create and configure new data flows:

User: "Set up a transform flow that subscribes to raw-data and publishes to processed-data"

AI Assistant uses:
1. get_action_descriptors - Find available transform actions
2. get_action_schema - Get parameter requirements
3. load_flow - Create the transform flow configuration
4. validate_flow - Check for configuration errors
5. start_flow - Start the new flow

The load_flow tool takes a config object that must include:

  • name: Flow name
  • type: Flow type (TRANSFORM, REST_DATA_SOURCE, TIMED_DATA_SOURCE, ON_ERROR_DATA_SOURCE, DATA_SINK)

Example transform flow config:

json
{
  "name": "my-transform",
  "type": "TRANSFORM",
  "description": "Transforms data from raw to processed",
  "subscribe": [{"topic": "raw-data"}],
  "transformActions": [
    {
      "name": "ProcessData",
      "type": "org.deltafi.core.action.delay.Delay",
      "parameters": {"minDelayMS": 0, "maxDelayMS": 0}
    }
  ],
  "publish": {
    "matchingPolicy": "FIRST_MATCHING",
    "defaultRule": {"defaultBehavior": "ERROR"},
    "rules": [{"topic": "processed-data"}]
  }
}

Use get_flow_plan to see an example of an existing flow's configuration; its output decodes straight back into load_flow. (get_flow returns runtime state that load_flow rejects.)

System Health Monitoring

Quick system health checks:

User: "Is the system healthy? Any issues I should know about?"

AI Assistant uses:
1. get_system_status - Overall health
2. list_flows - Check for stopped/invalid flows
3. query_metrics - Check queue depths and ingestion rates
4. get_error_summary - Recent error trends

Security Considerations

The MCP server inherits authentication from the DeltaFi CLI configuration (~/.deltafi/config.yaml). Ensure:

  1. Access Control: Only authorized users should have CLI access to systems with sensitive data
  2. Network Security: The MCP server uses stdio transport (local only) by default
  3. Audit Trail: DeltaFi API mutations are subject to the standard DeltaFi audit mechanisms. Local filesystem reads and writes, generated files, and Git operations performed by MCP tools are not recorded in the DeltaFi audit log.
  4. Host File Access: ingress_file and load_integration_test can read any file accessible to the user running the MCP server
  5. Host File Changes: Plugin generation tools create or modify local directories; action, supplier, and scaffolding tools accept absolute plugin paths

Only connect trusted MCP clients and review filesystem-related tool calls before approval. Run the server as a user whose filesystem permissions are limited to the files and development repositories the client should access.

Troubleshooting

MCP Server Won't Start

Ensure DeltaFi is running:

bash
deltafi status

The MCP server requires a running DeltaFi instance to connect to.

Tools Not Appearing in AI Assistant

  1. Verify the .mcp.json file is in the correct location
  2. Restart your AI tool to pick up configuration changes
  3. Check that deltafi is in your PATH

Tool Invocations Failing

Check DeltaFi connectivity:

bash
deltafi status
deltafi versions

If these commands fail, the MCP server will also fail to execute tools.

Further Reading

Contact US