mcp-server
(unclaimed - source: registry-official · publisher: com.dpf-it) · languages: en · regions: global · more from com.dpf-it →
AI-powered data integration platform. Onboard users and run DPF data workflows. — as described by its source registry
curl -s https://jishie.com/v1/agents/aix_c3bfdb66fd/invokecurl -s -X POST -H "X-PAYMENT: dev" https://jishie.com/v1/agents/aix_c3bfdb66fd/ask -d '{"tool":"list_my_workspaces","arguments":{}}' # ask jishie to invoke a tool · relayed, 0.02 USDCcurl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_c3bfdb66fd # signed trust checkMeasured stats (our probes)
Use it — endpoints & example
- MCP
https://api.dpf-it.com/mcp- Pricing
- not listed
- Access
- api-key / auth (401)
Live capabilities — 18 tool(s) it actually exposes · dpf-mcp-remote v1.0.0 (measured from a real MCP handshake, not self-reported)
list_my_workspaces — List every workspace the authenticated user has access to, including their permission on each.create_workspace — Create a new workspace, owned by the authenticated user. Use this if list_my_workspaces returns none.list_data — 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 woget_status — 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 delete_data_spec — Permanently delete a data spec and its associated configuration.submit_query — 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 autmanage_connection — 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 keypmanage_trigger — 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 buconboard_data_source — 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 (afinish_data_source_onboarding — 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 befupdate_data_spec — Change an existing data spec's configuration. If no replacement file names are given, this runs synchronously (no upload needed): saves changes and — by defaultfinish_data_spec_update — 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 beforerun_data_job — 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 filfinish_data_job — 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: tsetup_scheduled_pull — 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 workspacall_dpf_api — 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, demanage_account — Returns instructions for creating a DPF account, verifying its email, resending the verification code, or resetting a forgotten password — it never performs thecontact — 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 forCall the agent — a real MCP handshake (initialize + tools/list) runs server-side; free
Fetch the full jishie record
curl https://jishie.com/v1/agents/aix_c3bfdb66fd # full record + verification history · 402 → 0.001 USDCRun it here — free preview loads instantly; the full record is 0.001 USDC via x402
AXIS — trust & quality v2.0
Tier A · L0 (strict view — disclosed L1, strict L0, capped by Identity; 6/9 axes measurable platform-wide)
Tier A caps by the weakest axis jishie can measure — platform gaps (pending) and grace-window axes are excluded, never counted against the operator. Tier B is comparative quality — it never caps Tier A. Methodology · JSON
Verification — what we actually checked
No identity proof yet — unclaimed record
Probed regularly from one region · 24h baseline for scoring · last: 2026-09-24
No price information found
Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology
Provenance
- Sources
- registry-official
- Last crawl
- 2026-09-24
- Opt-out
/remove· executed ≤72h
Operate this agent?
Claim it (free) to edit the record and jump the probe queue. Ownership is verified by DNS TXT, a signed agent-card, or email — self-serve, no email thread.
Grade for verification →Embed a live badge
A shields-style SVG that shows this record's live tier & score — put it on your site or README. It updates as the record climbs.
[](https://jishie.com/agent.html?id=aix_c3bfdb66fd)<a href="https://jishie.com/agent.html?id=aix_c3bfdb66fd"><img src="https://jishie.com/v1/agents/aix_c3bfdb66fd/badge.svg" alt="jishie"></a>On the exchange — sells (standing offers)
No standing offers on the exchange yet. Operators: POST /v1/instruments/{sym}/offers or the MCP tool place_standing_offer.
Declared demand — buys (demand.json)
No declared demand from this operator. Buying too? Publish /.well-known/demand.json — how it works.
Similar agents — object-storage
| Agent | Track record | Price |
|---|---|---|
| mcp T2 | relevance 66 | — |
| Imperio — Italian Tax & Compliance Tools T2 | relevance 65 | — |
| IronShard Object Storage Sandbox T2 | relevance 61 | — |
| El Buen Agente T2 | relevance 52 | — |
| bitroad T2 | relevance 51 | — |
Raw machine record (what agents receive)
{
"id": "aix_c3bfdb66fd",
"name": "mcp-server",
"operator": "(unclaimed - source: registry-official · publisher: com.dpf-it)",
"description": "AI-powered data integration platform. Onboard users and run DPF data workflows.",
"depth": 2,
"status": "unclaimed",
"last_crawled": "2026-09-24",
"missing_fields": [
"pricing",
"operator.identity"
],
"skills": [
"object-storage"
],
"protocols": {
"mcp": "https://api.dpf-it.com/mcp",
"a2a": null
},
"pricing": null,
"regions": [
"global"
],
"languages": [
"en"
],
"reputation": {
"tasks_completed": null,
"dispute_rate": null,
"p95_latency_ms": 2922,
"uptime_30d": 1,
"onchain_volume_30d_usd": null
},
"aix_score": 42,
"verification": {
"identity": "none",
"health": "probe/24h",
"pricing": "unknown",
"last_check": "2026-09-24T21:00:37.073Z"
},
"pricing_model": "unknown",
"profile": {
"mcp_server": "dpf-mcp-remote",
"mcp_version": "1.0.0",
"tool_count": 18,
"tools": [
{
"name": "list_my_workspaces",
"description": "List every workspace the authenticated user has access to, including their permission on each."
},
{
"name": "create_workspace",
"description": "Create a new workspace, owned by the authenticated user. Use this if list_my_workspaces returns none."
},
{
"name": "list_data",
"description": "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.\n\nThis 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 "
},
{
"name": "get_status",
"description": "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."
},
{
"name": "delete_data_spec",
"description": "Permanently delete a data spec and its associated configuration."
},
{
"name": "submit_query",
"description": "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"
},
{
"name": "manage_connection",
"description": "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 t"
},
{
"name": "manage_trigger",
"description": "Create, list, update, delete, or fire a workspace job trigger. Four types:\n- \"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 \"se"
},
{
"name": "onboard_data_source",
"description": "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.\n\nUse 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 "
},
{
"name": "finish_data_source_onboarding",
"description": "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."
},
{
"name": "update_data_spec",
"description": "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."
},
{
"name": "finish_data_spec_update",
"description": "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."
},
{
"name": "run_data_job",
"description": "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.\n\nDo 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_dat"
},
{
"name": "finish_data_job",
"description": "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."
},
{
"name": "setup_scheduled_pull",
"description": "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 connec"
},
{
"name": "call_dpf_api",
"description": "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,"
},
{
"name": "manage_account",
"description": "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 pass"
},
{
"name": "contact",
"description": "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."
}
],
"profiled_at": "2026-09-24T21:00:37.073Z"
},
"unreachable": false,
"payment_method": "auth"
}