AI agents & MCP

Let your AI assistant work with your business data, on your terms

Claude and other MCP-capable agents connect to your Data Lake with a revocable key, answer questions from all your systems and — if you allow it — operate the platform itself, under the same permissions and audit trail as any other client.

# the agent asks the data plane
read_records  entity=account  $filter=Region eq 'West'
aggregate     entity=orders   sum(Total) by Month
# with an admin key, it can operate the platform too
create_table  set_entity_exposure  restart_dab
# and the same tools from your own shell
$ dlake tool aggregate --entity orders --profile acme

What is MCP, and why does it matter here?

In plain wordsMCP is a standard plug that lets an AI assistant use tools and data. The Data Lake offers that plug, so an agent can work with your data without anyone building a custom integration.

The CLI is a complete peer of the MCP connector — every tool is callable as dlake tool <name> or dlake admin <name>, which is why the same skills serve both. One key decides which of the two planes a caller reaches, and the rules underneath both are enforced in SQL Server rather than by whichever client is asking.

How a caller reaches the data, and where the rules are enforcedAn app, the dlake command line or an AI agent all present the same API key. The key decides which of the two planes they can use — the data plane for rows, the admin plane for operating the platform — and both planes end at the Data Lake, where the caller's role and row-level security are enforced inside SQL Server.App or reportdlake CLIAI agent (MCP)API keyrevocableData planedlake toolAdmin planedlake adminData Lakerole + RLSRole and row-level security are enforced inside SQL Server, for every caller.
One key, two planes, and the rules underneath both.

Data plane

Work with rows

Read, write, query, aggregate, export and look at history — for the entities you have exposed, and no others.

dlake tool list shows what your key allows.

Admin control plane

Operate the platform

Define schema, expose entities, mint keys, restart the Data API, manage security and events, drive the sync products.

dlake admin list — admin keys only.

How agents connect and what keeps them safe

Connect Claude Code

One command adds the Data Lake as an MCP server. The key is a complete authentication on its own, so there is no OAuth, no client registration and no callback URL to arrange — the same is true of the dlake CLI, editor clients and your own apps. dlake keys create mints an unscoped key and prints it once; a scoped key comes from the DAB & API Keys page or dlake admin create_api_key --scope @scope.json.

# your key is <tenant>:dlk_... - mint one with dlake keys create
$ claude mcp add --transport http datalake https://datalake-ms-dab.commercient.com/mcp --header "X-API-Key: acme:dlk_..."

Connect the admin control plane

A second, separate connection for configuring the lake. It never reads or writes table data — that stays on the data plane — and it is worth adding as its own server so an everyday key cannot reach it.

# optional second server - needs a full-scope key minted by an Admin user
$ claude mcp add --transport http datalake-admin https://datalake-ms-dab.commercient.com/admin --header "X-API-Key: acme:dlk_..."

Claude Desktop and claude.ai

Add a custom connector

These are hosted connector interfaces and cannot send a custom header, so they sign in through OAuth instead. It collects the same key and hands back a token standing for it, so it grants nothing extra. Use the same URLs, and name the connectors Commercient Data Lake \ Data Hub for the data plane and Commercient Data Lake \ Data Hub Admin for the admin plane.

Data plane

https://datalake-ms-dab.commercient.com/mcp

Admin control plane

https://datalake-ms-dab.commercient.com/admin

Generic or per-tenant URL

Both forms reach the same tools; the only difference is who names the tenant. The generic URL carries no tenant in the path and resolves it from the credential — a composite X-API-Key: <tenant>:dlk_..., or an X-Tenant: <slug> header sent with a plain dlk_ key.

PlaneGeneric URLPer-tenant URL
Data planehttps://datalake-ms-dab.commercient.com/mcphttps://datalake-ms-dab.commercient.com/auth/{tenant}/mcp
Admin control planehttps://datalake-ms-dab.commercient.com/adminhttps://datalake-ms-dab.commercient.com/auth/{tenant}/admin
  • Generic is one connector definition for any customer: hand out a single URL and the key identifies the tenant.
  • Per-tenant when the tenant is fixed — and with OAuth it also pre-selects that tenant on the authorize page.
  • Per-tenant when one client needs several Data Lake tenants connected at once: clients dedupe connectors by normalized URL, so each tenant needs its own distinct URL to live as a separate connector.

Once connected, an agent can fetch the documentation itself: get_help_docs, get_api_guide, list_skills and get_skill. The CLI equivalents are dlake guide help and dlake guide api.

The 20 bundled agent skills

In plain wordsEach skill is a capability summary of one Commercient integration. Install them all with one command; whitelisted customers fetch the operating guides from the admin plane.

dlake skills install
dlake skills show dlake

Skills ship inside the CLI and update with it, so dlake skills install after every upgrade refreshes the copies on disk (add --skip-existing to keep local edits). Catalogue last changed 9 Oct 2026. Browse the skills folder on GitHub ↗

The sync round trip between your ERP and your CRMThe Commercient Sync Agent reads your on-premises ERP into the Data Lake. CRMPro pushes from the Data Lake into your CRM. TxDownloaderPro carries changes made in the CRM back through the Data Lake to the ERP, closing the loop.Your ERPon your serverData LakeYour CRMHubSpot, Salesforce,Zoho, Dynamics, moreSync AgentCRMProTxDownloaderPro — writeback
Three of the five skill families follow this loop: the agent into the ERP, into the CRM, and back again.

Build and operate a tenant2 skills

In plain wordsStart here: the everyday skill for an existing Data Lake, and the one that stands up a brand-new integration.

SkillWhat it coversERP pages
dlake-integration-setupCapability summary of the Commercient Integration Setup integration for your ERP and your CRM. Not an operating guide.—
dlakeCapability summary of the Commercient Data Lake integration for your ERP. Not an operating guide.—

Bring data in (sync products)3 skills

In plain wordsWhich ERP tables are cloned, and the agents for sources that are not SQL Server or that are APIs.

SkillWhat it coversERP pages
dlake-apisyncCapability summary of the Commercient Generic API Sync integration for your ERP. Not an operating guide.—
dlake-normalsyncCapability summary of the Commercient Normal Sync integration for your ERP. Not an operating guide.—
dlake-odbcsyncCapability summary of the Commercient ODBC Sync integration for your ERP. Not an operating guide.—

Push data to a CRM (CRMPro)8 skills

In plain wordsThe forward sync from your ERP into HubSpot, Salesforce, Shopify, Zoho, Dynamics, MDC or Magento, with one page per source ERP.

SkillWhat it coversERP pages
dlake-crmpro-dynamicscrmCapability summary of the Commercient CRMPro integration for your ERP and Dynamics CRM. Not an operating guide.19
dlake-crmpro-hubspotCapability summary of the Commercient CRMPro integration for your ERP and HubSpot. Not an operating guide.89
dlake-crmpro-magentoCapability summary of the Commercient CRMPro integration for your ERP and Magento. Not an operating guide.7
dlake-crmpro-mdcCapability summary of the Commercient CRMPro integration for your ERP and MDC. Not an operating guide.11
dlake-crmpro-salesforceCapability summary of the Commercient CRMPro integration for your ERP and Salesforce. Not an operating guide.105
dlake-crmpro-shopifyCapability summary of the Commercient CRMPro integration for your ERP and Shopify. Not an operating guide.24
dlake-crmpro-zohocrmCapability summary of the Commercient CRMPro integration for your ERP and Zoho CRM. Not an operating guide.27
dlake-crmproCapability summary of the Commercient CRMPro integration for your ERP and your CRM. Not an operating guide.—

Write changes back (TxDownloaderPro)6 skills

In plain wordsThe return leg: changes made in the CRM travel back to the source system.

SkillWhat it coversERP pages
dlake-txdownloaderpro-dynamicscrmCapability summary of the Commercient TxDownloaderPro integration for your ERP and Dynamics CRM. Not an operating guide.18
dlake-txdownloaderpro-hubspotCapability summary of the Commercient TxDownloaderPro integration for your ERP and HubSpot. Not an operating guide.67
dlake-txdownloaderpro-salesforceCapability summary of the Commercient TxDownloaderPro integration for your ERP and Salesforce. Not an operating guide.69
dlake-txdownloaderpro-shopifyCapability summary of the Commercient TxDownloaderPro integration for your ERP and Shopify. Not an operating guide.22
dlake-txdownloaderpro-zohocrmCapability summary of the Commercient TxDownloaderPro integration for your ERP and Zoho CRM. Not an operating guide.30
dlake-txdownloaderproCapability summary of the Commercient TxDownloaderPro integration for your ERP and your CRM. Not an operating guide.—

On the customer's own server1 skill

In plain wordsThe Windows agent that actually reads the source ERP; the other half of every setup.

SkillWhat it coversERP pages
dlake-syncagentCapability summary of the Commercient Sync Agent integration for your ERP. Not an operating guide.—

Where skills are installed4 harnesses

HarnessSkills directory
Claude Code / Cowork.claude/skills/<skill>/ (per project) or ~/.claude/skills/<skill>/ (global)
OpenAI Codex~/.codex/skills/<skill>/ or your project's skills directory
OpenCode.opencode/skill/<skill>/
Other harnesseswherever the harness discovers skills; keep the <skill>/SKILL.md layout intact

dlake skills install auto-detects these locations. Confirm the exact path against your harness's own documentation.

Questions about AI agents

What is MCP?

MCP (Model Context Protocol) is an open standard that lets an AI assistant such as Claude connect to external tools and data. Commercient Data Lake exposes MCP connectors, so an agent can query your data and, with the right key, operate the platform, using the same permissions and audit trail as any other client.

How do I connect Claude Code?

One command: claude mcp add --transport http datalake https://datalake-ms-dab.commercient.com/mcp --header "X-API-Key: <tenant>:dlk_...". The composite key is a complete authentication on the generic URL, so no OAuth, client registration or callback URL is needed. Add the admin control plane as a second server on the /admin path if you want an agent to configure the lake; that one needs a full-scope key minted by an Admin user.

What can an AI agent actually do with my data lake?

On the data plane it can read and write records, run read-only SQL queries, aggregate, export, ingest files and look at time-travel history for the entities you have exposed. On the admin control plane it can define schema, expose entities, manage keys and drive the sync products. Run dlake tool list and dlake admin list to see exactly which tools your key can use.

What are agent skills?

Skills are capability summaries: each one says what a Commercient integration does for the business and who can get the operating guide; none of them is an operating guide. They ship inside the CLI. dlake skills install writes them where your agent harness looks (Claude Code, Codex, OpenCode and others), and dlake skills show <name> prints one. Registered, whitelisted Commercient customers fetch the operational skills from the admin plane with dlake admin get_skill <name>, or list them with list_skills.

Can an agent sign up for a Data Lake on my behalf?

Signing up is deliberately a human step. dlake register start takes a password and three affirmation flags (that you have backed up your CRM and ERP data, and that you consent to phone contact). The CLI help states that agents must ask the human and never pass these on their own initiative. Once the Data Lake is seeded, the rest of the setup wizard can be driven over MCP.

How do I limit what an agent can see?

Mint a scoped API key with dlake admin create_api_key and a scope file listing the entities and actions it may use, then run dlake admin restart_dab --confirm true. Row-level security adds per-row rules on top, and revoking a key takes effect immediately.