# DataChef DataChef is an agent-first data integration, super-query, Smart Forms, pipeline, API explorer, and security workbench. ## For AI agents - Public summary: https://chef.threatco.io/llms.txt - Full agent guide: https://chef.threatco.io/llms-full.txt - OpenAPI discovery: https://chef.threatco.io/openapi.json - MCP discovery: https://chef.threatco.io/.well-known/mcp.json - MCP endpoint: https://chef.threatco.io/api/mcp - Agent console: https://chef.threatco.io/agents ## Connect 1. Open https://chef.threatco.io/agents as an authenticated DataChef operator. 2. Create a scoped MCP token. Start with `mcp:read` and `mcp:query`. 3. Configure your agent client for Streamable HTTP JSON at https://chef.threatco.io/api/mcp. 4. Send `Authorization: Bearer ` with every MCP call. The MCP endpoint itself is bearer-token protected so agents do not need a browser OAuth session. ## Recommended Super Query flow 1. Call `datachef.sources.discover`. 2. Call `datachef.query.plan` with an objective and selected source bindings. 3. Call `datachef.query.run` with the returned query text and sources. 4. Call `datachef.query.profile` or `datachef.query.explain` for evidence and citations. 5. Call `datachef.query.save_recipe` only after the query is useful and bounded. ## Recommended Smart Forms flow 1. Call `datachef.forms.inspect_source` with a dataset, connector, API service, or recipe. 2. Call `datachef.forms.generate` to get a schema-validated form definition. 3. Call `datachef.forms.validate` before saving or publishing externally produced definitions. 4. Call `datachef.forms.check_drift` before running older published forms. 5. Call `datachef.forms.regenerate` with `confirm=true` when source drift requires a new draft. 6. Call `datachef.forms.publish` only after operator approval. 7. Call `datachef.forms.run` for bounded read/search interactions; mutation actions require confirmation. ## Recommended Display flow 1. Use DataChef query, source, or form tools to gather real evidence first. 2. Use `datachef.display.card` for summaries and metric strips. 3. Use `datachef.display.table` for bounded row displays. 4. Keep display blocks grounded in prior tool results; do not invent rows, counts, or labels. ## Available MCP tools - `datachef.display.card` (mcp:read, read) - Return validated Adaptive Card-style JSON for summary, metric, or table displays. Use this when an agent needs structured UI instead of markdown. - `datachef.display.table` (mcp:read, read) - Return a bounded Adaptive Card-style table JSON block from columns and rows. - `datachef.operator.delete_api_service` (mcp:mutate, destructive) - Delete an API service registry entry. Requires confirm=true. - `datachef.operator.delete_connector` (mcp:mutate, destructive) - Delete a connector and its linked datasets. Requires confirm=true. - `datachef.operator.delete_dataset` (mcp:mutate, destructive) - Delete a DataChef dataset. Requires confirm=true. - `datachef.forms.check_drift` (mcp:query, read) - Compare a saved Smart Form definition with the current source shape and return added, removed, and changed fields. - `datachef.forms.discover` (mcp:read, read) - List Smart Forms, source coverage, modes, published links, intelligence scores, and available definition-driven form workflows. - `datachef.forms.generate` (mcp:query, execute) - Generate a schema-validated Smart Form definition from source inspection, with grouped fields, components, actions, critique, and intelligence score. - `datachef.forms.inspect_source` (mcp:query, execute) - Inspect a dataset, connector resource, API endpoint, or query recipe and return fields, samples, risks, lookup candidates, and repair suggestions. - `datachef.forms.publish` (mcp:mutate, mutate) - Publish a Smart Form as a locked version with DataChef URI and live route. - `datachef.forms.regenerate` (mcp:mutate, mutate) - Regenerate a saved Smart Form draft from the current source shape while preserving published versions. - `datachef.forms.run` (mcp:execute, execute) - Run a read/search/execute Smart Form action. Mutation actions require confirm=true and existing action permits. - `datachef.forms.validate` (mcp:query, read) - Validate a Smart Form definition for component registry, sections, safe action bindings, and mutation confirmation boundaries. - `datachef.query.explain` (mcp:query, execute) - Explain rendered query, source bindings, execution mode, bytes/rows scanned, warnings, and citations. - `datachef.query.plan` (mcp:query, read) - Create a deterministic query plan with source bindings, query text, risks, variables, and the next runnable call. - `datachef.query.profile` (mcp:query, execute) - Run a bounded query and return field profile metrics, chart hints, warnings, truncation state, and citations. - `datachef.query.run` (mcp:query, execute) - Execute SQL/KQL/recipe/federated queries over DataChef datasets and live connector sources. - `datachef.query.save_recipe` (mcp:mutate, mutate) - Save an approved query plan as a DataChef query recipe with variables and time-window defaults. - `datachef.sources.discover` (mcp:read, read) - List datasets, connectors, API services, recipes, schemas, capabilities, row limits, and supported query modes. ## Safety - Hosted DataChef operator pages remain behind app authentication. - MCP runtime calls require `Authorization: Bearer `. - Stored secrets are never returned by discovery docs or source catalog tools. - Destructive mutation tools require `confirm=true`. - Smart Form definitions are versioned and action-audited.