AI agent이 단일 MCP 인터페이스를 통해 데이터를 수집, 검증, 저장 및 조회할 수 있도록 데이터 컨트롤 플레인을 제공합니다.
다른 이름 datris/datris-platform-oss, datris-platform-oss, datris-mcp-server
- 스타
- 14
- Tools
- —
- 다운로드, 30일
- 3,156
- 최신 버전
- 1.58.2
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- Apache-2.0
Datris MCP란?
Datris은(는) MCP server입니다. AI agent이 단일 MCP 인터페이스를 통해 데이터를 수집, 검증, 저장 및 조회할 수 있도록 데이터 컨트롤 플레인을 제공합니다.
프로젝트 README에서 생성된 요약
Datris MCP server 정보
Datris는 AI agent가 단일 인터페이스를 통해 전체 데이터 라이프사이클을 관리할 수 있도록 설계된 데이터 컨트롤 플레인입니다. 모든 소스나 목적지마다 개별적인 통합 작업이 필요 없이, agent가 데이터를 수집, 검증, 저장 및 조회할 수 있는 90개의 도구가 포함된 통합 MCP 엔트리 포인트를 제공합니다. 이 시스템은 기존 데이터 웨어하우스나 데이터 레이크를 대체하는 대신 그 옆에서 함께 작동하며, 데이터가 PostgreSQL, MongoDB, Snowflake 또는 다양한 벡터 데이터베이스와 같이 선호하는 저장소로 흐르도록 보장합니다.
사용자는 Docker를 사용하여 플랫폼을 로컬, 온프레미스 또는 모든 클라우드 환경에 배포할 수 있습니다. 설정 시 Anthropic, OpenAI, Grok, Azure OpenAI 또는 Amazon Bedrock과 같은 서비스의 AI provider key가 필요합니다. 보안은 vault-brokered credentials를 통해 관리되므로, agent는 실제 키를 보유하는 대신 이름으로 비밀 정보를 참조합니다. 이 아키텍처는 데이터 탭핑, 품질 검증 및 변환을 위해 AI가 생성한 스크립트를 실행할 때 격리된 컨테이너를 사용하여 핵심 환경을 보호합니다.
활용 사례
- 1자동화된 데이터 수집agent가 평이한 영어로 소스를 설명하는 것만으로 커스텀 데이터 탭을 생성할 수 있습니다.
- 2자연어 데이터 검증개발자가 간단한 영어 설명을 사용하여 AI에게 데이터 품질 규칙을 적용하도록 지시할 수 있습니다.
- 3안전한 자격 증명 관리agent 자체에 실제 API 키를 노출하지 않고도 agent가 민감한 데이터베이스에 액세스할 수 있도록 허용할 수 있습니다.
- 4대화형 데이터 조회사용자는 복잡한 SQL을 작성하는 대신 자연어로 질문하여 특정 데이터 세트를 검색할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Datris MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 Datris MCP 설치
$ claude mcp add --env 'DATRIS_API_URL=<DATRIS_API_URL>' --env 'DATRIS_API_KEY=<YOUR_DATRIS_API_KEY>' datris-platform-oss -- uvx datris-mcp-serverCursor에 Datris MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"datris-platform-oss": {
"command": "uvx",
"args": [
"datris-mcp-server"
],
"env": {
"DATRIS_API_URL": "<DATRIS_API_URL>",
"DATRIS_API_KEY": "<YOUR_DATRIS_API_KEY>"
}
}
}
}VS Code에 Datris MCP 설치
.vscode/mcp.json
{
"servers": {
"datris-platform-oss": {
"type": "stdio",
"command": "uvx",
"args": [
"datris-mcp-server"
],
"env": {
"DATRIS_API_URL": "<DATRIS_API_URL>",
"DATRIS_API_KEY": "<YOUR_DATRIS_API_KEY>"
}
}
}
}VS Code CLI에 Datris MCP 설치
$ code --add-mcp '{"name":"datris-platform-oss","type":"stdio","command":"uvx","args":["datris-mcp-server"],"env":{"DATRIS_API_URL":"<DATRIS_API_URL>","DATRIS_API_KEY":"<YOUR_DATRIS_API_KEY>"}}'Claude Desktop에 Datris MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"datris-platform-oss": {
"command": "uvx",
"args": [
"datris-mcp-server"
],
"env": {
"DATRIS_API_URL": "<DATRIS_API_URL>",
"DATRIS_API_KEY": "<YOUR_DATRIS_API_KEY>"
}
}
}
}Codex에 Datris MCP 설치
$ codex mcp add datris-platform-oss --env 'DATRIS_API_URL=<DATRIS_API_URL>' --env 'DATRIS_API_URL=<DATRIS_API_URL>' --env 'DATRIS_API_KEY=<YOUR_DATRIS_API_KEY>' --env 'DATRIS_API_KEY=<YOUR_DATRIS_API_KEY>' -- uvx datris-mcp-serverCodex config.toml에 Datris MCP 설치
~/.codex/config.toml
[mcp_servers.datris-platform-oss] command = "uvx" args = ["datris-mcp-server"] [mcp_servers.datris-platform-oss.env] DATRIS_API_URL = "<DATRIS_API_URL>" DATRIS_API_KEY = "<YOUR_DATRIS_API_KEY>"
Gemini CLI에 Datris MCP 설치
$ gemini mcp add -s user -e 'DATRIS_API_URL=<DATRIS_API_URL>' -e 'DATRIS_API_URL=<DATRIS_API_URL>' -e 'DATRIS_API_KEY=<YOUR_DATRIS_API_KEY>' -e 'DATRIS_API_KEY=<YOUR_DATRIS_API_KEY>' datris-platform-oss uvx -- datris-mcp-serverGemini settings.json에 Datris MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"datris-platform-oss": {
"command": "uvx",
"args": [
"datris-mcp-server"
],
"env": {
"DATRIS_API_URL": "<DATRIS_API_URL>",
"DATRIS_API_KEY": "<YOUR_DATRIS_API_KEY>"
}
}
}
}구성
DATRIS_API_URL필수URL of the Datris server API (default http://localhost:8080)
DATRIS_API_URL필수URL of the Datris server API (default http://localhost:8080)
DATRIS_API_KEY비밀API key for the Datris server (only when USE_API_KEYS=true)
DATRIS_API_KEY비밀API key for the Datris server (only when USE_API_KEYS=true)
ANTHROPIC_API_KEYEMBEDDING_PROVIDERPOSTGRES_ENABLEDTEI_ENABLED
| 이름 | 설명 | 유형 |
|---|---|---|
| DATRIS_API_URL | URL of the Datris server API (default http://localhost:8080) | 필수 |
| DATRIS_API_URL | URL of the Datris server API (default http://localhost:8080) | 필수 |
| DATRIS_API_KEY | API key for the Datris server (only when USE_API_KEYS=true) | 비밀 |
| DATRIS_API_KEY | API key for the Datris server (only when USE_API_KEYS=true) | 비밀 |
| ANTHROPIC_API_KEY | — | |
| EMBEDDING_PROVIDER | — | |
| POSTGRES_ENABLED | — | |
| TEI_ENABLED | — |
자동 검사
2026년 11월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음통과
README
GitHub에서 보기Datris — The Data Control Plane for AI Agents
datris.ai · Documentation · MCP Registry · PyPI
⭐ If Datris is useful to you, star the repo — it helps other people find it.
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. It sits beside your warehouse and lake; it doesn't replace them.
See it in 90 seconds — describe the data you need, and the Assistant builds the tap, runs it, and lands the data:
https://github.com/user-attachments/assets/4f03dc12-e9d7-4f93-8ba4-d712ab7d3733
🔊 Sound is off by default — click the speaker icon in the player.
Why Datris?
https://github.com/user-attachments/assets/ba3de886-1413-4d92-92bb-99018cfaff38
🔊 Sound is off by default — click the speaker icon in the player, or watch on YouTube.
Your agents already acquire, validate, and load data. Without a control plane, they do it badly. Datris puts that work behind one governed surface:
- One MCP door — 90 tools behind a single MCP server. Claude, Cursor, and any MCP-compatible agent learn one interface instead of 90 integrations
- Vault-brokered credentials — the agent references a secret by name and never holds a key; agent-written code runs in an isolated container with no keys inside
- Scoped keys, approval gates, audit log — each agent gets its own API key limited to the capabilities you grant; an agent policy decides per action whether an agent runs it, waits for a person to approve, or is refused; an audit log, once you turn it on (
USE_AUDIT_LOG=true), records who did what, best effort by default and without loss in strict mode - Every run recorded — job state and row counts for every run, provenance on its rows with stamping on; every generated script versioned in git
- Durable state — pipelines and sync bookmarks live in the platform, not the chat, so regenerating a script never loses its place
- The operating loop — Acquire (AI-generated taps) → Validate (plain-English rules) → Land (multi-destination pipelines) → Observe (provenance and job state) → Explain & Repair (AI error explanation), with the same audit trail every time once the audit log is on (see strict mode)
- Self-host anywhere — on-prem, any cloud, or your laptop; 100% open-source infrastructure (MinIO, PostgreSQL, MongoDB, Kafka, Vault), Apache-2.0, no managed service
Quick Start
You need Docker and one AI provider key (Anthropic, OpenAI, Grok, Azure OpenAI,
or Amazon Bedrock). This pulls pre-built images and runtime files, seeds a
.env, and starts the stack into ./datris — no git checkout required. The
installer asks for the key:
curl -fsSL https://get.datris.ai/install.sh | sh
Installing from a coding agent or a CI job with no terminal attached? Export the key first (ANTHROPIC_API_KEY, OPENAI_API_KEY, or another provider's): the installer asks nothing and reads it from the environment. Then check http://localhost:8080/api/v1/version answers before going on. Full steps: Install for Agents.
Minimal install (laptop-friendly). The default stack runs about ten
containers and the bundled embedding server downloads a 2.2 GB model on first
boot. None of that is required. Three settings in .env cut it to nine small
containers, no download, and roughly 3.5 GB of memory (4 GB of Docker memory
is enough; the full stack wants 8 GB):
TEI_ENABLED=0 # skip the local embedding server and its 2.2 GB download
EMBEDDING_PROVIDER=openai # semantic search via OpenAI (needs OPENAI_API_KEY); omit if you have no OpenAI key
POSTGRES_ENABLED=0 # optional: skip bundled Postgres; MongoDB stays as the destination
The installer sets the first two when you choose OpenAI embeddings. The datris server itself runs on a 2 GB heap by default. Details: Installation → Minimal install.
The
install.shinstaller is a POSIX shell script (macOS/Linux). On Windows, run it from WSL2 or Git Bash, or use the single-file Compose option below, which works natively in PowerShell.
A fully self-contained Compose file — the init scripts and config are inlined, so nothing else is needed (requires Docker Compose ≥ 2.23):
# macOS / Linux
curl -O https://get.datris.ai/docker-compose.standalone.yml
ANTHROPIC_API_KEY=sk-ant-... docker compose -f docker-compose.standalone.yml up -d
# Windows (PowerShell) — use curl.exe, and set the key with $env:
curl.exe -O https://get.datris.ai/docker-compose.standalone.yml
$env:ANTHROPIC_API_KEY="sk-ant-..."
docker compose -f docker-compose.standalone.yml up -d
git clone https://github.com/datris/datris-platform-oss.git
cd datris-platform-oss
cp .env.example .env # Add your ANTHROPIC_API_KEY and/or OPENAI_API_KEY (or the AZURE_OPENAI_* trio, XAI_API_KEY, or AI_PROVIDER=bedrock)
docker compose up -d
UI: http://localhost:4200 · API: http://localhost:8080
Connect an AI Agent
Add to your MCP client config (Claude Desktop, Claude Code, Cursor, etc.). With the Docker stack running, the npx mcp-remote stdio bridge connects to the bundled MCP server on port 3000 — your client appears in the Datris UI Agent Monitor tab with live tool-call streaming:
{
"mcpServers": {
"datris": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:3000/sse", "--transport", "sse-only"]
}
}
}
Paste-and-go for the default local setup — no API key required when USE_API_KEYS=false (the OSS default). If your instance enables auth (USE_API_KEYS=true or multi-tenant), append "--header", "x-api-key:<your-key>" to the args array. The Configuration → Connect Your Agent page generates the snippet for you and adds the header automatically when you paste your key.
Requires Node.js on your PATH (brew install node). For a stdio alternative without Docker, or full Claude Desktop / Claude Code / Cursor walkthroughs, see Configuring Claude.
To teach the coding agents in your own projects (Claude Code, Codex, and similar) to use Datris for data work, install the datris-platform skill from skills/ — see Agent Skill.
CLI
brew tap datris/tap
brew install datris
datris ingest data.csv --dest postgres
datris ingest sales.csv --ai-validate "prices > 0" --ai-transform "convert dates to YYYY/MM/DD"
datris query "SELECT * FROM sales"
datris search "quarterly revenue" --store pgvector --collection financial_docs
datris tap create "Fetch S&P 500 daily prices from yfinance" --pipeline stocks
datris taps
datris doctor # operational self-check; prints the fix for every finding
What It Does
Source (Tap / File Upload / MinIO Event / Database Pull / Kafka)
→ Preprocessor (optional REST endpoint)
→ Field Protection (pseudonymize, mask, redact, encrypt, or drop sensitive fields)
→ Data Quality (AI rules, header validation, schema validation)
→ Transformation (AI transformation, destination schema)
→ Destinations (in parallel):
PostgreSQL, MongoDB, Snowflake, Databricks, Microsoft SQL Server / Azure SQL,
MinIO / S3 (Parquet, ORC, Apache Iceberg), Kafka, ActiveMQ,
REST Endpoint, Qdrant, Weaviate, Milvus, Chroma, pgvector
→ Notifications (ActiveMQ topic)
AI-Powered Features
| Feature | Description |
|---|---|
| MCP Server | 90 tools for AI agents — pipeline CRUD, upload, query, search, profiling, taps, catalogs, provenance |
| Taps | Describe a source in plain English — AI generates a Python script that fetches it on demand or on a schedule, run in an isolated container |
| Assistant | Conversational tap and pipeline creation, operations, and configuration in the UI |
| AI Data Quality | Plain English validation rules — AI generates and runs a validation script |
| AI Transformation | Plain English transformations — AI generates and runs a transformation script |
| AI Schema Generation | Upload a file, get a complete pipeline config |
| AI Data Profiling | Upload a file, get statistics + suggested validation rules |
| AI Error Explanation | Job failures explained in plain English |
| Natural Language Query | Ask questions in English, get SQL results |
| RAG Pipeline | Chunk, embed, and search across 5 vector databases |
| Field Protection | Pseudonymize, mask, redact, encrypt, or drop sensitive fields before any AI stage or destination sees them |
Supported Formats
CSV, JSON, XML, Excel, PDF, Word (DOCX), PowerPoint, HTML, email, EPUB, plain text
AI Providers
Anthropic Claude (Opus 5.5 default for chat and CodeGen) · OpenAI (GPT-5.6 Sol default for chat and CodeGen) · Azure OpenAI (bring your Azure resource; models by deployment name) · Amazon Bedrock (Claude through your AWS account — IAM auth, AWS billing, IAM-role support with zero stored keys) · Grok (xAI's models through their OpenAI-compatible API) · Ollama (local models, optional). Embeddings via OpenAI text-embedding-3-small (recommended when you have an OpenAI key), Azure OpenAI, the bundled TEI sidecar (BAAI/bge-m3 — fully local, no API key), or Ollama.
Architecture
| Service | Purpose |
|---|---|
| MinIO | S3-compatible object store for file staging and data output |
| PostgreSQL | Default structured destination, also hosts pgvector for RAG |
| MongoDB | Configuration store, job status tracking, metadata |
| ActiveMQ | File notification queue, pipeline event notifications |
| HashiCorp Vault | Secrets management (database credentials, API keys) |
| TEI | Text Embeddings Inference sidecar (BAAI/bge-m3) — local vector embeddings when you're not using OpenAI embeddings |
| Apache Kafka | Optional streaming source and destination |
| Apache Spark | Local Spark for writing Parquet, ORC, and Iceberg tables to MinIO / S3 |
| Tap runner | Isolated container that runs AI-generated tap scripts with no platform credentials and no route to internal services |
| CodeGen runner | Second isolated container, built from the same image, that runs AI-generated data-quality and transformation scripts |
| MCP server | Bundled MCP endpoint (SSE on port 3000) for AI agents |
Documentation
Full documentation at docs.datris.ai or locally at docs/. Going to production? Start with Security Architecture and SECURITY.md.
License
Apache License 2.0. See NOTICE for attribution.
Datris MCP 질문
Datris MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --env 'DATRIS_API_URL=<DATRIS_API_URL>' --env 'DATRIS_API_KEY=<YOUR_DATRIS_API_KEY>' datris-platform-oss -- uvx datris-mcp-server를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Datris MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
Datris는 보안과 자격 증명을 어떻게 처리하나요?
Datris는 vault-brokered credentials를 사용하여 agent가 실제 키를 보유하지 않고 이름만으로 비밀 정보를 참조하게 하며, 코드는 격리된 컨테이너에서 실행됩니다.
Datris를 셀프 호스팅할 수 있나요?
네, Datris는 100% 오픈 소스 인프라로 온프레미스, 모든 클라우드 또는 노트북에 셀프 호스팅할 수 있습니다.
Claude 또는 Cursor와 같은 AI agent를 Datris에 어떻게 연결하나요?
npx mcp-remote 명령어를 사용하여 Datris MCP server를 클라이언트 설정에 추가하면 번들된 SSE 엔드포인트에 연결할 수 있습니다.