{
  "markdown": "# Datris — The Data Control Plane for AI Agents\n\n[![PyPI](https://img.shields.io/pypi/v/datris-mcp-server)](https://pypi.org/project/datris-mcp-server/)\n[![MCP Registry](https://img.shields.io/badge/MCP_Registry-io.github.datris%2Fdatris-blue)](https://registry.modelcontextprotocol.io/servers/io.github.datris/datris)\n[![Docker Hub](https://img.shields.io/docker/v/datrisai/datris-server?label=Docker%20Hub)](https://hub.docker.com/u/datrisai)\n[![License](https://img.shields.io/badge/license-AGPL--3.0-blue)](LICENSE)\n\n[datris.ai](https://datris.ai) · [Documentation](https://docs.datris.ai) · [MCP Registry](https://registry.modelcontextprotocol.io/servers/io.github.datris/datris) · [PyPI](https://pypi.org/project/datris-mcp-server/)\n\nAgents 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.\n\n## Why Datris?\n\nYour agents already acquire, validate, and load data. Without a control plane, they do it badly. Datris puts that work behind one governed surface:\n\n- **One MCP door** — 63 capabilities behind a single MCP server. Claude, Cursor, and any MCP-compatible agent learn one interface instead of 63 integrations\n- **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\n- **Every run recorded** — job state, row counts, and provenance for every run; every generated script versioned in git\n- **Durable state** — pipelines and sync bookmarks live in the platform, not the chat, so regenerating a script never loses its place\n- **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\n- **Self-host anywhere** — on-prem, any cloud, or your laptop; 100% open-source infrastructure (MinIO, PostgreSQL, MongoDB, Kafka, Vault), AGPL-3.0, no managed service\n\n## Quick Start\n\nYou only need Docker. This pulls pre-built images and runtime files, seeds a\n`.env`, and starts the stack into `./datris` — no git checkout required:\n\n```bash\ncurl -fsSL https://get.datris.ai/install.sh | sh\n```\n\n> The `install.sh` installer 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.\n\n<details>\n<summary>Single file, no installer (works on Windows)</summary>\n\nA fully self-contained Compose file — the init scripts and config are inlined,\nso nothing else is needed (requires Docker Compose ≥ 2.23):\n\n```bash\n# macOS / Linux\ncurl -O https://get.datris.ai/docker-compose.standalone.yml\nANTHROPIC_API_KEY=sk-ant-... docker compose -f docker-compose.standalone.yml up -d\n```\n\n```powershell\n# Windows (PowerShell) — use curl.exe, and set the key with $env:\ncurl.exe -O https://get.datris.ai/docker-compose.standalone.yml\n$env:ANTHROPIC_API_KEY=\"sk-ant-...\"\ndocker compose -f docker-compose.standalone.yml up -d\n```\n\n</details>\n\n<details>\n<summary>From a git clone</summary>\n\n```bash\ngit clone https://github.com/datris/datris-platform-oss.git\ncd datris-platform-oss\ncp .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)\ndocker compose up -d\n```\n\n</details>\n\n**UI**: [http://localhost:4200](http://localhost:4200) · **API**: [http://localhost:8080](http://localhost:8080)\n\n### Connect an AI Agent\n\nAdd 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:\n\n```json\n{\n  \"mcpServers\": {\n    \"datris\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-remote\", \"http://localhost:3000/sse\", \"--transport\", \"sse-only\"]\n    }\n  }\n}\n```\n\nPaste-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 hosted/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.\n\nRequires 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](https://docs.datris.ai/configuring-claude).\n\n### CLI\n\n```bash\nbrew tap datris/tap\nbrew install datris\ndatris ingest data.csv --dest postgres\ndatris ingest sales.csv --ai-validate \"prices > 0\" --ai-transform \"convert dates to YYYY/MM/DD\"\ndatris query \"SELECT * FROM sales\"\ndatris search \"quarterly revenue\" --store pgvector\ndatris tap create \"Fetch S&P 500 daily prices from yfinance\" --pipeline stocks\ndatris taps\n```\n\n## What It Does\n\n```\nSource (File Upload / MinIO Event / Database Pull / Kafka)\n  → Preprocessor (optional REST endpoint)\n  → Data Quality (AI rules, header validation, schema validation)\n  → Transformation (AI transformation, destination schema)\n  → Destinations (in parallel):\n      PostgreSQL, MongoDB, MinIO (Parquet/ORC), Kafka, ActiveMQ,\n      REST Endpoint, Qdrant, Weaviate, Milvus, Chroma, pgvector\n  → Notifications (ActiveMQ topic)\n```\n\n### AI-Powered Features\n\n| Feature | Description |\n|---------|-------------|\n| **MCP Server** | 63 tools for AI agents — pipeline CRUD, upload, query, search, profiling, taps |\n| **AI Data Quality** | Plain English validation rules — AI generates and runs a validation script |\n| **AI Transformation** | Plain English transformations — AI generates and runs a transformation script |\n| **AI Schema Generation** | Upload a file, get a complete pipeline config |\n| **AI Data Profiling** | Upload a file, get statistics + suggested validation rules |\n| **AI Error Explanation** | Job failures explained in plain English |\n| **Natural Language Query** | Ask questions in English, get SQL results |\n| **RAG Pipeline** | Chunk, embed, and search across 5 vector databases |\n\n### Supported Formats\n\nCSV, JSON, XML, Excel, PDF, Word (DOCX), plain text\n\n### AI Providers\n\nAnthropic Claude (Opus 4.8 default for chat and CodeGen) · OpenAI (GPT-5.5) · 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.\n\n## Architecture\n\n| Service | Purpose |\n|---------|---------|\n| **MinIO** | S3-compatible object store for file staging and data output |\n| **PostgreSQL** | Default structured destination, also hosts pgvector for RAG |\n| **MongoDB** | Configuration store, job status tracking, metadata |\n| **ActiveMQ** | File notification queue, pipeline event notifications |\n| **HashiCorp Vault** | Secrets management (database credentials, API keys) |\n| **TEI** | Text Embeddings Inference sidecar (BAAI/bge-m3) — local vector embeddings when you're not using OpenAI embeddings |\n| **Apache Kafka** | Optional streaming source and destination |\n| **Apache Spark** | Local Spark for writing Parquet/ORC to MinIO |\n\n## Documentation\n\nFull documentation at [docs.datris.ai](https://docs.datris.ai) or locally at `docs/`.\n\n## License\n\n[AGPL-3.0](LICENSE)\n",
  "bytes": 7797,
  "sha": "3146108f5a5d6dd71103de948b2f9327c011e440d3cd46f2ed7cc82ed335bccb",
  "repo_slug": "datris/datris-platform-oss",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_datris_datris_4d2497a9/readme"
}