Ambrose
MMike

Agents

Your AI entities — each with its own identity, brand voice, personality, and memory. Create an agent (or generate it from your website in one click), connect its tools, then attach a Routine to tell it exactly what to do and when. It runs the task on schedule, using everything it knows about your brand.

Select an agent

Edit their identity, memory, and the tools they can reach. Connect them to any external system.

Generate this agent from your website
Enter your business URL and what this agent should do — AI writes the description and every persona file for you.
Agent Key
Unique 8-char key that identifies this agent across every webhook URL below. One key, many platforms. Immutable.
────────

Connect this agent to any system

Universal URLs work with anything. Shortcuts skip payload-mapping for popular platforms. Every URL here embeds the agent key above — paste the URL exactly.
Universal — works with any platform
Pre-built shortcuts (optional convenience for these specific tools)

📨 Send instructions via webhook

Drive any action by passing a plain-English instruction. In a GoHighLevel Workflow → Send Webhook step (or any webhook caller), POST to the GHL Workflow URL above with these fields under customData:
ParameterRequiredWhat it does
instructionsYesPlain-English directive the AI executes — e.g. "Send a friendly appointment-reminder SMS, then tag the contact 'reminded'." The AI plans & runs the actions (SMS, email, tags, custom fields, notes, pipeline moves).
contact_idAutoThe GHL contact the action applies to — GHL fills this automatically in a workflow.
default_modelNoOverride the AI model (else the agent/team default).
provider_routeNobedrock (default — billed in credits) or anthropic (your own key).
Example webhook body:
{
  "customData": {
    "instructions": "Send a warm appointment-reminder SMS for tomorrow 2pm, then add the tag 'reminder-sent'."
  }
}
Tip: be specific — name the action and the details. Without instructions, the agent auto-drafts an email + SMS. Every webhook run logs to the Logs tab and deducts credits when on Bedrock.
Expose this agent

Use this agent as an MCP server

Pick how the client authenticates, then paste the URL or config block. OAuth is the easiest path for Claude Code, Claude.ai, and Cursor. API key is for VAPI MCP, scripts, and anything headless.
Claude Code, Claude.ai, and Cursor discover OAuth automatically on first connection. Dynamic Client Registration mints a client_id for them on the fly — you don't copy any secret. The user clicks an in-browser consent screen the first time and the token is stored securely on their device.
MCP URL
Loading…
One-line Claude Code install
Loading…
~/.claude.json (OAuth — no headers needed)
Loading…
How to connect
  1. Open a terminal in your project (or anywhere — the registration is global).
  2. Run the install command:
    claude mcp add --transport http ambrose-… https://…
  3. Claude Code opens your browser to the consent page. Sign in to Ambrose if asked.
  4. Click Approve to grant this agent's tools to Claude Code.
  5. Done — start a new Claude Code session and the agent is available as the ask_ tool.
First-time setup uses Dynamic Client Registration (RFC 7591) — Claude Code mints its own client_id, you don't paste a secret. Tokens auto-refresh; revoke any time from Ambrose.
Discovery URL:
Revoke access: drop the row from mcp_oauth_tokens or use the OAuth revoke endpoint (TBD admin UI).
Spokes

Built-in toolboxes this agent can reach

By default every spoke is enabled — uncheck any you want to keep this agent away from. Saves to agent.json allowed_spokes[]. (Clearing the last one re-enables all — empty means every spoke.)
Loading…
External MCPs

MCP servers this agent can use

Toggle which of your installed MCPs this agent has access to. Each toggle saves to agent.json attached_mcps[]. Add or remove MCP servers themselves on Settings → MCP Connections.
Skills

Skills this agent can use

By default an agent gets every skill. Toggle specific skills to restrict this agent to only those. The built-in Anthropic skills (docx, pdf, frontend-design, …) are always available regardless. Saves to agent.json allowed_skills[].
Integrations

Integrations this agent can call

What this agent can reach: your active native connectors (GoHighLevel, GitHub, Discord, Slack… — connected on Settings → Integrations) plus any custom REST integrations. Native connectors run through their spoke (toggling here syncs the Spokes section); custom ones are called via integration_call. Credentials always stay server-side, never shown to the model.
Claude Routines

Trigger Claude Code routines

Register Claude Code routines here once, and every agent, team, and Ambrose Chat in this agency can fire them by name (tools list_claude_routines + trigger_claude_routine). Paste a routine's full URL or its trig_… ID, plus the per-routine API token you generated in the routine's API trigger settings. Routines are shared across this agency; tokens are stored encrypted-at-rest and never shown again.
Add a routine

Default model

Model this agent uses when it runs. Bedrock options are always available. Anthropic options appear once your Anthropic key is saved in Settings → AI.
Connected Team

Team this agent works with

Pick the team this agent can delegate to during a chat. An agent works with one team at a time. Saved instantly to agent.json attached_teams[].

Test run

Send a message to this agent and see the response + tool trace live.

Routines

Scheduled prompts. Each fire runs through /api/chat-sdk so the job has the same skills + spokes + MCPs as a chat turn.

Conversations

Every run of this agent — chat, scheduled routines, and webhook executions — as a thread. Open one to review what it did (and any actions awaiting approval), then continue the conversation to adjust or run more. Agency-isolated.
Select a conversation to view its transcript.

Activity

API calls (LLM usage + cost) and audit trail for this agent.
Loading…
Loading…