Use maxclicks in Cursor
Give Cursor the workspace context it needs to build your maxclicks integration. Use MCP for callable API tools and agent skills for the data model and conventions. Begin with reads before changing records or sending email.
| Option | What the agent gets | Add it in |
|---|---|---|
| MCP server | Tools that map to the Public API v1, callable directly. | .cursor/mcp.json |
| maxclicks skill | 13 skills that teach the data model, the maxclicks CLI, and the SDKs. | npx skills add or the plugin marketplace |
The existing SDK, CLI, and MCP tools cover an earlier API surface. Use the current REST contract for event readiness/identities, deletion polling, workflow history, and new idempotent operations; see client coverage.
Get an API key
Create a key at app.maxclicks.ai/space/-/settings/developers. A key is scoped to one space. Some operations need an admin key (suppressions). Keys are created in the app, not over the API. Never commit the key.
Add the MCP server
Cursor reads MCP servers from .cursor/mcp.json in a project, or ~/.cursor/mcp.json for every project. Add a maxclicks entry, then reload the window.
Remote (hosted)
Point at the streamable HTTP endpoint and send the key as a bearer token.
.cursor/mcp.json
{
"mcpServers": {
"maxclicks": {
"url": "https://mcp.maxclicks.ai/mcp",
"headers": { "Authorization": "Bearer max_..." }
}
}
}
Local (stdio)
Run the server from npm with the key in the environment. No install step: npx fetches it.
maxclicks-mcp is not published to npm, so npx has nothing to fetch and
this config does not start a server today. Use the remote entry above.
.cursor/mcp.json
{
"mcpServers": {
"maxclicks": {
"command": "npx",
"args": ["-y", "maxclicks-mcp"],
"env": { "MAXCLICKS_API_KEY": "max_..." }
}
}
}
Tools
The tools cover records, events, segments, webhooks, suppressions, workflow triggers and runs, template sends, and broadcast sends and metrics. They can also read (but not change) your schemas, attributes, domains, senders, and topics.
Create schemas, attributes, templates, broadcasts and sending settings in the maxclicks app, then use the supported tools to read definitions and act on prepared work. Broadcast operations can update supported fields such as the name, audience or schedule and request a send. The current API reference defines the available operations; use direct HTTP when the MCP tools do not yet wrap one. Review the saved campaign and its readiness before requesting execution.
Call list_schemas and list_attributes to learn how your data is shaped, then write records with upsert_record. Confirm the connection with whoami: it returns the key, who owns it, and which space it belongs to.
Every call belongs to a schema, and records are flat. Put base fields and your
own attribute keys at the top level of a record, not nested under a data
key. If you write a key the schema does not define, it is dropped and returned
as a warning, not an error.
Add the maxclicks skill
The skill teaches Cursor's agent how to work with maxclicks: how to authenticate, how your schemas shape every call, when to reach for the CLI or an SDK, and which mistakes to avoid. It follows the open Agent Skills standard, so Cursor loads it like any other skill.
Install the skills
npx skills add https://maxclicks.aiThis reads
https://maxclicks.ai/.well-known/skills/index.jsonand installs the skills. Update later withnpx skills update -y. Alternatively, add the Claude Code plugin marketplace, which Cursor also reads:claude plugin marketplace add maxclicks-ai/maxclicks-aiInstall the CLI
The skills run terminal operations through the
maxclicksCLI.npm install -g maxclicks-cli maxclicks config set-key max_...Or set
MAXCLICKS_API_KEYin the environment instead ofconfig set-key.maxclicks-cliis not published to npm, so this install does not resolve. Use the Public API or the hosted MCP server until it ships.Confirm the space
maxclicks whoami
Installing the umbrella maxclicks skill pulls the full set. Each skill loads on the task that matches it.
| Skill | Loads for |
|---|---|
maxclicks | The entry point: auth, the data model, and the CLI/SDK/API map. |
maxclicks-contacts | Creating, updating, or deleting contacts and objects. |
maxclicks-events | Firing and listing events. |
maxclicks-email | Sending templates and managing suppressions. |
maxclicks-templates | How a template's data shape, recipient path, and sender fit together before a send. |
maxclicks-adaptyle | Writing a template's content in Adaptyle over Liquid. |
maxclicks-segments | Building AI-generated contact filters. |
maxclicks-broadcasts | Scheduling and sending broadcasts, and reading their runs and metrics. |
maxclicks-deliverability | Sending domains and saved senders, set up in the app and read over the API. |
maxclicks-topics | Communication topics and the consent they carry. |
maxclicks-imports | The app's bulk CSV import of contacts or objects. |
maxclicks-workflows | Triggering workflows and observing runs. |
maxclicks-webhooks | Managing outgoing webhooks and verifying signatures. |
Which to use
Use the MCP server when you want Cursor's agent to call maxclicks directly inside chat, with no shell. Use the skill when the agent is writing code or running terminal commands, because it drives the CLI and the SDKs and carries the rules about how your data is shaped. You can use both: the skill can point at the MCP server, and they read the same API key.
Build
Once either path is connected, ask Cursor to discover the schema before writing. A typical first task:
maxclicks whoami
maxclicks schemas list --type contact
maxclicks attributes list students
maxclicks records upsert students --data '{"email":"[email protected]","firstName":"Ada"}'