Skip to content

Connect An MCP Client

The Automation Suite is the local part of Daeda AI.

It runs as an MCP server (@daeda/mcp-pro) on your machine and syncs portal data into a local DuckDB database. Your AI client then reads that local database through MCP tools and proposes Write Plans for review inside Daeda AI.

RequirementWhy it matters
A HubSpot portal with Daeda AI installedDaeda AI is the admin surface for the Automation Suite
An MCP license key from Daeda AIThe local client uses it to register
Node.js 20 or newer@daeda/mcp-pro requires Node 20+
An MCP-compatible clientClaude Code, Cursor, and other MCP clients work

Go to the Daeda AI settings page in HubSpot.

Open Master Settings.

Create a license key in the MCP License Keys section.

If you want to query a different HubSpot portal, connect it first from Master Settings.

Select the data scopes you want.

Generate the install link.

Open that link on the target portal and approve the scopes.

Choose scopes based on the work you want the Automation Suite to do.

Scope typeNeeded for
Read scopesQuerying CRM objects and metadata
Write scopesWrite Plans that create, update, delete, or merge records
Schema write scopesProperty, property-group, and custom-schema changes
Workflow and sequence scopesWorkflow metadata, triggers, and automation-related operations

If you request too few scopes, reads may be partial and some Write Plans will pause for re-authorisation.

Run:

Terminal window
claude mcp add --transport stdio --env DAEDA_LICENSE_KEY=your-license-key mcp-pro -- npx -y @daeda/mcp-pro

Replace your-license-key with the key from Daeda AI.

Use the same package:

SettingValue
Commandnpx
Args-y @daeda/mcp-pro
Env varDAEDA_LICENSE_KEY=your-license-key

Example JSON:

{
"mcpServers": {
"mcp-pro": {
"command": "npx",
"args": ["-y", "@daeda/mcp-pro"],
"env": {
"DAEDA_LICENSE_KEY": "your-license-key"
}
}
}
}
StepWhat happens
1The local MCP client starts over stdio
2It registers with your license key
3The server returns the connected HubSpot portals and the local encryption key
4If this is the first real use and no paid plan is active, the free trial can start now
5The client creates a local per-portal DuckDB database
6It requests the latest artifact inventory for the selected portal
7It downloads and ingests artifact-backed data
8It starts live watch behaviour for the selected portal

By default, local portal data is stored under:

PathPurpose
~/.daeda-mcp/portals/<portalId>/hubspot.duckdbLive local DuckDB database
~/.daeda-mcp/portals/<portalId>/hubspot.replica.duckdbPublished read replica
~/.daeda-mcp/portals/<portalId>/portal_data.jsonLocal artifact and plugin sync state

After the MCP client connects, verify in this order.

In Claude Code, run /mcp.

You should see mcp-pro connected.

Ask your AI client to call:

status(section="connection")

Look for:

FieldWhat you want
connectionStateConnected
selectedPortalIdA real portal ID
portalsThe portals you expect to see

If you have more than one connected portal, call:

set_portal(portalId=<your portal id>)

If only one portal is connected, it is usually auto-selected.

Call:

status(section="schema")

This is the main health check.

It shows the local database structure, table availability, plugin freshness, and refresh jobs.

Call:

query(sql="SELECT id, json_extract_string(properties, '$.firstname') AS firstname FROM contacts LIMIT 5")

If your portal has contacts and the contact scope was granted, this should return rows.

ToolWhat it does
set_portalChoose the default portal
statusInspect connection, schema, freshness, and metadata
queryRun read-only SQL against the local DuckDB mirror
chartTurn query results into a chart
configure_sync_controlsEnable or disable sync by portal or artifact
refresh_pluginsRefresh lightweight plugin-backed metadata
describe_operationsDiscover write operation types
build_planDraft a Write Plan
submit_planValidate or submit a Write Plan
get_plansList prior Write Plans

The Automation Suite supports more than one connected client portal.

Automation Suite Multi-Portal

SituationWhat to do
One connected portalIt is usually auto-selected
Multiple connected portalsUse set_portal before querying
Need to query many portalsUse tool calls with explicit portalIds

Portal sync can be enabled or disabled per portal.

Artifact sync can also be disabled for specific object types.

StateMeaning
Portal sync enabledThe Automation Suite keeps artifact-backed data fresh for that portal
Portal sync disabledReads use stale local data only, if local data already exists
Artifact disabledThat object type stops receiving new artifact work

Two data systems exist in the local database.

Data typeFreshness model
Artifact-backed dataManaged automatically for normal reads
Lightweight plugin-backed dataNot real-time; refresh it manually when current values matter

Read this next:

How The Local Read Database Works

ProblemLikely causeFix
mcp-pro does not connectNode version or bad configCheck Node 20+, command, args, and env
Invalid license keyWrong key or revoked keyGenerate a fresh key in Daeda AI
No portals returnedNo connected client portalsConnect a portal in Daeda AI
Query says no data yetInitial artifact sync still runningWait, then re-run status(section="schema")
Query returns stale metadataPlugin-backed table was not refreshedRun refresh_plugins, then poll status(section="schema")
Registration blockedTrial expired and no paid planChoose a paid plan in Daeda AI

For shared project configs, store the MCP config in the repo but keep the key in an environment variable.

Example:

{
"mcpServers": {
"mcp-pro": {
"command": "npx",
"args": ["-y", "@daeda/mcp-pro"],
"env": {
"DAEDA_LICENSE_KEY": "${DAEDA_LICENSE_KEY}"
}
}
}
}
Next guideUse it for
How The Local Read Database WorksUnderstand artifacts, plugins, freshness, and refresh rules
TroubleshootingDiagnose setup, sync, and refresh issues
Custom ObjectsThe supported workflow for creating and using custom objects