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.
A HubSpot portal with Daeda AI installed
Daeda AI is the admin surface for the Automation Suite
An MCP license key from Daeda AI
The local client uses it to register
@daeda/mcp-pro requires Node 20+
Claude Code, Cursor, and other MCP clients work
Go to the Daeda AI settings page in HubSpot.
Open .
Create a license key in the section.
If you want to query a different HubSpot portal, connect it first from .
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.
Querying CRM objects and metadata
Write Plans that create, update, delete, or merge records
Property, property-group, and custom-schema changes
Workflow and sequence scopes
Workflow 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:
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:
DAEDA_LICENSE_KEY=your-license-key
Example JSON:
{
"mcpServers": {
"mcp-pro": {
"command": "npx",
"args": ["-y", "@daeda/mcp-pro"],
"env": {
"DAEDA_LICENSE_KEY": "your-license-key"
}
}
}
}
The local MCP client starts over stdio
It registers with your license key
The server returns the connected HubSpot portals and the local encryption key
If this is the first real use and no paid plan is active, the free trial can start now
The client creates a local per-portal DuckDB database
It requests the latest artifact inventory for the selected portal
It downloads and ingests artifact-backed data
It starts live watch behaviour for the selected portal
By default, local portal data is stored under:
~/.daeda-mcp/portals/<portalId>/hubspot.duckdb
Live local DuckDB database
~/.daeda-mcp/portals/<portalId>/hubspot.replica.duckdb
~/.daeda-mcp/portals/<portalId>/portal_data.json
Local artifact and plugin sync state
First Verification
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:
The 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:
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.
Choose the default portal
Inspect connection, schema, freshness, and metadata
Run read-only SQL against the local DuckDB mirror
Turn query results into a chart
Enable or disable sync by portal or artifact
Refresh lightweight plugin-backed metadata
Discover write operation types
Validate or submit a Write Plan
The Automation Suite supports more than one connected client portal.
Automation Suite Multi-Portal
It is usually auto-selected
Multiple connected portals
Use set_portal before querying
Need to query many portals
Use tool calls with explicit portalIds
Portal sync can be enabled or disabled per portal.
Artifact sync can also be disabled for specific object types.
The Automation Suite keeps artifact-backed data fresh for that portal
Reads use stale local data only, if local data already exists
That object type stops receiving new artifact work
Two data systems exist in the local database.
Managed automatically for normal reads
Lightweight plugin-backed data
Not real-time; refresh it manually when current values matter
Read this next:
Node version or bad config
Check Node 20+, command, args, and env
Generate a fresh key in Daeda AI
No connected client portals
Connect a portal in Daeda AI
Initial artifact sync still running
Wait, then re-run status(section="schema")
Query returns stale metadata
Plugin-backed table was not refreshed
Run refresh_plugins, then poll status(section="schema")
Trial expired and no paid plan
Choose 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}"
}
}
}
}
Understand artifacts, plugins, freshness, and refresh rules
Diagnose setup, sync, and refresh issues
The supported workflow for creating and using custom objects