Inspiration
Data teams often ask simple questions with high operational risk: Which dataset contains orders? Does it include PII? What will break downstream if it changes? The answers live in a metadata catalog, but the people making decisions are usually working in Slack. We built BountyOps DataOps Autopilot to bring governed DataHub context into that conversation without turning an AI agent into an unchecked metadata editor.
What it does
A data engineer asks BountyOps a natural-language question in Slack. The agent searches DataHub, finds the relevant asset, inspects entity metadata and schema fields, traces lineage, and can review common queries. It then returns evidence and a prioritized remediation plan directly in Slack.
The live demo asks BountyOps to find the orders dataset, inspect its schema, and summarize downstream lineage. It identifies order_entry.orders, returns 15 schema fields with PII context, and reports 20 downstream entities. No metadata is changed.
How we built it
- Slack Bolt for JavaScript provides direct messages, mentions, App Home, and assistant surfaces.
- The OpenAI Agents SDK orchestrates the agent and its tools.
- The official
mcp-server-datahubconnects the agent to DataHub. - A hard read-only allowlist permits metadata search, entity inspection, schema lookup, lineage analysis, lineage paths, and dataset queries.
assess_datahub_metadataapplies deterministic checks for ownership, documentation, freshness, and criticality, then produces reviewable proposed changes.- DataHub v1.6.0 runs on Alibaba Cloud ECS with MySQL, Kafka, OpenSearch, GMS, frontend, and actions services.
- The official
showcase-ecommercedatapack provides representative, non-private catalog data.
Challenges
The main challenge was proving that the system did real catalog work while keeping the safety boundary explicit. We used defense in depth: mutation tools are disabled in the MCP child-process environment and excluded by the SDK tool filter. The verified MCP surface exposes eight read-only tools and zero write tools.
A second challenge was producing a reproducible public demo without exposing credentials or private company metadata. We self-hosted DataHub, loaded an official sample datapack, verified the MCP calls independently, and recorded the real Slack result.
Accomplishments
- A working Slack-native DataHub investigation flow.
- Verified
search,get_entities,list_schema_fields, and downstreamget_lineagecalls against a live DataHub deployment. - A deterministic metadata-quality assessment with explicit human approval gates.
- An Apache 2.0 public repository with tests, deployment notes, architecture, and demo source.
- A 56-second public demo that shows the end-to-end result.
What we learned
MCP makes a metadata graph usable by an agent quickly, but production trust depends on constraining the tool surface and making every conclusion traceable to catalog evidence. For data operations, a useful agent should first be an excellent investigator and reviewer; write access can remain an explicit, auditable future capability.
What's next
We plan to add persistent investigation history, richer impact summaries, Slack canvases for remediation review, and a separately authenticated write path that remains disabled until a human selects exact metadata values and approves the operation.
Log in or sign up for Devpost to join the conversation.