https://www.earthcare.network/mcp, generated from the server’s own
registration (docs/TOOLS.md in the platform repository), so this page cannot
drift from what tools/list returns.
- Listing them needs a connection.
tools/listanswers only a signed-in client (OAuth or an API key); it returns each tool’s full input schema and annotations (readOnlyHint,destructiveHint). The health check at/mcp/health/says only whether the server is up. - Connector tools — up to four more appear only for integrations a workspace has connected, so every client stays within the 128-tool limit.
- Staff-only — Earth Care Network staff see one more tool, for directory
curation. Everyone else is refused (
forbidden), and it is not listed here. - Access is
read,write, orwrite·destructive. Scope is the OAuth scope a tool needs (read,build,sell,refer); a call without it is refused withinsufficient_scopebefore it runs. - Only a person publishes, sends outside the team, or moves money. Asked to,
a tool answers
human_onlywith aportal_urlfor the person. For example,compose_emailsends at once only to members of your own team — to anyone else it becomes a draft in Approvals that a person sends. See Security. - Fewer tools per turn. Clients that slow down with many tools can send an
X-MCP-Workspace-Stateheader (ambassador,buying_signals,chats,customer_relations,fundraising,funnels,home,investing,lead_generation,legal,operations,presence,recruiting,sales,shop,social_media) to get one area’s tools.
Automate
| Tool | Access | Scope | What it does |
|---|---|---|---|
create_workflow_from_template | write | build | Instantiate an automation workflow from the template library as a DRAFT — never live until the owner publishes it. Templates: sales-inquiry-pipeline, sales-follow-up-3day, signal-inbox-digest, daily-gtm-followups, recruiting-application-screen, recruiting-interview-scheduler, recruiting-candidate-nurture, order-fulfillment-checklist, daily-ecn-journal, daily-x-post-draft, investor-inquiry-research, investor-meeting-prep, investor-update-drip, welcome-site-lead, thank-new-customer. The Growth Plan’s automation_plan module (confirm_growth_plan_module) recommends 2-3 of these grounded in the business’s own ICP/signals/prospects — arming one is a separate, explicit action from confirming the module. |
list_workflow_steps | read | read | List a workflow’s editable draft steps — each with its config and the config_fields schema of what’s editable (the same schema the UI drawer renders). Also reports republish_needed: a published workflow’s live runs use the published snapshot, so draft edits aren’t live until a human republishes. |
update_workflow_step | write | build | Edit one workflow step’s config (chat-first parity with the UI step editor). Only fields in the action’s config_fields are accepted (no dead fields). Saves to the DRAFT — never auto-publishes; returns republish_needed so a human can Publish to make it live (approve-gate law). |
Build
| Tool | Access | Scope | What it does |
|---|---|---|---|
derive_brand_style | write | build | Derive SEEDED brand tokens (colors/typography/shape) from context + optional site crawl. |
list_media | read | read | List the workspace media library (images: url, thumbnail, alt, tags). Use returned asset URLs/ids when attaching media to posts or pages. |
set_brand_tokens | write | build | Set EXACT brand tokens (palette, typeface pairing, logo) and mark the brand style VERIFIED — the human-chosen counterpart to derive_brand_style, whose output only ever stays seeded. Colours are #hex; the pairing must be one of the curated keys. primary is the DARK structural colour (it is reset to the platform green when its contrast on bg is under WCAG 4.5:1) — the one bright brand colour belongs in accent. Omitted keys keep their current value. |
site | write·destructive | build | Your enterprise’s website — the advanced profile at /enterprise/<business>, multi-page, edited here or in the Studio. Actions: list (your sites) · get (pages + blocks + draft state) · ensure (open your directory site, creating it from your profile on first use) · add_page · set_blocks (replace a page’s typed blocks; send expected_version from get to avoid overwriting newer edits) · reorder_blocks · set_image · set_globals (site nav/footer) · delete_page · rename_page · reorder_pages · publish · revisions · revert. Edits are DRAFTS until publish — blocks, images, nav/footer, new pages, page titles and page order; delete_page removes the page from the live site at once. has_unpublished_changes says whether publish would change the live page. Publishing is the owner’s tap in the Studio — action=publish returns that link. Edits work on every plan, Free included; adding a second page to the site needs Pro (add_page answers plan_required otherwise), whole-site import needs Pro too, and existing pages are never taken away. On a Studio design site add_page starts the page inside the site’s design (Home’s header, footer and styles) and adds it to the menu. If paused is true the site is switched off for now: visitors see the listing’s one-page site and every page is kept. Branding lives in set_brand_tokens. Studio designs (every plan, Free included; design_from_url spends the daily Studio allowance and answers studio_daily_cap when it is used up): design_import_html (html: a whole self-contained page — no scripts, fonts from the Studio library, contact details as data-ecn-token markers — becomes the page’s sanitized DRAFT, with a report of anything removed) · design_get (the page’s html/css + outline of data-ecn-id parts) · design_apply (ops: [{op: replace|insert_before|insert_after|append|remove|set_text|set_attr|set_css|append_css, target: <data-ecn-id> or ‘css:<selector>’, html|text|css|name|value}]; send expected_version) · design_preview (a signed 7-day draft link to share before publishing) · design_from_url (url: design a complete on-brand DRAFT from the enterprise’s own website — its words, photos, colours and type; returns job_id; on an unclaimed listing you nominated Earth Care Network builds it and staff publish it; force replaces a draft) · design_job (job_id: poll it; takes ~1–2 minutes) · design_from_blocks (promote the listing’s typed blocks into a Grapes DRAFT — same system as Edit visually; send expected_version) · listing_components (the profile parts — Gallery, Offers, Wants, Hours, Linked enterprises, Contact, Call to action, Reviews, Journal, Shop, Careers — bound to listing/store data, with the nine Profile fields and their data-ecn-token markers, e.g. contact.cta.url, the main button) · design_context (the listing’s brand kit — colour roles, logo — and the Studio font library a design may use, to design on-brand) · design_from_template (Customize design: copy the listing’s own one-page site, template listing_basic, into an unpublished DRAFT to edit; an existing draft comes back untouched; the owner’s or an admin’s) · research_site (read your own website — the home page and up to max_pages key pages: about, team, services, press, books, podcasts — through the cached, metered site reader; returns the site’s own passages and images, each with its source URL, to write the page from; a few runs a day) · upload_image (url https, or data_base64 ≤ 5 MB JPEG/PNG/WebP/GIF, + alt: into your media library; returns /media/public/<id> for a design — for sites that block server copies) · design_export (the page’s design as a bundle: html, css without the #ecn-design prefix, brand kit, fonts, images as absolute URLs; as_url=true answers a signed bundle_url, valid 60 minutes, instead) · design_import_bundle (bundle_url or bundle from design_export, from this or another Earth Care Network environment: images are copied into your library and the page lands as a DRAFT; kit_mode pin keeps the design’s own colours and faces, apply also makes them your brand kit and logo, ignore uses your brand kit; dry_run=true previews what would change and which images would fail). design_get takes unscoped=true for CSS without the #ecn-design prefix. A claimed listing’s writes need that approved claim (not_claimed otherwise). Staff, and the person who nominated the listing, may edit it while it is still unclaimed; a claimed listing stays with its owner. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
CRM
| Tool | Access | Scope | What it does |
|---|---|---|---|
add_list_members | write | build | Add contacts and/or CRM accounts to a pinned sales list. Mutating — needs human approval. Provenance defaults to seeded for agent writes. |
confirm_graph_edges | write | build | Confirm or reject proposed graph edges. Confirm applies live FKs (Contact.account / Deal.contact / Deal.account). Mutating — needs human approval. decision: confirm | reject. |
create_company | write | build | Create a CRM company/account for the workspace (crm.Company). Links to a directory listing ONLY on an exact name/website match (never fuzzy); audience defaults to ‘sales’ (‘investment’ for the fundraise pipeline). Agent-written fields are provenance-marked ai_seeded. Account-only — compose with create_deal for a pipeline entry. |
get_sales_list | read | read | Get one pinned sales list and its members (contacts XOR accounts). |
list_conversations | read | read | List CRM email/chat conversations (read-only). Does not send. Use draft_inbox_reply to propose a reply — nothing sends without approval. |
list_crm_accounts | read | read | List / search CRM company accounts (CrmAccount) for Relationships · Companies. This is NOT the enterprises workspace switcher. Optional query matches name or website; audience filters sales vs investment. |
list_form_submissions | write·destructive | build | Workspace forms hub. Default: list recent submissions to a public form by slug (answers + Contact + Deal). Pass action=list to inventory forms; action=create to make a short lead form as a DRAFT (/f/{slug} 404s until published); action=update to edit an existing form’s name, description, steps, destination, success message or theme; action=publish / action=unpublish to take a form live or back to draft; action=delete to remove a form you own by slug (refuses the three Mastermind seeds). create and update validate the steps the same way the portal and the Form Studio do — an unrenderable step type, a Choice with no options or a backwards jump is refused with the reason, never half-saved. Read paths never reply to applicants. Publishing and unpublishing are the person’s switch in the portal — those actions return that link. Nothing emails from this tool. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
list_graph_edges | read | read | List Person↔Company↔Deal relation chips (proposed, confirmed, rejected). Optionally includes live FK links (source=fk). Read-only. |
list_notes | read | read | List Interaction notes for a contact (or recent org notes). Returns provenance; never marks notes verified. |
list_sales_lists | read | read | List pinned sales lists (CrmList membership — not tags or saved views). Use on Relationships · People when the operator asks about lists. |
log_note | write | build | Log a note on a person, a company and/or a deal (give at least one of contact_id, account_id, deal_id; a deal note also shows on the deal’s person and company). Provenance is seeded/manual/conversation_import — never verified. Mutating — needs human approval. |
propose_graph_edges | write | build | Propose Person↔Company↔Deal links as seeded edges. Does NOT write live FKs — call confirm_graph_edges after human approval. Kinds: contact_account, deal_contact, deal_account. |
remove_list_members | write | build | Remove contacts and/or CRM accounts from a pinned sales list. Mutating — needs human approval. |
upsert_crm_account | write | build | Create or update a CRM company account (CrmAccount). Match by account_id/company_id or name. Use for Relationships · Companies — not the enterprises workspace switcher. Writes need human approval. Contact info (email, phone, address, socials) is stored on the company. |
Campaigns
| Tool | Access | Scope | What it does |
|---|---|---|---|
ad_campaigns | write | build | Design paid ads from the enterprise’s public pages, and read how they do. Nothing here publishes or spends. Actions: design (a draft) · list · get (campaign_id) · update (drafts, honesty-checked) · regenerate_variant · results (campaign_id) · pause (flight_id; only where agent pausing is on). Where the multichannel ads engine is on: plan (goal, total_budget_usd, days, region, audience → which channels fit and why) · design with channels (3-6 concepts, copy fitted per channel; the budget goes only to the channels plan puts it on) · update (flight_ad_id + fitted_copy, or creative_id + message/angle/claims/landing_url) · regenerate_variant (creative_id + instruction) · illustrate (creative_id; queued, and the picture becomes the concept’s) · render (creative_id; queued) · export (flight_id: files to upload by hand). Where it is off, design makes a Meta (Facebook and Instagram) draft and plan, illustrate, render and export answer engine_v2_off. A person publishes (created paused), approves, turns ads on, connects ad accounts, confirms picture rights and sets budgets, dates and targeting: publish / activate / approve / connect / attest_rights return the portal link. Google flights, and concepts they carry, are export-only for agents. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
campaign | write | build | Organic campaigns across every channel: list, get, create (a campaign, or a message on one — a journal share is source_kind=journal), compose (Jaguar drafts a Seeded variant per channel; confirm=false first shows the cost and spends nothing), compile_phase (Pro), edit_variant, move, unschedule, results, recommend, suggest_time, amplify_invite (Pro), draft_posts (a post to the platforms the person picks, each in its own words, no credits; answers the link where they press Post now). Never approves, posts or sends: a person does that in the portal. |
get_campaign_arc | read | read | Read one journal campaign arc: header, phases, beats, and the next beat awaiting Approvals. Grounds the campaign tool’s compile_phase action. |
list_campaign_arcs | read | read | List journal campaign arcs for this workspace (phases + beats count). Not Synter ad campaigns — those use create_campaign. Prefer this on Marketing · Campaigns. |
Connectors
| Tool | Access | Scope | What it does |
|---|---|---|---|
integrations_connect | write | build | Get the link a person opens to connect an app (the app’s own sign-in page, or Connected apps). Never accepts credentials in the model turn. |
integrations_discover | read | read | Find what the apps connected here can do, by keyword (for example ‘unread email’ or ‘hubspot contacts’). Returns up to 10 tools with their input schema and whether they need a person’s approval. Read-only — no side effects. |
integrations_invoke | write·destructive | build | Run one connector tool. Reads run now. Anything that sends, posts, creates, changes or deletes becomes a card on Home · Waiting for you and runs only when a person approves it there; the answer says so. Earth Care Network decides which tools change things, not this call. |
integrations_list | read | read | List the Connected apps library: each app’s status (connected, available, coming soon), what uses it, what Jaguar can do with it, and where to connect it. |
Context
| Tool | Access | Scope | What it does |
|---|---|---|---|
answer_context_interview | write | build | Record ONE interview answer in the owner’s words; writes the declared Business Context field (the ICP question confirms the ICP). |
finish_context_interview | write | build | Finish the interview: proposals for the public listing and the three doors. apply_fields only for lines the owner approved. |
get_context_interview | read | read | Read the eight-question context interview: questions in order, answers on file, next_index. Same service as the workspace form. |
Core
| Tool | Access | Scope | What it does |
|---|---|---|---|
enterprises | read | read | List every enterprise this connection can act on and show which one is active, or switch the active one. One connection reaches ALL the enterprises you belong to — action=‘use’ sets where un-targeted calls land; any single call can still override it with business_slug. |
Data
| Tool | Access | Scope | What it does |
|---|---|---|---|
disable_data_source | write | build | Disable a data source for this workspace only (org override shadows global). |
enable_data_source | write | build | Enable a data source for this workspace only (org override; refuses global mutate). |
list_data_sources | read | read | List public-data sources available to this workspace. |
propose_data_source | write | build | Propose a new public-data source for human review/approval. |
recommend_data_sources | read | read | Recommend public-data sources that fit this workspace’s ICP and archetype, with the reason for each. Returns recommendations only — enabling a source is a separate call (enable_data_source). |
Explore
| Tool | Access | Scope | What it does |
|---|---|---|---|
apply_advanced_profile_blocks | write | build | Apply modular advanced-profile blocks JSON (version=1) onto an existing listing: places (child rows + optional tour_url), offers, parent media. dry_run=true validates without writing. Never invents email/phone. Testimonials must be omitted or [] — Law 8 refuses fabricated quotes over MCP. Does not change billing/tier. Owner/team of the listing’s workspace, or staff. |
get_business_profile | read | read | Get a public business profile by slug. |
get_public_profile_modules | read | read | Full public advanced-profile modules for a directory slug (tier, portfolio/places with tour_url, media gallery, offers, blocks). Contact fields stay closed. Prefer this over get_business_profile when enriching places / Matterport / gallery. |
publish_profile | write·destructive | build | APPROVAL GATE: publish the current draft for a listing (same door as POST /api/v1/businesses/{slug}/publish/). Syncs live fields including BusinessMedia when media was drafted. Owner/team or staff (on_behalf emails the owner). Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
search_directory | read | read | Search the public ECN directory by keyword — the claimed and nominated listings a visitor can open. |
update_profile_draft | write | build | Apply typed draft changes to a listing (same door as PUT /api/v1/businesses/{slug}/draft/). paths include purpose, description, logo_url, cover_image_url, offers, wants, ecosystem, and media (BE-MEDIA: advanced tier, ≤12 image|video|tour). Pass profile_form_slug to put one of this workspace’s forms on the public profile (the ‘forms’ block); an empty string detaches it. On a claimed listing, name, purpose, description, website, cta_label, address, city, region and offers land in the owner’s Directory profile draft (Seeded) — the one the editor shows. Nothing goes live until a person presses Publish in Studio · Directory profile. Owner/team or staff. |
GTM
| Tool | Access | Scope | What it does |
|---|---|---|---|
grow | write | build | Make a go-to-market change: set or confirm the ICP, discover / refine / find more leads, draft outreach email, sync leads to the CRM, add one lead to the CRM, or save and re-run a named lead search. Lead discovery persists GtmLead rows and spends workspace credits. recommend_next adds Seeded suggestions from every channel’s numbers to Home’s Actions. Read-only actions live in grow_read. |
grow_read | read | read | Read go-to-market state without changing it: the GTM context, the growth plan document, ICP + pipeline status, the saved lead searches, or every channel’s numbers and best content (channels_summary, top_content). Writes nothing and spends no credits — use grow to make a change. |
suggest_outreach_plan | write | build | Per-lead outreach strategy: proof points (signal URLs) + channel sequence (social reply / email w/ enrichment gate / LinkedIn-first for candidates / email-first for investors). Draft-only; execute_leg drafts one step. |
Grow
| Tool | Access | Scope | What it does |
|---|---|---|---|
approve_outreach_draft | write·destructive | build | APPROVAL GATE (human action): approve a seeded outreach draft (optionally editing the body) to status=approved. Never sends or posts: sending is the person’s tap in Approvals (send=true returns that link). Approve ≠ Publish. Review the queue first with list_outreach_drafts. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
author_context_document | write | build | Autonomously draft a SEEDED business/product/brand context document from source URLs (ingested via Firecrawl) + provided text. Anything unverifiable becomes a [CONFIRM] line — never invented. Review in /portal/profile. |
compose_email | write·destructive | build | Compose an email from the ECN sending domain (Mailgun). Team recipients send immediately and thread into Inbox; any other recipient becomes a draft in Approvals (returns draft_id) and sends only when a person approves it there (approve_outreach_draft). |
confirm_growth_plan_module | write | build | Confirm a Growth Plan module after the owner approves it. Confirming automation_plan computes real, armable automation recommendations from the confirmed ICP/signals/prospects modules (see create_workflow_from_template to arm one). |
create_business_context_section | write | build | Create a custom Business Context module (non-template key). |
create_first_enterprise | write | build | Create the owner’s first enterprise from a name + optional website (async bootstrap). Advances the enterprise journey beat. |
create_strategy_session | write | build | Create a live voice + text Sales Operations Audit (a ‘strategy session’) with Jaguar for the authenticated enterprise, and return a shareable link. The host opens the link to start; invited teammates open the same link to join the lobby before it begins. After the session, a written report is generated and emailed to participants. |
delete_business_context_section | write·destructive | build | Delete a custom module, or reset template module content with reset=true. |
get_business_context | read | read | Public compiled Business Context for a business slug (agent + directory API). |
get_business_context_private | read | read | Workspace modules for the authenticated org, including private ICP and canvas cells. business_slug reads a specific workspace this org owns. Optional key returns one cell. |
get_context_document | read | read | Fetch one context document (full markdown body, FAQ pairs, and its unverified_claims queue). Ground answers in this. IMPORTANT: any fact in unverified_claims is NOT confirmed — route it to a human rather than asserting it. |
get_growth_checkup | read | read | Get the latest growth checkup report for the organization (checkup, yield_score, credits_granted). |
get_workspace_journey | read | read | Return the ONE workspace journey (beats, now, done_count) — same truth as the in-app checklist. Use to see what remains for onboarding. |
list_context_documents | read | read | List the business/product/brand knowledge documents for this workspace’s business. Use to discover what context an answering or sales bot can ground answers in. Returns titles, slugs, status (seeded vs verified), and the count of unverified [CONFIRM] claims. |
mark_onboarding_step | write | build | Mark onboard_new_customer or setup_new_workspace complete when ready. setup_new_workspace requires real context modules + confirmed ICP. |
refresh_context_document | write | build | Re-ingest a context document’s sources and PROPOSE an updated seeded version with a change summary. Never overwrites the live doc — a human accepts. |
resolve_context | read | read | Resolve a business’s Context Pack readiness: coverage of payload sections, FAQ and embedding, verification status, and a pinned snapshot (schema_version, revision, refreshed_at) so agent runs are reproducible and auditable. |
set_okrs | write | build | Draft goals (OKRs) for an enterprise: a named, dated cycle with one or more objectives, each with key results written as short statements that can be checked off as done (e.g. ‘Sign 3 design commissions’), not numbers to track. Everything Jaguar writes is SEEDED (marked ‘Drafted by Jaguar’) and never changes goals a person wrote. Without cycle_id it makes a new PLANNED cycle the owner reviews and starts on the Goals page (/portal/goals); with cycle_id it adds the objectives to that open cycle. Give cycle_name, start_date and end_date (any length; e.g. a 30-day sprint, a quarter, a year) when the owner said them; otherwise the cycle starts today and runs 90 days. The old one-objective form (objective + key_results) still works. Goals a person wrote are never overwritten: where the workspace still keeps the old goals document, the tool returns updated:false for goals a person set, and you tell the owner what you would change. Targets the workspace business, or a specific one by business_slug. business_slug is REQUIRED when the workspace has more than one business (the tool errors loudly instead of guessing). |
update_business_context_section | write | build | Patch one module’s content and/or public|private visibility. Pass content as a JSON object matching the module shape (a non-object payload is rejected, not silently dropped). Content MERGES into the existing object by default — pass replace=true to SET it wholesale (drops fields you omit). For Disciplined Entrepreneurship boxes (de_*), put step/facet text in content.modules (keys mission|founder_passions|values|initial_assets|initial_idea or step_1…step_24); modules deep-merge so one step patch preserves siblings. Keep status=seeded (never verified). Unknown money stays unknown. |
update_content_plan | write | build | Update the Content Plan (formerly ‘growth plan’ — journals/X cadence, pillars, referral loop). For the workspace Growth Plan’s modules use update_growth_plan_module instead. |
update_growth_plan_module | write | build | Write a Growth Plan module. Writable: story | offer | icp (text via content) and targets | channel_bets | challenges | agentic_solutions (structured via payload). Pass confirm=false to land a REVIEWABLE DRAFT instead — the safe default whenever you are revising a module that already has content. |
update_gtm_business_context | write | build | Update seller-side business context on the GTM profile (description, value prop, offerings, service area). business_slug/domain target a workspace this org owns. |
update_life_context | write | build | Save one door of the person’s life context (purpose | dream | challenges | season). Advances the life_context journey beat. When the person has a page, a dream is a Seeded draft (status=seeded) they put on My page themselves. |
Hire
| Tool | Access | Scope | What it does |
|---|---|---|---|
add_candidate_to_crm | write | build | Sync a sourced candidate to CRM contact + hiring deal. |
create_recruit_role | write | build | Create a draft recruiting role (publishing it is a person’s step). Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
draft_recruit_invitation | write | build | Draft an outreach invitation to a candidate (sending it is a person’s step). Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
get_public_careers | read | read | Read open roles on a public business profile (by slug). |
get_recruit_role | read | read | Get recruiting role detail with candidate and application counts. |
list_open_roles | read | read | List recruiting roles for the authenticated organization. |
post_role_to_linkedin | write·destructive | build | Post a published role to LinkedIn Jobs (Talent API). Requires LinkedIn org config. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
search_recruit_pipeline | read | read | Search sourced candidates and inbound applications. |
update_recruit_application | write | build | Update application status; enrolls affiliate partner when role threshold is met. |
update_recruit_role | write | build | Update or close a recruiting role (publishing it is a person’s step). Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
Journal
| Tool | Access | Scope | What it does |
|---|---|---|---|
draft_article | write | build | Draft a journal article grounded in the business context (status=draft; publish with publish_article). topic required. |
list_articles | read | read | List the business’s journal articles with status + permalinks. |
propose_article_topics | write | build | Three journal topics from the owner’s interview answers and context — title, why now, and the interview line each grows from. Proposals only; draft_article drafts the chosen one for approval. |
publish_article | write·destructive | build | Publish a drafted article to the public journal (permalink + RSS). Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
Other
| Tool | Access | Scope | What it does |
|---|---|---|---|
create_contact | write | build | Create a CRM contact (Jaguar parity). |
create_task | write | build | Create a follow-up task, optionally linked to a person, company, or deal (BE-Sales-07). |
get_onboarding_status | read | read | Return onboarding checklist progress for the org. |
get_wallet_balance | read | read | Get managed credit wallet balance for the authenticated org. |
get_workspace_summary | read | read | Summarize CRM pipeline, tasks, and directory stats for the org. |
list_contacts | read | read | List / search CRM contacts for the authenticated org. Optional free-text query matches name, email, or company; filter by tag. Returns total and next_offset; pass offset to page past the first 50. |
list_tasks | read | read | List CRM tasks for the authenticated org (Jaguar parity). Optional contact_id / account_id / deal_id filters (BE-Sales-07). |
provision_gtm_profile | write | build | Provision agentic GTM profile from domain (Explee AutoGTM). |
update_enterprise_context | write | build | Store or update a canonical business fact shared by the whole org (never re-ask): e.g. ‘ICP is solopreneurs earning $50-200k’, ‘team size is 5’. Versioned; survives across channels and sessions. |
update_user_memory | write | build | Store or update a durable fact about the CURRENT USER that should follow them across every channel (chat, voice, email, phone) — e.g. ‘prefers plain language’, ‘in Pacific time’. Use sparingly and only for facts the user has stated or clearly implied. |
Outreach
| Tool | Access | Scope | What it does |
|---|---|---|---|
draft_gtm_follow_ups | write | build | Draft one grounded, seeded follow-up per ranked GTM lead now (the daily fan-out, on-demand). Grounded-by-construction on the sender’s verified context sections (truth_guard=‘provided-data-v1’); draft-first — nothing sends. Idempotent: skips leads already drafted. Also runs daily via the schedule.daily workflow. |
draft_x_post | write | build | Draft ONE seeded daily X post for the org’s own account, grounded-by-construction (real OKRs/counts injected; no invented numbers or people; provenance.truth_guard=‘provided-data-v1’). Draft-first — never posts. Supersedes prior un-approved daily X drafts. topic optional. |
list_outreach_drafts | read | read | List the business’s outreach drafts (incl. the daily X-post drafts, channel=x). Each carries body + status + provenance (angle, truth_guard, grounding) for review. Pass status=‘seeded’ for unsent drafts. Draft-first: nothing sends without a human approval. |
Profile
| Tool | Access | Scope | What it does |
|---|---|---|---|
add_story | write | build | Add a Story (social post URL or manual update) to the profile-website’s Stories section. |
create_business | write | build | Create a business/enterprise with a directory listing + profile site. use_current_workspace=true attaches it to this key’s organization; otherwise a new enterprise is provisioned. |
list_stories | read | read | List the business’s Stories (aggregated social posts on the profile-website). |
Refer
| Tool | Access | Scope | What it does |
|---|---|---|---|
create_invite_draft | write | refer | Compose an ownership-transfer invitation as a reviewable DRAFT (subject + body stored; nothing emailed until send_invite_draft). |
invite_owner_to_claim | write·destructive | refer | Generate a claim link for one or more referred businesses (https://<host>/enterprise/<slug>?claim=<token>). Returns the link to copy and share; nothing is emailed. invitee_email is optional — pass it to record who the owner is; emailing it is a person’s step in the portal. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
list_invite_drafts | read | read | List ownership invitations (drafts and sent) with subject/body. The claim link shows as {claim_link} (keep it when editing a body); a person sends the real link from the portal. |
refer_business | write | refer | Nominate any enterprise as a DRAFT (unclaimed, credited to you). Pass a website to crawl a basic profile from the homepage (name, about, cover) — not the paid whole-site import. Returns approve_url, where the signed-in nominator ticks the pledge and attribution boxes and presses Publish, and the same claim link invite_owner_to_claim returns: /enterprise/<slug>?claim=<token>. Over MCP a nomination is never published. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
refer_businesses_batch | write | refer | Batch-nominate up to 10 businesses from a list of websites. Each lands as a DRAFT nomination with a claim-invite email draft (no claim link is returned); ICP + matched buyers enrich asynchronously unless depth=full. Returns drafts_url to review them and approve_url where the nominator publishes each one. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
send_invite_draft | write·destructive | refer | APPROVAL GATE (human action): delivering a reviewed draft invitation is the person’s Send in the portal. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
update_invite_draft | write | refer | Edit a draft invitation (subject/body/message/invitee) before sending. Sent invites are immutable. |
Sell
| Tool | Access | Scope | What it does |
|---|---|---|---|
create_deal | write | build | Create a CRM pipeline deal (optionally linked to a contact). The champion pipeline’s deal rows. |
list_deals | read | read | List CRM deals for the authenticated org. |
shop | write | sell | Earth Care store — one catalog for own goods, services, and optional Teemill GFN print-on-demand. Actions: status · catalog · create (kind=product|service with name/description/image_url/price_cents, or kind=pod / gfn_product_id for Teemill) · gfn · gfn_get · update · seed_demo · orders · attach. Teemill is dropship, not the store. Nothing sends or charges without a person. Portal: /portal/studio/shop. Public: /store/<org>. |
Signals
| Tool | Access | Scope | What it does |
|---|---|---|---|
draft_x_reply | write | build | Draft a SEEDED, approval-gated public X reply to a buyer-intent signal, with an optional landing-page link (UTM-tagged). Nothing sends — it queues in Approvals for a human. |
signals | write | build | Make a buying-signal change: run a scan and persist the signals it finds, create or update a watchlist, or draft a reply to a signal. Scanning spends workspace credits. Read-only signal actions live in signals_read. |
signals_read | read | read | Read buying signals without changing them: list them, list them ranked by score, get suggested searches, dry-run a search without saving it, or look up B2B funding / hiring / news intent via Crustdata. Writes nothing — use signals to scan, watch, or draft a reply. |
Social
| Tool | Access | Scope | What it does |
|---|---|---|---|
social_get_post_analytics | read | read | Read stored engagement metrics for a sent ScheduledPost (impressions/likes/comments/shares/upvotes as the platform allows). Missing values stay null — never invent counts. Does not call the provider; use social_refresh_post_analytics to re-fetch. |
social_list_drafts | read | read | List seeded/scheduled/sent posts. Use to review pending posts before they go live. Replaces postiz_list_drafts. |
social_list_integrations | read | read | List the workspace’s connected social accounts (X, LinkedIn, Reddit) ready for posting. Returns integration IDs needed by social_schedule_post. Use this first when you need to schedule a social post. Replaces postiz_list_integrations. |
social_list_media | read | read | List media URLs recently attached to scheduled posts. Replaces postiz_list_media. |
social_refresh_post_analytics | write | build | Re-fetch engagement metrics for a sent ScheduledPost from the connected account. Hits the provider. Nothing sends. |
social_schedule_post | write | build | Draft a social post for X, LinkedIn, or Reddit. Creates a status=‘seeded’ ScheduledPost — NOTHING SENDS until a human approves it in Approvals. Pass channel (‘x’|‘linkedin’|‘reddit’) or integration_id (from social_list_integrations), content text, and a date in UTC ISO format (leave it out and the draft has no day: a person picks it before approving). Pass campaign_id or message_id to put the draft on that campaign’s calendar. Attachments are public image URLs. Reddit also needs channel_settings.subreddit + title. type=now is not allowed and is stored as a draft for approval. LinkedIn here is a PUBLIC post on the connected account’s feed, and everyone can read it. Never use it for a message, a connection request, an InMail or a comment: write those as copy-only text in the chat for the person to send by hand on LinkedIn. Replaces postiz_schedule_post. |
social_upload_media | write | build | Register a public image URL for use as a post attachment. Native publishing does not host a media library — returns the URL for use in social_schedule_post attachments. Video is refused at publish time. Replaces postiz_upload_media. |
Studio
| Tool | Access | Scope | What it does |
|---|---|---|---|
funnel | write·destructive | build | Sales funnels — multi-step pages at /p/<funnel>/<step> that turn visitors into leads (waitlist, free thing + time-boxed offer, book a call, launch). Everything is a DRAFT: a person publishes at /portal/studio/funnels/<slug>, and action=publish only returns that link. Actions: list · get (slug: steps in order with status and routes_to — where each step really sends people — settings, links) · templates · create (template_key + title, optional offer and settings; to draft one from a description, pick the closest template, create it, then write each step’s words from the enterprise’s context with design_apply) · add_step (slug, step_kind, title, after_slug; from_step copies that step’s design) · set_step (slug, page_slug: title / step_kind / next_page_slug (” ends the funnel there) / offer — a draft; on a live funnel visitors keep the published step until a person publishes) · move_step (slug, page_slug, after_slug: ” moves it to the top) · remove_step (slug, page_slug: a step that was ever live is archived and leaves at the next publish) · duplicate_step (slug, page_slug: a copy goes right below it). The server rewires where every step sends people after add/move/remove/duplicate — read routes_to, never assume. design_get (slug, page_slug: the step’s html, css and outline of data-ecn-id parts) · design_apply (slug, page_slug, expected_version, ops: [{op: replace|insert_before|insert_after|append|remove|set_text|set_attr|set_css|append_css, target: <data-ecn-id> or ‘css:<selector>’, html|text|css|name|value}]) · design_import_html (slug, page_slug, html: a whole self-contained step page, expected_version when it already has a design) · preview (a private 7-day draft link) · stats (days: views, leads and clicks per step and by source, partner and avatar — unknown money is null, never 0) · leads (limit: the people who opted in, with their attribution) · set_settings (slug, settings: avatar_question, avatar_options, newsletter_optin, default_utm — a draft) · rename (slug, title: the funnel’s name; its address stays) · start_test (slug: a private 30-minute link to walk the DRAFT as a visitor; nothing counts and its leads are test leads). Lead pages (/l/<slug>) and popups: capture_list · lead_page_get (page_id) · lead_page_draft (title, blurb, cta_label, qualifying_prompt, template_key) · lead_page_update (page_id + fields; drafts only) · popup_get (popup_id) · popup_draft (name, questions) · popup_update (popup_id + name / questions) · short_link (url or target, label, utm: a tracked /s/<code>) · qr (the same link, for a QR). Turning a lead page or popup on is the owner’s switch. Never type an email, phone number or address into a step: use the contact.email / contact.phone / contact.address / booking.url markers. Offers are the owner’s own words and numbers — templates carry ‘[Your offer]’ placeholders, never an invented amount. Fonts only from the Studio library; no scripts. Writes need the Sales funnels plan and an approved claim on the listing. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |
newsletter | write | build | The enterprise’s email newsletter — draft issues for the owner to send. Actions: list (issues + how many subscribers it reaches) · get (issue_id: subject, preheader, the MJML design and its version) · draft (brief: Jaguar writes a new on-brand issue as a DRAFT; or template=blank|update|story for an empty one; or from_article_id to email an existing journal post — Ghost-style, same Article SSOT) · update (issue_id + expected_version from get, with subject / preheader / mjml — MJML only, images from the media library, no mj-raw; the footer with the unsubscribe link and postal address is added by the server, never write one) · preview (issue_id: what subscribers will read) · audience (subscriber counts, never addresses). Everything is a draft: sending and test sends are the owner’s tap in /portal/studio/newsletter — action=send / test_send returns that link. Sequences (welcome and follow-up letters): sequences · sequence_get (sequence_id) · sequence_draft (name, trigger {kind: subscribed|tag_added|form_submitted|scorecard_band, tag|form_slug|scorecard_slug+band_key}, steps [{subject, text, delay_minutes}], or template_key) · sequence_update (sequence_id + name / trigger / steps — the whole list; only while it is off). Broadcasts (one letter to a tagged group): broadcasts · broadcast_get / broadcast_report (broadcast_id: delivered, approximate opens, clicks, unsubscribes) · broadcast_draft (subject, text, tags_any / tags_all / tags_none or view_id) · broadcast_update (broadcast_id: a draft only). Turning a sequence on, sending and scheduling are the owner’s taps in Studio · Email. Only a person can publish, send or move money: over MCP that step returns a portal link instead of running. |