DataMagik MCP API
Plug DataMagik into any AI agent that speaks the Model Context Protocol.
The DataMagik MCP server exposes the full platform — scripts, document templates, lookup tables, dashboards, automations, SQL queries, app designer entries, on-prem connectors (local databases, API bridge, FTP/filesystem), email + templates, schedules, allowed domains, credentials, website content, documentation, and the Plex database schema — to AI tools that speak MCP. If you're building an AI agent, IDE plugin, or LLM-driven workflow that needs to read or modify DataMagik resources on a user's behalf, this is the surface.
Related operations are grouped into action-dispatcher tools: instead of one tool per operation, you call a single tool (e.g. scripts) and pass an action parameter ("action":"create") to pick the operation. This keeps the whole platform under one connector's tool cap. Each family card below lists its actions.
Quick start
- Generate a bearer token on your user profile page under API Keys. Same token authorises both the DataMagik REST API and the MCP server — no second key to manage.
- Point your MCP client at the endpoint below using
Authorization: Bearer <token>. - Start with the
initializehandshake, thentools/list, then call any tool.
Add DataMagik to Claude on the web
Claude on the web connects natively over OAuth — no API key to paste. Add it as a custom connector:
- In Claude, open Settings → Connectors → Add custom connector.
- Paste the MCP server URL below as the connector URL, then click Connect.
- Claude opens a DataMagik sign-in + approval screen. Sign in, review the active tenant shown, then click Approve.
- Done — Claude can now call your tools, and the connection stays signed in via refresh tokens.
https://mcp.data-magik.com/mcpWorking across multiple companies? Ask Claude to "list my companies" or "switch to <company>". The connection remembers the active tenant until you switch again, and DataMagik always tells Claude which tenant is active so it can confirm with you before creating, updating, or deleting anything.
Prefer a key? Use the API key flow below for self-hosted scripts, the REST API, and paste-a-key clients like Claude Desktop — use OAuth for Claude.ai and other hosted connectors.
Endpoint
POST https://mcp.data-magik.com/mcpThe server speaks MCP Streamable HTTP — JSON-RPC 2.0 in, single JSON or SSE stream out depending on the tool.
Authentication
Every request requires an Authorization: Bearer <token> header. The MCP server resolves the bearer into the issuing user's (user_id, company_id) pair and enforces ownership inside every tool: a token for Customer A cannot read or modify Customer B's resources, even if the model requests it.
Rate limit
60 requests per minute per API key, enforced as a sliding window. Every response includes:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset(epoch seconds)
Exceeding the limit returns 429 Too Many Requests with a Retry-After header. Need a higher rate? Contact support.
Initialize handshake
curl -X POST https://mcp.data-magik.com/mcp \
-H 'Authorization: Bearer dm_pat_...' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "my-agent", "version": "1.0.0"}
}
}'List available tools
curl -X POST https://mcp.data-magik.com/mcp \
-H 'Authorization: Bearer dm_pat_...' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'Returns 150+ tools across 16 families. Highlights below.
Tool families
Click a family to see every tool it exposes.
tenant 3 toolsMulti-tenant context. See which company you're acting as, list the companies you can access, and switch the active tenant.
Multi-tenant context. See which company you're acting as, list the companies you can access, and switch the active tenant.
tenant_current Show the active tenant (company) all actions currently affecttenant_list List every company your account can act astenant_switch Switch the active tenant to another company you can accessplex 12 actionsPlex SQL schema browsing + validation (read-only)
Plex SQL schema browsing + validation (read-only)
One tool — call plex with an action parameter set to one of:
list_databaseslist_tablessearch_tablessearch_columnsget_tablefind_relationshipssearchdescribesummaryneighborhoodvalidate_sqljoin_pathplex_api 4 actionsPlex Connect REST API discovery (read-only)
Plex Connect REST API discovery (read-only)
One tool — call plex_api with an action parameter set to one of:
list_productssearchget_productdescribescripts 14 actionsScript Engine: authoring, execution, and version management
Script Engine: authoring, execution, and version management
One tool — call scripts with an action parameter set to one of:
get_api_referencelistcreategetupdatedeleteexecutetest_runget_execution_statuslist_executionswait_for_executionlist_versionscreate_versionvalidate_syntaxschedules 10 actionsScript schedules: cron-based scheduling of scripts
Script schedules: cron-based scheduling of scripts
One tool — call schedules with an action parameter set to one of:
listcreategetupdatedeletetogglehistoryvalidate_cronrun_nowcancel_queuecredentials 4 actionsCompany-wide script credentials (values scrubbed/encrypted)
Company-wide script credentials (values scrubbed/encrypted)
One tool — call credentials with an action parameter set to one of:
listcreateupdatedeleteallowed_domains 3 actionsScript HTTP domain whitelist
Script HTTP domain whitelist
One tool — call allowed_domains with an action parameter set to one of:
listaddremovesql 8 actionsSQL/ODBC query editor
SQL/ODBC query editor
One tool — call sql with an action parameter set to one of:
list_queriescreate_queryget_queryupdate_querydelete_queryexecutetest_runget_execution_statuslocal_db 8 actionsLocal SQL databases (PostgreSQL/MySQL/SQL Server on the customer's network via the connector agent)
Local SQL databases (PostgreSQL/MySQL/SQL Server on the customer's network via the connector agent)
One tool — call local_db with an action parameter set to one of:
list_connectionslist_tablesdescribe_tablequerycreateupdatedeletetestbridge 7 actionsAPI bridge: registered local HTTP resources reachable through the connector agent. Each resource is a base_url allowlist root with allowed methods
API bridge: registered local HTTP resources reachable through the connector agent. Each resource is a base_url allowlist root with allowed methods
One tool — call bridge with an action parameter set to one of:
listgetcreateupdatedeletetestcallftp_connectors 7 actionsFTP/SFTP/FTPS connectors reached through the connector agent
FTP/SFTP/FTPS connectors reached through the connector agent
One tool — call ftp_connectors with an action parameter set to one of:
listgetcreateupdatedeletetesttogglefilesystem_connectors 6 actionsFilesystem connectors (a base path on the connector host / a mounted share)
Filesystem connectors (a base path on the connector host / a mounted share)
One tool — call filesystem_connectors with an action parameter set to one of:
listgetcreateupdatedeletetoggleconnector_agents 8 actionsConnector agents and sites
Connector agents and sites
One tool — call connector_agents with an action parameter set to one of:
liststatussites_listsite_createsite_deletegenerate_tokendeleteupdate_sitelookup_tables 6 actionsLookup table definitions + runtime lookups
Lookup table definitions + runtime lookups
One tool — call lookup_tables with an action parameter set to one of:
listcreategetupdatedeleteby_keylookup_entries 4 actionsLookup table entries: add, bulk_add, update, delete
Lookup table entries: add, bulk_add, update, delete
One tool — call lookup_entries with an action parameter set to one of:
addbulk_addupdatedeletedocumentation 5 actionsDocumentation pages: list, get, create, update, delete
Documentation pages: list, get, create, update, delete
One tool — call documentation with an action parameter set to one of:
listgetcreateupdatedeletedoc_templates 14 actionsDocument templates: core lifecycle + discovery
Document templates: core lifecycle + discovery
One tool — call doc_templates with an action parameter set to one of:
listgetget_editorcreateduplicatedeleteupdate_typegeneration_optionslist_generatedzpl_list_serieszpl_series_examplezpl_list_lookup_tableszpl_lookup_datazpl_lookup_by_keydoc_templates_authoring 7 actionsAuthor a document template's content
Author a document template's content
One tool — call doc_templates_authoring with an action parameter set to one of:
authorpatchcommitdraft_listdraft_getdraft_deletedraft_savedoc_templates_versions 14 actionsTemplate version lifecycle, branches, and history
Template version lifecycle, branches, and history
One tool — call doc_templates_versions with an action parameter set to one of:
listgetactivateinactivatereactivatedeleterollbacklist_branchesbranch_createbranch_mergebranch_deletechangelogcompareauditdoc_templates_settings 10 actionsDocument-template settings + company defaults + categories
Document-template settings + company defaults + categories
One tool — call doc_templates_settings with an action parameter set to one of:
get_settingsupdate_settingsset_header_footerget_company_defaultsupdate_company_defaultslist_header_footerget_company_header_footerupdate_company_header_footerlist_categoriescreate_categorydoc_templates_export 9 actionsCustom-export (CSV/Excel/XML/JSON/fixed-width) config + simple-text
Custom-export (CSV/Excel/XML/JSON/fixed-width) config + simple-text
One tool — call doc_templates_export with an action parameter set to one of:
get_configupdate_configpreviewdiscover_fieldsget_draftget_versionlist_branchesupdate_simple_text_configpreview_simple_textdoc_templates_generate 6 actionsRender + deliver generated documents
Render + deliver generated documents
One tool — call doc_templates_generate with an action parameter set to one of:
generatepreviewpreview_chromedpstatusgenerated_getpublic_getdoc_templates_approval 5 actionsApproval workflow to promote a template version from 'dev' to production 'main' (works for HTML documents AND custom-export configs)
Approval workflow to promote a template version from 'dev' to production 'main' (works for HTML documents AND custom-export configs)
One tool — call doc_templates_approval with an action parameter set to one of:
requestlistapproverejectwithdrawapps 16 actionsApp Designer: app lifecycle, authoring, and discovery
App Designer: app lifecycle, authoring, and discovery
One tool — call apps with an action parameter set to one of:
listcreategetupdatedeleteget_componentlist_data_flowspatchauthorlist_templatesget_templatelist_examplesinstall_exampleget_menu_treelist_user_appsby_screen_contextapps_versions 8 actionsApp Designer version lifecycle
App Designer version lifecycle
One tool — call apps_versions with an action parameter set to one of:
listgetsave_versioncomparechangelogrollback_versionpublish_spaspa_manifestapps_approvals 5 actionsApp Designer approval workflow (draft → approve → publish)
App Designer approval workflow (draft → approve → publish)
One tool — call apps_approvals with an action parameter set to one of:
requestapproverejectwithdrawlistapps_execution 7 actionsApp Designer runtime: headless runs, execution logs, permissions
App Designer runtime: headless runs, execution logs, permissions
One tool — call apps_execution with an action parameter set to one of:
run_componentpreview_runtime_valueslist_logsget_loglog_statsverify_permissionlist_permissionsapps_data 4 actionsApp Designer grid data writes + capture references
App Designer grid data writes + capture references
One tool — call apps_data with an action parameter set to one of:
import_rowssave_table_rowcapture_readcapture_writeapps_reports 9 actionsApp Designer non-email report outputs + serial/print bridge
App Designer non-email report outputs + serial/print bridge
One tool — call apps_reports with an action parameter set to one of:
rendergrid_pdfexport_excelserial_previewserial_generateserial_generate_batchprint_submitprint_statusprint_list_printersapps_menu_links 8 actionsApp Designer menu folders + app↔automation-action links
App Designer menu folders + app↔automation-action links
One tool — call apps_menu_links with an action parameter set to one of:
folder_listfolder_createfolder_updatefolder_deletelink_listlink_createlink_updatelink_deleteautomations 10 actionsAutomations: parent lifecycle, screens, execution, and picker/table lookups
Automations: parent lifecycle, screens, execution, and picker/table lookups
One tool — call automations with an action parameter set to one of:
listcreategetdeleteadd_screenlist_screensexecuteget_execution_statusaction_tablespickersautomations_actions 5 actionsAutomation
Automation
One tool — call automations_actions with an action parameter set to one of:
creategetupdatedeletelistautomations_questions 5 actionsAutomation questions: prompts shown to users before execution
Automation questions: prompts shown to users before execution
One tool — call automations_questions with an action parameter set to one of:
listcreateupdatedeletechoicesdashboards 10 actionsDashboards: lifecycle, settings, versioning, and discovery
Dashboards: lifecycle, settings, versioning, and discovery
One tool — call dashboards with an action parameter set to one of:
listcreategetupdatedeleteupdate_settingstoggleget_versionexportby_screen_contextdashboards_data 4 actionsDashboard data: execute data sources and author webhook sources
Dashboard data: execute data sources and author webhook sources
One tool — call dashboards_data with an action parameter set to one of:
get_dataget_element_datatest_webhooklist_credentialsdashboard_links 4 actionsDashboard ↔ automation-action links (screen-context launch)
Dashboard ↔ automation-action links (screen-context launch)
One tool — call dashboard_links with an action parameter set to one of:
listcreateupdatedeleteproduct_pages 5 actionsMarketing-site product pages (Admin only)
Marketing-site product pages (Admin only)
One tool — call product_pages with an action parameter set to one of:
listgetcreateupdatedeleteblogs 5 actionsMarketing-site blog posts (Admin only)
Marketing-site blog posts (Admin only)
One tool — call blogs with an action parameter set to one of:
listgetcreateupdatedeletecontacts 6 actionsInbound contact submissions (Admin only)
Inbound contact submissions (Admin only)
One tool — call contacts with an action parameter set to one of:
listgetmark_readmark_spamset_statusdeletepricing_leads 4 actionsInbound pricing/demo leads (Admin only)
Inbound pricing/demo leads (Admin only)
One tool — call pricing_leads with an action parameter set to one of:
listgetmark_converteddeletewebsite_content 7 actionsRich authoring loop for marketing-site content — product pages, blog posts, docs (Admin only)
Rich authoring loop for marketing-site content — product pages, blog posts, docs (Admin only)
One tool — call website_content with an action parameter set to one of:
product_patchblog_patchdocs_patchproduct_authorblog_authordocs_authordesign_systememail 5 actionsEmail sending + delivery for the ACTIVE tenant
Email sending + delivery for the ACTIVE tenant
One tool — call email with an action parameter set to one of:
send_with_templatesendsend_statushistoryprofiles_listemail_templates 7 actionsManage reusable, managed email templates for the ACTIVE tenant
Manage reusable, managed email templates for the ACTIVE tenant
One tool — call email_templates with an action parameter set to one of:
listgetcreateupdatedeleteduplicatesend_testusage 3 toolsUsage reporting: current-period usage and metrics over time.
Usage reporting: current-period usage and metrics over time.
usage_current Current billing-period usage for the active tenantusage_metrics Usage metrics over a time rangeusage_dashboard_data Aggregated data for the usage dashboardWrite-tool approval flow
Tools that mutate state (anything with verbs like _create / _update / _delete) are recorded to the ai_audit_log table with the calling user_id, company_id, tool name, arguments, and outcome. Tools called from the in-product chat additionally require the user to click Approve on a preview card before they execute. External MCP clients do not get the preview UI — the audit log is the authoritative record.
Discovery
A discovery document is published at /.well-known/mcp:
curl https://mcp.data-magik.com/.well-known/mcpReturns the endpoint URL, transport name, auth scheme, and a pointer to this docs page. MCP-aware clients can use this for auto-configuration.
Compatibility
- MCP protocol version:
2024-11-05 - SDK: @modelcontextprotocol/sdk ^1.12
- Transport: Streamable HTTP (POST
/mcp) with optional SSE responses. Stdio transport not exposed publicly.
Need help?
The companion in-product AI assistant uses this same MCP server. If you can't get a tool call working, ask the in-product chat — it has access to the same tools and can debug alongside you.