Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

com.dpf-it/mcp-server

REMOTE · API.DPF-IT.COM · SCANNED SEP 20

AI-powered data integration platform. Onboard users and run DPF data workflows.

Available components

+3 this week 89 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability62
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6874 tokens (~381/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 95% of tool parameters carry a description.Partial
  • Structured output schemas are declared (89% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the com.dpf-it/mcp-server server?

com.dpf-it/mcp-server is a hosted endpoint at https://api.dpf-it.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.dpf-it.com

# add to Claude Code
claude mcp add --transport http com-dpf-it-mcp-server 'https://api.dpf-it.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-dpf-it-mcp-server": {
      "url": "https://api.dpf-it.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-dpf-it-mcp-server": {
      "type": "http",
      "url": "https://api.dpf-it.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-dpf-it-mcp-server]
url = "https://api.dpf-it.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-dpf-it-mcp-server": {
      "type": "remote",
      "url": "https://api.dpf-it.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-dpf-it-mcp-server --url 'https://api.dpf-it.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-dpf-it-mcp-server:
    url: "https://api.dpf-it.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-dpf-it-mcp-server": {
      "Transport": "http",
      "Url": "https://api.dpf-it.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-dpf-it-mcp-server -t streamable-http -u 'https://api.dpf-it.com/mcp'
// mcp.json
{
  "mcpServers": {
    "com-dpf-it-mcp-server": {
      "type": "http",
      "url": "https://api.dpf-it.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 19 Sept 26 +1
    • Stability: 0.97 → pass security
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 18 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 17 Sept 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 16 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 15 Sept 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 14 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 13 Sept 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://api.dpf-it.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.dpf-it.com CN=Amazon RSA 2048 M04,O=Amazon,C=US 23 Jun 2026 6 Jan 2027 RSA 2048 SHA256-RSA 931fa07a4c589aff9ce6520f841b489
SANs: api.dpf-it.com
CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 773124f2a952e3ed18a58bdb85d1bc0ce5f27
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.dpf-it.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
dpf-it.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload
content-security-policy default-src 'none'; frame-ancestors 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy geolocation=(), microphone=(), camera=(), payment=()

Protected resource metadata

Retrieved No
Problem no_resource_metadata

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.dpf-it.com/mcp Verified 200
http (plaintext) http://api.dpf-it.com/mcp HTTPS enforced 301 https://api.dpf-it.com/mcp
MCP tools · 18 exposed · ~6,874 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
call_dpf_api ~583

Escape hatch for DPF capabilities that don't have a dedicated tool yet. ALWAYS prefer a dedicated tool when one exists — get_status, list_data, submit_query, delete_data_spec, onboard_data_source, update_data_spec, run_data_job, manage_connection, manage_trigger, setup_scheduled_pull, list_my_workspaces, create_workspace — and reach for this only when none of those fit (e.g. "how many credits do I have?" -> path "/auth/billing", action "get-balance"; a brand-new action added to the API since this server's tools were last updated). Every DPF endpoint is POST <path> with a JSON body of { action, ...fields }, authenticated with your OAuth session automatically. Pass workspaceId explicitly for workspace-scoped actions (data-specs, connections, job-triggers, and under "/workspaces": get-workspace, list-queries, list-bytes-accessed, list-storage, list-processed-files, list-trigger-runs) — omit it entirely for account-level actions that reject one (under "/workspaces": create, get-workspaces, grant-permission, revoke-permission, update/delete-workspace; under "/auth/billing": get-balance only — billing mutations such as purchase-credits, modify-subscription, manage-payment, and create-customer are NOT available via MCP; direct the user to https://dpf-it.com/workspace.html#credits for all credit and subscription management). If unsure of an action's exact fields, read the "dpf-openapi-spec" resource (dpf://openapi/spec.yaml) rather than guessing. Exception: the raw Iceberg REST proxy under "/iceberg/v1/..." (e.g. to read or set a table's "dpf.primary-keys" property via a commit-table request) does not use the action convention at all — give action any placeholder string (it's ignored) and put the real Iceberg REST commit body, e.g. {"requirements":[],"updates":[{"action":"set-properties","updates":{"dpf.primary-keys":"col_a,col_b"}}]}, in params. This tool only issues POST, so Iceberg's GET-based reads (loadTable, listTables) aren't reachable this way. Returns the raw resp…

NameTypeReqDescription
actionstringyesThe "action" field this endpoint routes on, e.g. "get-balance".
paramsobjectAdditional action-specific fields to merge into the request body alongside action/workspaceId.
pathstringyesAPI path, e.g. "/auth/billing" (leading slash, no query string).
workspaceIdstringInclude for workspace-scoped actions. Omit entirely for account-level actions.

Structured output declared, but exposes no named fields.

No examples provided.

contact ~94

Send a message to the DPF team — request a demo, ask about licensing, report an issue, or request a feature. No authentication required. Always ask the user for their email if they have not already given it in this conversation.

NameTypeReqDescription
emailstringyesThe sender's email address, so DPF can reply.
messagestringyes
namestring
reasonstringyes

No output schema declared.

No examples provided.

create_workspace ~48

Create a new workspace, owned by the authenticated user. Use this if list_my_workspaces returns none.

NameTypeReqDescription
descriptionstringOptional workspace description.
namestringyesWorkspace name
NameTypeReqDescription
createdAtstringyes
createdBystringyes
descriptionstring
namestringyes
permissionstringyes
permissionsarrayyes
userPermissionstringyes
workspaceIdstringyes

No examples provided.

delete_data_spec ~58

Permanently delete a data spec and its associated configuration.

NameTypeReqDescription
specNamestringyesName of the data spec to delete.
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
alreadyDeletedboolean
deletedS3Datanumber
deletedS3Specsnumber
deletedTargetTablesnumber
errorsarray
messagestringyes
retainedJobsnumber
specIdstringyes
specNamestringyes

No examples provided.

finish_data_job ~136

Call after uploading the file(s) returned by run_data_job — starts processing and waits until the job completes or fails. If it returns before that (timedOut: true), do NOT call this tool again just to keep checking — that re-attempts starting the job. Poll with get_status (jobId) instead until it reaches a terminal status.

NameTypeReqDescription
jobIdstringyesjobId returned by run_data_job.
specNamestringyesName of the data spec this job belongs to.
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
creditsChargednumber
currentLambdastring
durationMsnumber
endTimestring
errorstring
errorDetailsstring
jobIdstring
jobSizestring
logLocationstring
messagestringyes
metricsobject
progressnumber
specIdstring
startTimestring
statusstring"processing" | "completed" | "failed"
statusMessagestring
timedOutboolean
workspaceIdstring

No examples provided.

finish_data_source_onboarding ~169

Call after uploading the file(s) returned by onboard_data_source — kicks off AI analysis and waits until the spec reaches "ready" or "failed". If it returns before that (timedOut: true), do NOT call this tool again just to keep checking — that re-attempts starting analysis. Poll with get_status (specId) instead until it reaches a terminal status.

NameTypeReqDescription
loadSampleDatabooleanWhether to load the sample file and trigger the data-load job once analysis finishes (default true).
specIdstringyesspecId returned by onboard_data_source.
specNamestringyesName of the data spec being onboarded.
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
analysisDurationMsnumber|null
analysisEndTimestring|null
analysisStartTimestring|null
errorstring|null
errorDetailsstring|null
hasTransformationConfigboolean
lastJobIdstring|null
messagestringyes
progressnumber
specIdstring
statusstring"processing" | "ready" | "failed"
statusMessagestring
timedOutboolean
workspaceIdstring

No examples provided.

finish_data_spec_update ~182

Call after uploading the file(s) returned by update_data_spec — kicks off AI analysis and waits until the spec reaches "ready" or "failed". If it returns before that (timedOut: true), do NOT call this tool again just to keep checking — that re-attempts starting analysis. Poll with get_status (specId) instead until it reaches a terminal status.

NameTypeReqDescription
loadSampleDatabooleanWhether analysis should also trigger the data-load job (default true).
runAnalysisbooleanDefault true — set false to skip analysis and just confirm the upload.
specIdstringyesspecId returned by update_data_spec.
specNamestringyesName of the data spec being updated.
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
analysisDurationMsnumber|null
analysisEndTimestring|null
analysisStartTimestring|null
errorstring|null
errorDetailsstring|null
hasTransformationConfigboolean
lastJobIdstring|null
messagestringyes
progressnumber
specIdstring
statusstring"processing" | "ready" | "failed"
statusMessagestring
timedOutboolean
workspaceIdstring

No examples provided.

get_status ~192

Poll the status of either a data spec's own process (schema inference + code generation, run by start-analysis — pass specId, reaches "ready" or "failed") or a data-load job (pass jobId, reaches "complete" or "failed"). Pass exactly one of specId or jobId. Right after create-spec/update-spec + start-analysis, poll by specId; once that reaches "ready", its response's lastJobId (if present) points at the data-load job — poll that separately by jobId for load progress.

NameTypeReqDescription
jobIdstringPoll a data-load job's status. Pass exactly one of specId or jobId.
specIdstringPoll a data spec's analysis status. Pass exactly one of specId or jobId.
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
analysisDurationMsnumber|null
analysisEndTimestring|null
analysisStartTimestring|null
creditsChargednumber
currentLambdastring
durationMsnumber
endTimestring
errorstring|null
errorDetailsstring|null
hasTransformationConfigboolean
jobIdstring
jobSizestring
lastJobIdstring|nullspec poll only: the data-load job triggered once analysis reaches "ready".
logLocationstring
metricsobjectPresent once a job completes: recordsRead, recordsWritten, filesProcessed, etc.
progressnumber
specIdstring
startTimestring
statusstringe.g. "processing" | "ready" | "failed" for a spec; "processing" | "completed" | "failed" for a job
statusMessagestring
workspaceIdstring

No examples provided.

list_data ~270

List either the data specs (parsing + mapping rule sets, resource: "specs") or the data processing jobs (executions of a spec, resource: "jobs") defined in a workspace. Each spec includes its specId and current status — poll a specific one with get_status. Both resources are paginated (default 25/page, max 100, newest first); pass the returned nextCursor to fetch more. This is NOT a table listing — specs describe configured pipelines (parsing/mapping rules), not the live set of Iceberg tables in the workspace. Multiple specs can target the same table (e.g. one spec creates it, another merges more data into it), and specs can be deleted or fail without the underlying table being dropped. For "what tables exist in my workspace" or any question about actual current data, use submit_query with `SHOW TABLES` instead of inferring an answer from specs.

NameTypeReqDescription
cursorstringOpaque `nextCursor` from a prior page (omit for the first page).
pageSizeintegerRecords per page (default 25).
resourcestringyesWhich kind of resource to list
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
countnumberyesNumber of items in this page, not the workspace total
jobsarrayPresent when resource is "jobs"
nextCursorstring|nullOpaque cursor for the next page; null when exhausted
pageSizenumber
specsarrayPresent when resource is "specs"

No examples provided.

list_my_workspaces ~26

List every workspace the authenticated user has access to, including their permission on each.

Input schema present but exposes no named parameters.

NameTypeReqDescription
countnumberyes
workspacesarrayyes

No examples provided.

manage_account ~314

Returns instructions for creating a DPF account, verifying its email, resending the verification code, or resetting a forgotten password — it never performs these itself and never asks for a password. A password typed into this chat would sit in the conversation transcript, so every action instead returns the DPF website's own form, or a curl command that reads the password from a shell variable the user sets themselves in their own terminal. Hand the command to the user to run — do not run it yourself even if you have shell access, since composing the export line would require seeing the password. action "register": requires email, firstName, lastName, and termsAccepted: true (only after the user has explicitly agreed to the DPF Terms of Service and Privacy Policy in this conversation). action "verify": confirm the 6-digit code DPF emailed after registration (requires otp). action "resend": re-send that code if it never arrived. action "forgot-password": request a password-reset code (requires email). action "reset-password": submit that code and set a new password (requires otp).

NameTypeReqDescription
actionstringyes
emailstringyes
firstNamestringaction "register" only
lastNamestringaction "register" only
otpstringaction "verify" and "reset-password" only. The 6-digit code from the email DPF sent.
termsAcceptedbooleanaction "register" only. Must be true.

No output schema declared.

No examples provided.

manage_connection ~324

Create, list, test, or delete a workspace connection to an external data source. Two types are supported: "sftp" and "aws_s3". For sftp, create generates a keypair and returns the public key — it must be installed in the remote server's authorized_keys before test (or a trigger using this connection) will succeed. For aws_s3, create generates an ExternalId and returns a trustPolicy plus dpfPrincipalArn — the customer must create (or update) the IAM role at roleArn with that trust policy and a permissions policy granting the S3 access DPF needs, before test will succeed. Either type must pass test before it can be used in a trigger. For a first-time "pull files from this server/bucket on a schedule" request, prefer setup_scheduled_pull, which chains create + test + create-trigger for you.

NameTypeReqDescription
actionstringyesWhich operation to perform.
connectionIdstringExisting connection to test or delete. Required for test/delete.
hostnamestringsftp only. Remote server hostname. Required for create.
roleArnstringaws_s3 only. The IAM role the customer will create/update. Required for create.
typestringConnection type. Required for create; defaults to "sftp".
usernamestringsftp only. Remote username. Optional for create; defaults to "sftpuser".
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
accountstringaction "test", type "aws_s3" only
assumedRoleArnstringaction "test", type "aws_s3" only
connectionIdstring
connectionsarrayaction "list" only
countnumberaction "list" only
createdAtnumber
createdBystring
dpfPrincipalArnstring
entryCountnumberaction "test", type "sftp" only
externalIdstring
fileCountnumberaction "test", type "sftp" only
hostnamestring
lastTestStatusstring
lastTestedAtnumber
messagestring
publicKeystring
roleArnstring
successbooleanaction "test" only
trustPolicyobject
typestring
updatedAtnumber
usernamestring
workspaceIdstring

No examples provided.

manage_trigger ~1,209

Create, list, update, delete, or fire a workspace job trigger. Four types: - "sftp"/"aws_s3": pulls files from a connection (sftp: remote server; aws_s3: S3 bucket/prefix) into an already-analyzed data spec on a schedule (hourly/daily/monthly, UTC). Type must match the connection's type; aws_s3 also requires s3Bucket (s3Prefix optional). Natural-language preRules (which files to pick up) and postRules (what to do after upload) are compiled into executable code server-side — never pass raw code. The connection must already exist and have passed test (see manage_connection). For a first-time "set up a daily/scheduled pull" request, prefer setup_scheduled_pull, which sets up the connection and trigger together. - "spec_success": fires a spec automatically whenever a DIFFERENT spec's job completes successfully (set upstreamSpecName to that spec). No connection/frequency. Use this when the request ties the run to another job finishing (e.g. "run this after the customers load finishes"). - "schedule": fires a spec directly on a plain frequency (hourly/daily/monthly, UTC), no connection and no upstream spec. Use this when the request is time-based with no dependency (e.g. "run this every morning"). IMPORTANT: "spec_success" and "schedule" triggers can only target a table-source (sourceType: "tables") or compaction (sourceType: "compaction") spec (see onboard_data_source) — they have no file to load, only a generated query to re-run or a set of tables to compact. If asked to set up a scheduled/recurring job that reads from an already-loaded table (e.g. "keep a daily summary of the orders table up to date"), create that as an onboard_data_source sourceType "tables" spec first, THEN create the trigger here. Same for a recurring compaction — create the sourceType "compaction" spec first. Prefer "spec_success" when the user's phrasing implies "after X loads/finishes"; prefer "schedule" when they just want a cadence with no stated dependency; ask if genuinely ambiguous. For sf…

NameTypeReqDescription
actionstringyesWhich operation to perform.
connectionIdstringsftp/aws_s3 only. Connection to pull from. Required for create when type is "sftp"/"aws_s3". Also usable as a run-history filter.
cursorstringrun-history: opaque `nextCursor` from a prior page (omit for the first page).
dedupebooleansftp/aws_s3 only. Required for create — ask the user rather than assuming a value; do not default it silently. Whether repeat pulls should skip files already loaded into this spec, matched by file na…
enabledbooleanWhether the trigger is active. Defaults to true on create.
endTimestringrun-history: ISO 8601 upper bound (inclusive) on when the run started.
frequencyobjectRequired for create when type is "sftp", "aws_s3", or "schedule"; optional on update to change the schedule. Not applicable to spec_success.
pageSizeintegerrun-history: records per page (default 25).
postRulesstringsftp/aws_s3 only. Natural language: what to do after a file loads (e.g. "rename with .done suffix").
preRulesstringsftp/aws_s3 only. Natural language: which files to pick up (e.g. "only *.csv under /outbound").
s3Bucketstringaws_s3 only. Bucket to poll. Required for create when type is "aws_s3", or to change it on update. Each run lists at most 5000 objects from the bucket/prefix (oldest key first) — past that, new files…
s3Prefixstringaws_s3 only. Optional key prefix; defaults to the whole bucket.
specIdstringrun-history: filter to runs of triggers feeding this spec.
specNamestringThe spec this trigger fires. Required for create.
startTimestringrun-history: ISO 8601 lower bound (inclusive) on when the run started.
triggerIdstringExisting trigger. Required for update/delete/run-now/clear-processed-files.
typestringTrigger type. Optional for create (defaults to "sftp"). For sftp/aws_s3 must match the connection's type.
upstreamSpecNamestringspec_success only. The spec whose successful job completion fires this trigger. Required for create when type is "spec_success".
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
connectionIdstring
countnumberaction "list" only
createdAtnumber
createdBystring
dedupeboolean
deletednumberaction "clear-processed-files" only
enabledboolean
frequencyobject
lastJobIdstring
lastRunAtnumber
lastRunStatusstring
messagestring
nextCursorstring|nullaction "run-history" only
pageSizenumberaction "run-history" only
postRulesstring
preRulesstring
runsarrayaction "run-history" only
s3Bucketstring
s3Prefixstring
specIdstring
specNamestring
triggerIdstring
triggersarrayaction "list" only
typestring
updatedAtnumber
upstreamSpecIdstringtype "spec_success" only
upstreamSpecNamestringtype "spec_success" only
warningsarrayaction "create", type "aws_s3" only. Advisory notes, e.g. the 5000-object S3 listing cap — relay to the user.
workspaceIdstring

No examples provided.

onboard_data_source ~1,483

First step of setting up a new data integration: creates a data spec. By default (sourceType "file") this returns presigned upload URL(s) for the sample file (and optional format/target-schema file) — upload the file(s) per the returned instructions, then call finish_data_source_onboarding with the returned specId to kick off AI analysis and wait for it to complete. Use sourceType "tables" instead when the request is to derive/aggregate data that is ALREADY loaded into workspace tables — e.g. "build me a daily summary of the customers table", or "set up a job that reads from the orders table and maintains a running total" — rather than loading a new file. It generates a SQL query (INSERT or MERGE, per `merge`) via AI instead of a Python parser, run through the query engine instead of a Glue job. There are never sample/format files, but targetOption still works the same three ways as sourceType "file" (see targetOption below) — so this call returns files: [] and you can call finish_data_source_onboarding immediately UNLESS targetOption is "target-schema-file", in which case it returns one upload URL for that file, same as the file-source path. The generated SQL automatically windows itself to rows added since the spec's last successful run. sourceType "tables" ALSO requires autoRefresh — how this spec stays up to date is not optional to decide, and must not be inferred from other jobs/triggers that happen to already exist in the workspace: ask the user whether it should re-run automatically whenever a specific upstream spec finishes loading ("spec_success" — the natural choice when the request is "run this after X finishes/loads"), on a plain cron-like cadence ("schedule" — the natural choice when the request is "run this every day/hour" with no mention of depending on another job), or stay manual-only ("none" — re-run later with run_data_job). If the request already states the timing unambiguously, that answers it; otherwise ask before calling this tool. Getting t…

NameTypeReqDescription
additionalPromptstringInstructions for the AI. For sourceType "tables", describe what the query should compute from the source table(s) (e.g. "count signups per day per region"). This is stored on the spec verbatim and re…
autoRefreshstringsourceType "tables" only. Required for it — ask the user rather than assuming, and do not infer this from other jobs/triggers already in the workspace (a similar existing pipeline is not the user's a…
autoRefreshFrequencyobjectRequired when autoRefresh is "schedule".
autoRefreshUpstreamSpecNamestringRequired when autoRefresh is "spec_success". The spec whose successful job completion should re-run this one.
descriptionstringOptional description of the data spec.
expirePriorSnapshotsbooleansourceType "compaction" only, default false. When false the job commits the compacted files and changes nothing else — prior snapshots still reference the replaced files, so no storage is freed. When…
formatFileNamestringsourceType "file" only. File name of an optional format spec file.
mergebooleanUpsert instead of plain append when true (default false). For sourceType "tables": generates a MERGE statement instead of an INSERT — use true for a running aggregate/summary that updates existing ro…
sampleFileNamestringsourceType "file" only (and required for it). File name of the sample data file (e.g. "customers.csv") — used to derive content-type, not read from disk.
sourceTablesarrayNames of existing workspace tables. Required for sourceType "tables" (the tables the generated query reads from) and for sourceType "compaction" (the tables to compact).
sourceTypestringDefaults to "file" (upload a sample file). Use "tables" to query existing workspace table(s) — see sourceTables — instead of loading a new file. Use "compaction" to bin-pack the small data files of e…
specNamestringyesName for the new data spec.
targetOptionstringWhere transformed data should land — works the same for both sourceType values: "auto-infer" (default) lets the AI design the target table (for sourceType "tables", it designs the schema and the quer…
targetSchemaFileNamestringFile name of a target schema file. Required when targetOption is "target-schema-file", for either sourceType.
targetTablesarrayNames of existing workspace tables to target — exactly one entry for sourceType "tables" (the generated query has a single target), one or more for sourceType "file". Required when targetOption is "e…
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
filesarrayyes
messagestringyes
nextStepstringyesThe finish_data_source_onboarding call to make (once upload(s) are done, or immediately for sourceType "tables").
specIdstringyes
specNamestringyes
triggerIdstringsourceType "tables" only, when autoRefresh was not "none": the auto-refresh trigger created alongside the spec.

No examples provided.

run_data_job ~231

First step of processing new data files through an already-configured data spec: creates a job and returns presigned upload URL(s) for each file. Upload the file(s) per the returned instructions, then call finish_data_job with the returned jobId to start processing and wait for it to complete. Do NOT call this right after onboard_data_source/finish_data_source_onboarding or update_data_spec/finish_data_spec_update unless loadSampleData was explicitly set to false there — by default those already load and process the sample file as their own job (see the returned lastJobId), so calling run_data_job again for that same file creates a redundant second job. Only use this for files beyond the initial sample (new batches, additional files to process later).

NameTypeReqDescription
fileNamesarrayyesFile names of the data files to process (e.g. ["jan.csv", "feb.csv"])
specNamestringyesName of the already-configured data spec to process files through.
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
filesarrayyes
jobIdstringyes
messagestringyes
nextStepstringyesThe finish_data_job call to make once upload(s) are done.
specNamestringyes

No examples provided.

setup_scheduled_pull ~569

End-to-end workflow for "pull files from this SFTP server / S3 bucket on a schedule" requests: reuses a matching connection if one already exists in the workspace (same hostname/username for sftp, same roleArn for aws_s3), otherwise creates one; tests it; then creates a trigger that feeds an already-analyzed data spec (see onboard_data_source) on the given frequency. Pass hostname for an sftp pull, or roleArn (+ s3Bucket, required) for an aws_s3 pull — exactly one of the two is expected. Use this instead of calling manage_connection + manage_trigger yourself for first-time setup. If the connection test fails (e.g. the sftp public key or the aws_s3 IAM role isn't set up yet on the customer's side), no trigger is created — ask the user to finish that setup and re-run this tool, which will reuse the same connection and pick up where it left off. This is for pulling a NEW file from an external source — for "run this on a schedule/after another job" where the spec queries tables already in the workspace (sourceType "tables"), use manage_trigger with type "schedule" or "spec_success" instead; there is no connection involved.

NameTypeReqDescription
dedupebooleanRequired — ask the user rather than assuming a value; omitting it fails the call. Whether repeat pulls should skip files already loaded into this spec, matched by file name. Has real consequences: wi…
frequencyobjectyesPull schedule.
hostnamestringsftp: SFTP server hostname to pull from.
postRulesstringNatural language: what to do after a file loads (e.g. "rename with .done suffix")
preRulesstringNatural language: which files to pick up (e.g. "only *.csv under /outbound")
roleArnstringaws_s3: the IAM role the customer will create/update.
s3Bucketstringaws_s3: bucket to poll. Required when roleArn is given.
s3Prefixstringaws_s3 only. Optional key prefix; defaults to the whole bucket.
specNamestringyesAlready-analyzed data spec to load files into (see onboard_data_source)
usernamestringsftp only. Defaults to "sftpuser".
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
connectionIdstring
connectionTypestring
dedupeboolean
enabledboolean
frequencyobject
messagestringyes
s3Bucketstring
s3Prefixstring
specIdstring
specNamestring
testSucceededboolean
triggerIdstringPresent only once the connection test succeeded and a trigger was created.
warningsarrayaws_s3 only. Advisory notes about the created trigger, e.g. the 5000-object S3 listing cap.

No examples provided.

submit_query ~386

Run a SQL query against the Iceberg tables loaded into a workspace. To list the tables that actually exist in the workspace, run `SHOW TABLES` — this is the authoritative source (unlike list_data's specs, which describe pipelines, not live tables). Qualified table references (catalog/schema prefixes, e.g. information_schema.tables) are rejected; reference tables by name only. Table functions that introspect the engine itself (e.g. duckdb_functions(), duckdb_tables()) are also rejected as external-data-source access — don't try to discover available SQL functions this way. A BLOB column is very likely an HLL sketch (produced by a merge-mode table-source spec's approximate-distinct aggregate — see onboard_data_source's merge option): decode it with datasketch_hll_estimate(col), or datasketch_hll_estimate(datasketch_hll_union(12, col)) to union several rows to a coarser grain first. If the user's goal is an HTML page/dashboard built from these results (not just seeing the data here), do NOT default to embedding this result set as a static snapshot. Ask the user first: (a) a one-time static page with these results baked in, which goes stale and never changes again, or (b) a live page that logs in and queries DPF itself whenever it's opened, so it always reflects current data. If they want live/dynamic (or don't say and the data looks like it changes over time), read the dpf://examples/auth-and-query.html resource and adapt that pattern (login form, JWT cookie, fetch-based query call) instead of hand-rolling auth.

NameTypeReqDescription
sqlstringyesSQL query, e.g. SELECT * FROM customers LIMIT 10
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
executionTimeMsnumber
rowCountnumber
rowsarrayyes
schemaarrayyesColumn name -> DuckDB type

No examples provided.

update_data_spec ~600

Change an existing data spec's configuration. If no replacement file names are given, this runs synchronously (no upload needed): saves changes and — by default — re-runs AI analysis, returning the final status directly. If a replacement sample/format/target-schema file name IS given, this instead returns presigned upload URL(s); upload the file(s), then call finish_data_spec_update. Only pass the fields you want to change — omitted fields keep their current value.

NameTypeReqDescription
additionalPromptstringExtra natural-language guidance for the AI schema inference/mapping. Replaces the previously stored value when given (omit to keep it as-is), and is reused on every future re-analysis — keep it to in…
computeSizestringCompute size for analysis/processing. Omit to keep the current setting.
descriptionstringNew description for the spec. Omit to keep the current value.
formatFileNamestringsourceType "file" specs only. File name of a replacement format spec file, if replacing it.
loadSampleDatabooleanWhether re-analysis should also trigger the data-load job (default true). Only used when runAnalysis is true.
mergebooleanWhether new data should merge/upsert into existing rows rather than append. For sourceType "tables" also changes the generated SQL between MERGE and INSERT.
runAnalysisbooleanWhether to run analysis and wait for it after saving the changes (default true). Only applies to the synchronous (no-file-change) path.
sampleFileNamestringsourceType "file" specs only. File name of a replacement sample data file, if replacing it.
sourceTablesarraysourceType "tables" specs only: replacement list of source tables the generated query reads from.
specNamestringyesName of the existing data spec to update
targetOptionstringChange where transformed data lands. Omit to keep the current setting.
targetSchemaFileNamestringFile name of a replacement target schema file. Required when setting targetOption to "target-schema-file".
targetTablesarraysourceType "file" specs: new list of existing workspace tables to load into. Required when setting targetOption to "existing-tables". sourceType "tables" specs: the query's single target table name —…
workspaceIdstringWorkspace to act on. Defaults to your only workspace if you have exactly one.
NameTypeReqDescription
errorstring|null
errorDetailsstring|null
filesarrayPresent only when replacement file(s) were given — upload these, then call finish_data_spec_update.
hasTransformationConfigboolean
lastJobIdstring|null
messagestringyes
nextStepstringThe finish_data_spec_update call to make once upload(s) are done. Only present alongside files.
progressnumber
specIdstring
specNamestring
statusstring
statusMessagestring
timedOutboolean

No examples provided.

Common questions

What is the com.dpf-it/mcp-server server?

com.dpf-it/mcp-server is listed in the public MCP registry as com.dpf-it/mcp-server. AI-powered data integration platform. Onboard users and run DPF data workflows. This page covers its hosted endpoint (https://api.dpf-it.com/mcp).

Is the com.dpf-it/mcp-server server safe to use?

com.dpf-it/mcp-server scores 89 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the com.dpf-it/mcp-server server expose?

com.dpf-it/mcp-server exposes 18 tools: list_my_workspaces, create_workspace, list_data, get_status, delete_data_spec, and 13 more. Their descriptions and schemas cost roughly 6,874 tokens of context every time the server is loaded.

Does the com.dpf-it/mcp-server server require authentication?

Yes. com.dpf-it/mcp-server asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the com.dpf-it/mcp-server server still maintained?

com.dpf-it/mcp-server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.