The data control plane
for AI agents.

Agents ask Datris for data. Datris finds it, acquires it, validates it, lands it in the stores you already run, and returns it with provenance — over MCP, without ever holding your keys.

Datris Assistant online
I'm looking for corporate earnings data.
Happy to set that up. Before I build anything, two quick questions so I don't guess:
Source: SEC EDGAR (free, official), Polygon.io, or Alpha Vantage?
Scope: which tickers, and how far back?
SEC EDGAR, Mag 7, last 2 years.
🔑Inspecting secret sec-edgar
Creating pipeline corporate-earningsmongodb
Creating tap corporate-earnings
Test run looks good — flat fact records flowing across all 7 tickers. Running the real load now.
Running tap corporate-earnings
Done. 24,217 fact records for the Mag 7 loaded into datris.corporate-earnings in ~4 seconds.
Provenance
Pipeline corporate-earnings · Run f3a91e2c
Script commit a3f19c2 · As-of 2026-08-25 14:32 UTC
24,217 rows written · 0 quarantined · 0 duplicates
One thing to flag for the recurring runs: each weekly run currently appends all matching facts. If you'd rather upsert, I can set keyFields on the pipeline.
→ Open tap corporate-earnings
Describe the data you want to ingest… Send

Your agents already do this work. Without a control plane, they do it badly.

The choice isn't Datris vs. an ETL tool. It's whether the agent operates through a governed surface, or improvises against your infrastructure.

Without Datris
Every agent, wired by hand
  • 63 low-level tool integrations to build and maintain per agent
  • Credentials scattered across agent configs, env vars, and prompts
  • No audit trail — the chat log is the record
  • Chat-only state; every session starts from zero
  • Regenerating an agent script quietly loses sync bookmarks
  • Failure diagnostics: raw stack traces you paste into another chat
  • Generated code lives in a database column, no diff, no history
With Datris
One control plane, every agent
  • 63 capabilities behind one MCP surface — agents learn one door
  • Vault-brokered credentials — the agent never holds a key
  • Every run recorded; every generated script versioned in git
  • Durable pipelines and platform-held sync bookmarks
  • Regenerate a script freely — the state was never in the code
  • AI Error Explanation — root cause in plain English
  • Agent-written code runs in an isolated container with no keys inside

One agent-driven loop, every step recorded

Acquire, validate, land, observe, explain, repair. Same loop every run, same audit trail every time — so the agent's job is reasoning about the data, not improvising infrastructure.

🎯
Acquire
AI-Generated Taps
Describe a source in plain English — an API, a vendor drop, a folder of PDFs. Datris generates a Python tap, wires up scheduling, and brokers credentials through Vault. Schema is auto-generated from a sample.
Validate
Plain-English Rules
Data quality rules described in natural language and executed on every row. Bad records quarantine at the door — not after they pollute your warehouse.
🚀
Land
Multi-Destination Pipelines
One pipeline lands the same records in Postgres, MongoDB, Snowflake, Databricks, S3, and vector stores in parallel. Idempotent by key — reruns don't double-write.
👁
Observe
Provenance & Job State
Every run gets a durable record: which script, which commit, which inputs, which rows landed. Agents poll job status through MCP; humans see it in the UI. The transcript is not the system of record.
🩹
Explain & Repair
AI Error Explanation
When something fails, Datris analyzes the error chain and explains the root cause in plain English. The agent reads that, adjusts, and retries — instead of pasting stack traces into another chat.

Type what you want.
The Assistant builds it.

Datris ships with an Assistant Agent inside the platform UI. Tell it what data you want. It asks a few sharp scoping questions, picks the right source and destination, generates the fetcher, requests credentials securely, runs the job, confirms the rows landed, and lets you query the result — usually in seconds, with no hand-written config.

  • Clarifies scope before building — picks the right source, destination, and cadence with you
  • Generates and runs the fetcher (tap) for external APIs and files
  • Requests credentials through a secure form — never in chat history
  • Polls job status and confirms rows actually landed before saying "done"
  • Flags things you didn't ask about — upsert vs append, fair-use policies, schema drift
  • Answers natural-language questions over the data once it's in
Watch the Assistant build a pipeline end-to-end
Things you can say to it
  • "I'm looking for corporate earnings data."
  • "Ingest these PDFs into a vector store for RAG."
  • "Refresh treasury yields from FRED nightly and let me query trends."
Every request becomes a durable pipeline, schedule, and dataset you can audit, hand off, or query from the rest of the platform — not chat-only state.

Your AI agents are
first-class pipeline operators

Datris ships with a native MCP server. Claude, Cursor, OpenClaw, and any MCP-compatible AI agent can register pipelines, trigger jobs, and query your structured, document, and vector data in real time — all through natural conversation.

Transports: stdioSSE (Server-Sent Events)
Compatible agents:
ClaudeCursorOpenClawAny MCP-compatible agent
MCP Capabilities
  • Register pipelines and generate schemas from sample data
  • Create, schedule, and run AI-generated taps
  • Ingest documents into vector databases (extract → chunk → embed)
  • Upload data for processing
  • Trigger and monitor pipeline jobs
  • Profile data and get AI insights
  • Semantic search across vector databases
  • Query PostgreSQL and MongoDB directly
  • Manage credentials via Vault — without ever holding the key
Example prompt
"Generate a tap for our prime broker margin API, schedule it daily, validate that 'all account_ids must be present and balances must be non-negative', and load into Postgres."

The plane Datris controls

Every source, every destination, every AI call, every job — one MCP surface, one audit trail, one place credentials live. Datris owns acquisition, validation, storage, and observability so your agents can focus on reasoning, not integration.

Sources
Push · Real-time
Data Upload
MinIO (events)
Kafka (streaming)
Pull · Taps
API Tap
DB Tap
File Tap
Document Tap
Custom Script
Processing
1 Preprocessor
2 Data Quality (AI)
3 Transformation (AI)
4 Extract / Chunk / Embed (Docs)
Storage
MinIO (Parquet/ORC)
S3 (Parquet/ORC)
Snowflake
Databricks
PostgreSQL
MongoDB
Kafka
ActiveMQ
REST API
Qdrant
Weaviate
Milvus
Chroma
pgvector
Notification
ActiveMQ
Push
Create Pipelines
Create & Schedule Taps
Upload Data
Trigger Processing
Configure Pipelines
MCP stdio · SSE
Claude Cursor OpenClaw Any MCP Agent
Pull
Query PostgreSQL
Query MongoDB
Query Snowflake
Query Databricks
Semantic Search (Vector DB)
Generate Schemas
Monitor Jobs
Profile Data
Retrieve Results

Your warehouses, models, and formats — Datris connects them

Datris is neutral by design. Point it at whichever warehouse you bought, whichever vector store your RAG runs on, whichever model your procurement approved. Destinations and providers are settings — never migrations.

Sources
CSVJSONNDJSONXMLExcelPDFWordPowerPointHTMLEmailEPUBREST APIsPostgreSQLMongoDBSnowflakeDatabricksKafkaS3MinIO
Destinations
PostgreSQLMongoDBSnowflakeDatabricksS3MinIOKafkaActiveMQREST endpointsQdrantWeaviateMilvusChromapgvector
AI providers
AnthropicOpenAIAWS BedrockAzure OpenAIGrok (xAI)OllamaTEI bge-m3 (bundled)

Self-host anywhere you want

Datris runs on-prem, in any cloud, or on your laptop — anywhere Docker runs. Open source under AGPL-3.0, built on proven infrastructure. No proprietary services, no vendor lock-in, no surprise bills. There is no managed service; your deployment lives inside your perimeter.

$ git clone https://github.com/datris/datris-platform-oss.git
$ cp .env.example .env
# Add your API key (at least one required for AI features)
$ docker compose up -d
$ curl http://localhost:8080/api/v1/version

Clone. Configure. Launch. Your full pipeline in under a minute.

Or drive it from the CLI
$ datris ingest sales_q4.csv \
    --ai-validate "revenue must be positive, date must be in 2026" \
    --ai-transform "standardize region codes to ISO 3166"

Plain-English validation and transformation inline on the ingest — no config file needed for one-shot loads.


What we're building next

Nothing here yet — but it's where the control plane goes. If any of these decide whether Datris fits your team, tell us. Priorities move.

Fine-grained agent policies
Per-tool, per-source authorization: which agents can read what, write where, and spend what — enforced at the MCP surface, not in prompts.
Agent identity & attestation
Signed agent identities so audit logs record "which agent" alongside "which run." Attestation for regulated environments.
Autonomous recovery loops
Today Datris explains failures and lets the agent retry. Next: the platform proposes and executes a fix inside a bounded blast radius, with a rollback path.
Cross-agent audit correlation
Trace a single business question across every agent, every tool call, and every run — one thread through the whole loop.

Send us a message

Questions, feedback, or just want to chat — we'd love to hear from you.