AI-powered data integration platform. Onboard users and run DPF data workflows.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://api.dpf-it.com/mcp18 tools · 170mslist_my_workspacesList every workspace the authenticated user has access to, including their permission on each.List every workspace the authenticated user has access to, including their permission on each.
No input schema was published for this tool.
create_workspaceCreate a new workspace, owned by the authenticated user. Use this if list_my_workspaces returns none.Create a new workspace, owned by the authenticated user. Use this if list_my_workspaces returns none.
| Parameter | Type | Description |
|---|---|---|
| name* | string | Workspace name |
| description | string | Optional workspace description. |
list_dataList 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/p…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/p…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| resource* | string | Which kind of resource to list |
| pageSize | integer | Records per page (default 25). |
| cursor | string | Opaque `nextCursor` from a prior page (omit for the first page). |
get_statusPoll 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 + star…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 + star…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| specId | string | Poll a data spec's analysis status. Pass exactly one of specId or jobId. |
| jobId | string | Poll a data-load job's status. Pass exactly one of specId or jobId. |
delete_data_specprivilegedPermanently delete a data spec and its associated configuration.Permanently delete a data spec and its associated configuration.
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| specName* | string | Name of the data spec to delete. |
submit_queryRun 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 prefixe…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 prefixe…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| sql* | string | SQL query, e.g. SELECT * FROM customers LIMIT 10 |
manage_connectionCreate, 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 connectio…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 connectio…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| action* | string | Which operation to perform. |
| type | string | Connection type. Required for create; defaults to "sftp". |
| hostname | string | sftp only. Remote server hostname. Required for create. |
| username | string | sftp only. Remote username. Optional for create; defaults to "sftpuser". |
| roleArn | string | aws_s3 only. The IAM role the customer will create/update. Required for create. |
| connectionId | string | Existing connection to test or delete. Required for test/delete. |
manage_triggerCreate, 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 als…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 als…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| action* | string | Which operation to perform. |
| triggerId | string | Existing trigger. Required for update/delete/run-now/clear-processed-files. |
| specName | string | The spec this trigger fires. Required for create. |
| connectionId | string | sftp/aws_s3 only. Connection to pull from. Required for create when type is "sftp"/"aws_s3". Also usable as a run-history filter. |
| type | string | Trigger type. Optional for create (defaults to "sftp"). For sftp/aws_s3 must match the connection's type. |
| s3Bucket | string | aws_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 (… |
| s3Prefix | string | aws_s3 only. Optional key prefix; defaults to the whole bucket. |
| frequency | object | Required for create when type is "sftp", "aws_s3", or "schedule"; optional on update to change the schedule. Not applicable to spec_success. |
| upstreamSpecName | string | spec_success only. The spec whose successful job completion fires this trigger. Required for create when type is "spec_success". |
| preRules | string | sftp/aws_s3 only. Natural language: which files to pick up (e.g. "only *.csv under /outbound"). |
| postRules | string | sftp/aws_s3 only. Natural language: what to do after a file loads (e.g. "rename with .done suffix"). |
| dedupe | boolean | sftp/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 l… |
| enabled | boolean | Whether the trigger is active. Defaults to true on create. |
| specId | string | run-history: filter to runs of triggers feeding this spec. |
| pageSize | integer | run-history: records per page (default 25). |
| cursor | string | run-history: opaque `nextCursor` from a prior page (omit for the first page). |
| startTime | string | run-history: ISO 8601 lower bound (inclusive) on when the run started. |
| endTime | string | run-history: ISO 8601 upper bound (inclusive) on when the run started. |
onboard_data_sourceFirst 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…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…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| specName* | string | Name for the new data spec. |
| description | string | Optional description of the data spec. |
| sourceType | string | Defaults to "file" (upload a sample file). Use "tables" to query existing workspace table(s) — see sourceTables — instead of loading a new file. Use "compactio… |
| sourceTables | array | Names of existing workspace tables. Required for sourceType "tables" (the tables the generated query reads from) and for sourceType "compaction" (the tables to… |
| expirePriorSnapshots | boolean | sourceType "compaction" only, default false. When false the job commits the compacted files and changes nothing else — prior snapshots still reference the repl… |
| targetOption | string | Where transformed data should land — works the same for both sourceType values: "auto-infer" (default) lets the AI design the target table (for sourceType "tab… |
| targetTables | array | Names of existing workspace tables to target — exactly one entry for sourceType "tables" (the generated query has a single target), one or more for sourceType… |
| targetSchemaFileName | string | File name of a target schema file. Required when targetOption is "target-schema-file", for either sourceType. |
| sampleFileName | string | sourceType "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. |
| formatFileName | string | sourceType "file" only. File name of an optional format spec file. |
| merge | boolean | Upsert instead of plain append when true (default false). For sourceType "tables": generates a MERGE statement instead of an INSERT — use true for a running ag… |
| additionalPrompt | string | Instructions 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"). Th… |
| autoRefresh | string | sourceType "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 simil… |
| autoRefreshUpstreamSpecName | string | Required when autoRefresh is "spec_success". The spec whose successful job completion should re-run this one. |
| autoRefreshFrequency | object | Required when autoRefresh is "schedule". |
finish_data_source_onboardingCall 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 (sp…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 (sp…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| specId* | string | specId returned by onboard_data_source. |
| specName* | string | Name of the data spec being onboarded. |
| loadSampleData | boolean | Whether to load the sample file and trigger the data-load job once analysis finishes (default true). |
update_data_specChange 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…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…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| specName* | string | Name of the existing data spec to update |
| description | string | New description for the spec. Omit to keep the current value. |
| targetOption | string | Change where transformed data lands. Omit to keep the current setting. |
| targetTables | array | sourceType "file" specs: new list of existing workspace tables to load into. Required when setting targetOption to "existing-tables". sourceType "tables" specs… |
| targetSchemaFileName | string | File name of a replacement target schema file. Required when setting targetOption to "target-schema-file". |
| sampleFileName | string | sourceType "file" specs only. File name of a replacement sample data file, if replacing it. |
| formatFileName | string | sourceType "file" specs only. File name of a replacement format spec file, if replacing it. |
| sourceTables | array | sourceType "tables" specs only: replacement list of source tables the generated query reads from. |
| merge | boolean | Whether new data should merge/upsert into existing rows rather than append. For sourceType "tables" also changes the generated SQL between MERGE and INSERT. |
| computeSize | string | Compute size for analysis/processing. Omit to keep the current setting. |
| additionalPrompt | string | Extra 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… |
| loadSampleData | boolean | Whether re-analysis should also trigger the data-load job (default true). Only used when runAnalysis is true. |
| runAnalysis | boolean | Whether to run analysis and wait for it after saving the changes (default true). Only applies to the synchronous (no-file-change) path. |
finish_data_spec_updateCall 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 (specI…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 (specI…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| specId* | string | specId returned by update_data_spec. |
| specName* | string | Name of the data spec being updated. |
| runAnalysis | boolean | Default true — set false to skip analysis and just confirm the upload. |
| loadSampleData | boolean | Whether analysis should also trigger the data-load job (default true). |
run_data_jobFirst 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…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…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| specName* | string | Name of the already-configured data spec to process files through. |
| fileNames* | array | File names of the data files to process (e.g. ["jan.csv", "feb.csv"]) |
finish_data_jobCall 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…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…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| jobId* | string | jobId returned by run_data_job. |
| specName* | string | Name of the data spec this job belongs to. |
setup_scheduled_pullEnd-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 alread…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 alread…
| Parameter | Type | Description |
|---|---|---|
| workspaceId | string | Workspace to act on. Defaults to your only workspace if you have exactly one. |
| hostname | string | sftp: SFTP server hostname to pull from. |
| username | string | sftp only. Defaults to "sftpuser". |
| roleArn | string | aws_s3: the IAM role the customer will create/update. |
| s3Bucket | string | aws_s3: bucket to poll. Required when roleArn is given. |
| s3Prefix | string | aws_s3 only. Optional key prefix; defaults to the whole bucket. |
| specName* | string | Already-analyzed data spec to load files into (see onboard_data_source) |
| frequency* | object | Pull schedule. |
| preRules | string | Natural language: which files to pick up (e.g. "only *.csv under /outbound") |
| postRules | string | Natural language: what to do after a file loads (e.g. "rename with .done suffix") |
| dedupe | boolean | Required — 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… |
call_dpf_apiEscape 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_works…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_works…
| Parameter | Type | Description |
|---|---|---|
| path* | string | API path, e.g. "/auth/billing" (leading slash, no query string). |
| action* | string | The "action" field this endpoint routes on, e.g. "get-balance". |
| workspaceId | string | Include for workspace-scoped actions. Omit entirely for account-level actions. |
| params | object | Additional action-specific fields to merge into the request body alongside action/workspaceId. |
manage_accountReturns 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 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…
| Parameter | Type | Description |
|---|---|---|
| action* | string | — |
| email* | string | — |
| firstName | string | action "register" only |
| lastName | string | action "register" only |
| termsAccepted | boolean | action "register" only. Must be true. |
| otp | string | action "verify" and "reset-password" only. The 6-digit code from the email DPF sent. |
contactSend 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.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.
| Parameter | Type | Description |
|---|---|---|
| reason* | string | — |
| message* | string | — |
| email* | string | The sender's email address, so DPF can reply. |
| name | string | — |
18 of 18 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
AI-powered data integration platform. Onboard users and run DPF data workflows.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.