Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

com.getfreedomos/freedom-mcp

REMOTE · TWULUXMOOGNLWTMAOQGO.SUPABASE.CO · SCANNED AUG 3

Business-ops MCP for FreedomOS — finance, OKRs, customer scoring, AI agents, content. 250+ tools.

+10 this week 66 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability29
  • AI-judged instruction clarity (poor).Fail
  • Context-footprint check failed: tool/resource definitions use about 47688 tokens (~200/item across 238 items; 238 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 99% of tool parameters carry a description.Partial
Capabilities20
  • Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · twuluxmoognlwtmaoqgo.supabase.co

# add to Claude Code
claude mcp add --transport http com-getfreedomos-freedom-mcp https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp
# ~/.codex/config.toml
[mcp_servers.com-getfreedomos-freedom-mcp]
url = "https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-getfreedomos-freedom-mcp": {
      "type": "remote",
      "url": "https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-getfreedomos-freedom-mcp --url https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-getfreedomos-freedom-mcp:
    url: "https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp"
// mcp.json
{
  "mcpServers": {
    "com-getfreedomos-freedom-mcp": {
      "type": "http",
      "url": "https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Aug 26 +1
    • Tool “run_tactic” rewrote its description, which is the text the model reads security
    • New tool “create_play_from_activity” functional
    • “run_tactic” added an optional parameter “suggest_only” cosmetic
    • “run_tactic” reworded the description of “tactic_title” cosmetic
    • “run_tactic” reworded the description of “tactic_id” cosmetic
  • 31 Jul 26 +17
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −10
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 0
    • Tool “submit_product_request” rewrote its description, which is the text the model reads security
    • Tool “report_feedback” rewrote its description, which is the text the model reads security
    • “submit_product_request” reworded the description of “kind” cosmetic
    • “hire_agent_with_context” reworded the description of “obsession” cosmetic
    • “hire_agent_with_context” reworded the description of “first_72_hours” cosmetic
  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 56

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=supabase.co CN=WE1,O=Google Trust Services,C=US 28 Jun 2026 26 Sept 2026 ECDSA 256 ECDSA-SHA256 1d2d53f65d874dfb0eead7aab0301afd
SANs: supabase.co, *.supabase.co
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC insecure

Validation of twuluxmoognlwtmaoqgo.supabase.co. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
co. present 7786 8 Verified
supabase.co. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload

Protected resource metadata

Retrieved No
Problem no_resource_metadata
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp Verified 200
http (plaintext) http://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp HTTPS enforced 301 https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp
MCP tools — 238 exposed · ~47,257 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
ack_attention_directive ~152

Mark a pending attention directive as acked after the host session has taken the instruction. Use when YOU are Grok/Claude/a host builder and you just executed (or deliberately skipped) a directive you polled — for the same operator who owns the queue. Idempotent on already-acked → not found. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
idstringyesDirective UUID from list_attention_directives or create response.

No output schema declared.

No examples provided.

add_agent_activity ~176

Add ONE activity to an agent's activity plan without regenerating the whole plan. Use to give an agent a new recurring or one-off deliverable. (To rebuild the entire plan, use recalibrate_agent_jd with regenerate_activities=true instead.) [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
activityobjectyesThe activity to add.
agent_idstringUUID of the agent. Optional if agent_name is provided.
agent_namestringName of the agent (e.g. "Aiko"). Provide this or agent_id.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.

No output schema declared.

No examples provided.

add_commitment ~252

Track a personal commitment, deadline, birthday, appointment, or obligation. ALWAYS use this (not save_knowledge) when the user mentions: birthdays, due dates, deadlines, tax filings, events to plan, gifts to send, things they need to do by a certain date, or anything they want reminded about. Works across all life domains (work, personal, family, home). For supporting context (e.g. gift ideas, who the person is), pair this with save_knowledge scope="personal". [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
consequencestringWhat happens if this slips? (optional)
descriptionstringAdditional details or notes (optional)
domainstringLife domain: personal, family, home, w2, or company:<name>
due_datestringDue date in YYYY-MM-DD format (optional)
titlestringyesWhat needs to happen

No output schema declared.

No examples provided.

add_customer_evidence ~362

Store one piece of REAL Customer Evidence for this company (paying-customer words/behavior, telemetry, review, operator-relayed quote, prospect signal, or agent-as-user). Evidence outranks generated ICP simulation. Use when the operator pastes a real customer quote, a call note, a review, or a provenanced usage signal — NOT for inventing personas (use Customer Hunter / create_icp for hypotheses). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
claimstringyesShort observation / takeaway (required, ≥8 chars).
classstringyesEvidence class (determines rank weight).
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
may_not_auto_actbooleanIf true (default), evidence must not auto-act without human/graduated path.
may_open_loopbooleanIf true, may open a work loop from this signal. Default false.
may_refine_icpbooleanIf true, may seed an ICP-delta offer later (never silent rewrite). Default false.
may_steer_copybooleanIf true, may inform copy/messaging. Default true.
observed_atstringOptional ISO timestamp when observed (default: now).
quotestringOptional verbatim quote.
sourcestringyesProvenance: "operator paste", "support ticket #…", "Amazon review", …
subject_labelstringOptional human label (e.g. Kendall) — not a global identity system.

No output schema declared.

No examples provided.

add_lead ~276

Add a new lead to the Leads CRM (crm_leads) — the table the Leads tab, triage, and outreach all use. Idempotent on (company, email) when an email is given. Provide at least an email OR a name. The lead appears on the Leads tab and is auto-triaged. Routing: CRM/sales → add a lead or prospect → use this [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
company_namestringCompany they work for (optional)
emailstringLead email (unique within company). Provide email or name.
namestringFull name. Provide email or name.
notesstringInitial notes about the lead (optional)
phonestringPhone number (optional)
sourcestringWhere the lead came from (e.g. "linkedin", "referral", "website"). Defaults to "manual".
tagsarrayTags for filtering (optional)
titlestringJob title (optional)

No output schema declared.

No examples provided.

analyze_team_needs ~118

Gather comprehensive team and company context for talent strategy analysis. Returns current team composition, growth signals, capability gaps, and integration status. Use when the user asks "what roles am I missing?", "who should I hire next?", "analyze my team", or "what gaps does my team have?". YOU are the strategist — this tool gathers the data, YOU provide the PhD-level talent recommendations.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.

No output schema declared.

No examples provided.

append_cos_preference ~179

Append one durable speech/taste preference for THIS operator only (re-injected on their next voice session mint). Use when they say something was hard to follow, how cards should sound, or "remember I prefer…". For this user_id only — does not edit the shared FreedomOS CoS template. Apply the note in the current call when you can. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
notestringyesOne short preference (≤500 chars), e.g. "When describing cards, paraphrase titles — do not read dashes or ids aloud."

No output schema declared.

No examples provided.

append_to_sheet ~100

Append rows to a Google Spreadsheet. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
spreadsheet_idstringyesSpreadsheet ID
valuesarrayyesArray of rows to append

No output schema declared.

No examples provided.

approve_pipeline_item ~184

Approve a content item for publishing — or REJECT it with approved:false. Use when user says "approve it", "looks good", "publish that" (approve), or "reject it", "drop that duplicate", "don't publish" (approved:false). [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
approvedbooleanDefault true. Pass false to REJECT: the item is marked rejected and leaves the approval queue — it never publishes. An explicit false can never approve.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
item_idstringyesID of the pipeline output to approve (get from get_pending_approvals)

No output schema declared.

No examples provided.

archive_pipeline ~205

Archive (or restore) a content pipeline — flips is_active off/on, mirroring the Content Pipeline UI's soft-delete/restore. No data is deleted or cascaded. Use when the user says "archive this pipeline", "pause my newsletter automation", "turn off this pipeline", or "bring back my archived pipeline" (pass restore:true). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
pipeline_idstringyesID of the pipeline to archive/restore (get from list_pipelines)
reasonstringOptional. Why this pipeline is being archived or restored.
restorebooleanSet true to REACTIVATE an archived pipeline instead of archiving it. Default false (archive).

No output schema declared.

No examples provided.

attach_product_request_pr ~173

Attach an existing freedom-ai GitHub PR URL to a product request and **resolve it by construction** (card → approved, product_status=fixed, history comment, filer resolution notify). Use when you (or a coding agent) opened a real PR for the fix — no separate human close step. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
pr_urlstringyeshttps://github.com/linnetlegacies/freedom-ai/pull/NNNN
request_idstringyesrequest_id UUID from submit_product_request

No output schema declared.

No examples provided.

audit_brand_visibility ~215

Audit whether Freedom OS appears in AI-generated search results. Sends a search query to external LLMs (Claude, Grok, Gemini, Perplexity) and checks each response for brand mentions. This is a competitive SEO/GEO auditing tool — like a mystery shopper for AI search engines. It does NOT answer questions or delegate work.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
max_tokensnumberMaximum response length per provider (default: 1000)
promptstringyesA search-style query to test (e.g., "What is the best AI operating system for solopreneurs?")
providersarrayyesWhich AI search engines to audit. Options: anthropic (Claude), xai (Grok), google (Gemini), perplexity (Sonar Pro with live search)
temperaturenumberResponse variability 0-1 (default: 0.7)

No output schema declared.

No examples provided.

batch_update_spreadsheet ~128

Perform batch operations on a Google Spreadsheet (formatting, merging, etc.). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
requests_jsonstringyesJSON-encoded array of batch update request objects, e.g. "[{\"updateCells\":{...}}]".
spreadsheet_idstringyesSpreadsheet ID

No output schema declared.

No examples provided.

browse_url ~181

Browse a web page in a real browser and take a screenshot. Returns page content and a screenshot image. Use when you need to SEE what a page looks like (visual audit, brand check), interact with JavaScript-heavy pages, or capture visual evidence. The screenshot is returned as an image you can analyze directly with your vision. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
actionsarrayOptional browser actions to perform before taking screenshot. Each action has a type and optional selector/value.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
urlstringyesThe full URL to browse (must include https:// or http://)

No output schema declared.

No examples provided.

cancel_attention_directive ~137

Cancel a pending attention directive (operator changed mind / wrong target). Use when the operator says drop/cancel that instruction to Grok or Claude, or CoS realizes the target_session_id was wrong — for THIS operator only. Does not reverse work the host already did. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
idstringyesDirective UUID to cancel.

No output schema declared.

No examples provided.

cancel_commitment ~168

Cancel a commitment without completing it — marks it cancelled. Use when the user says "cancel that", "never mind, drop it", or "that's not happening anymore" for something already tracked. For finished work, use complete_commitment instead. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
commitment_idstringThe UUID of the commitment to cancel.
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
reasonstringOptional. Why this is being cancelled.
title_searchstringSearch by title if ID not known (fuzzy match).

No output schema declared.

No examples provided.

capture_idea ~121

Capture an idea into the user's Ideas. Use when user shares an idea they want to save for later. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
contentstringyesThe idea content to capture
source_urlstringOptional URL if the idea came from a link

No output schema declared.

No examples provided.

challenge_as_customer ~190

Run your deliverable past the company's customer truth: REAL Customer Evidence first (when stored), then generated ICP as labeled simulation. Returns honest feedback — what would make them engage, scroll past, or what's missing. Use on customer-impact deliverables before sending.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
contextstringOptional additional context about what this deliverable is for, who will see it, or what outcome you want
deliverablestringyesThe content/report/strategy you want the simulated customer to evaluate
deliverable_typestringyesWhat type of deliverable this is — helps the customer evaluate appropriately
target_icpstringICP ID to use (from get_icps), or "auto" to use the first available. Default: auto

No output schema declared.

No examples provided.

check_my_inbox ~239

Check your own agent email inbox (receive-only) for messages sent to your @agents.getfreedomos.com address, and read them. Returns recent unread messages: sender, subject, a safe text snippet, any OTP codes, and login links that are safe to open — reads only YOUR mailbox. Use when a login, sign-in, or verification flow tells you it emailed a one-time code or magic link to your agent address and you need to retrieve it. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
from_domainstringOnly return mail whose sender is at this domain (e.g. "getfreedomos.com").
limitnumberMax messages to return (default 10, cap 25).
since_minutesnumberOnly return mail received within the last N minutes (e.g. 15 for a fresh login code).

No output schema declared.

No examples provided.

claim_product_request_for_builder ~199

Mint a paste-ready Builder claim recipe for a FreedomOS product request so a host coding agent (Grok Build / Claude Code) with Harness + gstack can implement the class fix. Pins the FreedomOS frontier coding model (TIER_ROLES.frontier). Does NOT run the coding agent or open a PR by itself — use after product team accepted the request. FreedomOS product-inbox members only. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
request_idstringyesrequest_id UUID from submit_product_request
stamp_claimbooleanIf true (default), stamp context_payload.builder_claim {claimed_at, frontier_model, by} on the card.

No output schema declared.

No examples provided.

clear_pipeline_learnings ~155

Reset all learnings for a pipeline and start fresh. Use when user says "forget what you learned", "start fresh with the style", "reset the learnings", or "clear the feedback history". [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
output_formatstringOptional. Only clear learnings for a specific format. If not specified, clears all formats.
pipeline_idstringyesPipeline ID (get from list_pipelines)

No output schema declared.

No examples provided.

complete_commitment ~125

Mark a commitment as completed. Use when the user says they finished something or a deadline has passed. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
commitment_idstringThe UUID of the commitment to complete
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
title_searchstringSearch by title if ID not known (fuzzy match)

No output schema declared.

No examples provided.

configure_dashboard ~612

Create or update a widget on your agent dashboard. Use this to display key metrics, charts, tables, or timelines that help the user understand your work at a glance. Each call creates or updates one widget. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
configobjectWidget configuration. Shape depends on widget_type: - metric: { value, previous_value, format ("number"|"currency"|"percent"|"text"), trend_direction ("up"|"down"|"flat"), suffix } - chart: { chart_t…
dataarrayData rows for chart/table/list/gantt widgets. Each item is an object. - chart: [{ label: "Jan", value: 100 }, ...] - table: [{ col1: "val", col2: "val" }, ...] - list: [{ label: "Item", status: "done…
is_visiblebooleanWhether the widget is visible on the dashboard. Default: true
positionnumberDisplay order (0 = first, higher = later). Default: 0
titlestringyesDisplay title for the widget (e.g., "Monthly Revenue", "Content Pipeline")
widget_idstringUUID of existing widget to update. Omit to create a new widget.
widget_typestringyesType of widget to create

No output schema declared.

No examples provided.

confirm_mcp_approval ~269

Confirm a pending MCP capability approval by spoken (or chat) yes/no. Pass approval_id from the approval_required tool result. decision: approve | reject | later. Runs the SAME process-approval pipeline as tapping Approve on the card — does not bypass integrity rails. Use on voice when the operator says approve/yes or reject/no after a capability ask. Do NOT invent an approval_id. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
approval_idstringyesUUID of the pending mcp_tool_call approval card (from approval_required.approval_id)
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
decisionstringyesapprove | reject | later (yes/no/go also accepted)
grant_modestringapprove only: 'once' runs without standing grant (default for spoken path); 'standing' also grants future calls
utterance_snippetstringOptional short quote of what the operator said (audit; ≤200 chars)
voice_session_idstringOptional voice session id if known (audit only)

No output schema declared.

No examples provided.

create_attention_directive ~325

Queue a short instruction for an external coding/builder session (Grok terminal, Claude Code, or future FreedomOS runtime). Does NOT type into their UI — the session must poll FreedomOS (poll-fo-directives.sh or list_attention_directives) and act. Use when the operator says "tell Grok…", "have Claude…", or CoS should route reversible work off the call. Pass the same target_session_id the host polls (e.g. grok-<id>, claude-<id>). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
company_idstringOptional company context (portfolio id). Does not change auth — row stays operator-scoped.
instructionstringyesOne clear instruction for that session (1–4000 chars). Imperative, not a transcript dump.
sourcestringOptional provenance: voice_cos | chat | api | system. Default derived from door.
target_hoststringHost adapter: claude-code | claude-desktop | grok | manual | slack | github | freedomos | other
target_session_idstringyesStable id the host polls (1–200 chars). Examples: grok-$SESSION, claude-code-$SESSION. Must match the poller.

No output schema declared.

No examples provided.

create_feature ~263

Add a new feature to the Feature Index. Use when user says "I built X", "add feature Y", "track this capability", or describes a product feature they want to market. Features can later be pushed to Content Pipeline for marketing content. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
categorystringCategory (e.g., "ai", "marketing", "finance", "automation")
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
demo_urlstringURL to a demo video (Screen Studio, Loom, etc.)
descriptionstringMarketing-ready description of the feature
feature_idstringUnique slug for the feature (e.g., "ai-content-pipeline")
limitsstringCurrent limitations (e.g., "LinkedIn only", "Beta users only")
solvesarrayProblems/pain points this feature solves (e.g., ["manual posting", "writer's block"])
titlestringyesDisplay title (e.g., "AI Content Pipeline")

No output schema declared.

No examples provided.

create_folder ~136

Create a folder in the knowledge base for organizing files. Folders can be nested (e.g., "partners/acme"). Use for deal rooms, topic grouping, or any organizational structure. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
namestringyesFolder name (e.g., "acme-deal", "partners/acme"). Nested paths are supported.

No output schema declared.

No examples provided.

create_google_doc ~175

Create a new Google Doc in the user's Freedom OS folder. Use for JDs, deliverables, and shared documents. By default, creates beautifully formatted docs. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
contentstringyesContent for the document in markdown format
folderstringWhich folder to save in
format_for_humansbooleanIf true (default), converts markdown to rich formatting. Set false for agent-to-agent docs.
titlestringyesDocument title (e.g., "Marketing Specialist JD")

No output schema declared.

No examples provided.

create_icp ~437

Create a NEW Ideal Customer Profile (ICP) from scratch and save it — no Customer Hunter UI needed. Use this when get_icps returns hasICPs:false (the company has none yet) or to add another target customer profile. To CHANGE an existing ICP, use update_icp instead. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
agentProfileobjectHow this customer's own AI agent participates in buying: { tier: 'ambient' | 'assisted' | 'delegated' | 'builder', agents: string[], surfacesRead: string[], purchasePath: string, autonomyNotes: strin…
channelsarrayWhere they spend attention.
classstring'customer' (default) or 'partner' — partner = a distribution/affiliate ICP, not an end-buyer.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
demographicsobjectrole, companySize, industry, techStack[].
dreamOutcomestringThe outcome they dream of.
financialProfileobjectrevenueRange, typicalDealSize, budgetAuthority, buyingBehavior, growthStage, priceSensitivity.
namestringyesPersona name. Required. Used to derive the ICP id/filename. INTERNAL targeting label (may be an evocative codename) — never published.
nightmareScenariostringThe 3am problem / nightmare scenario.
painThemesarrayRecurring pain themes.
publicNamestringThe public-facing audience label to use in published copy — NEVER the internal persona name/codename. Plural noun phrase, e.g. "compounding pharmacy owners". Optional — auto-generated from the person…
techSavvinessstringTech comfort level.
titlestringOne-line descriptor of the persona.

No output schema declared.

No examples provided.

create_key_result ~328

Add a key result to an objective (the KR in OKR). Key results are measurable outcomes that track progress toward the objective. You can identify the parent objective by title or ID. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
assigned_tostringUser ID or "me"/"current_user" to assign to
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
current_valuenumberCurrent progress value (default: 0)
due_datestringDue date (YYYY-MM-DD). Strongly recommended — a KR without one cannot expire or alarm.
measure_sourcestringBind current progress to a live data source so it auto-updates daily instead of relying on manual edits. One of: stripe_active_subscribers (active paying Stripe subscriptions), stripe_mrr ($ MRR), cr…
objective_idstringID of the parent objective (optional if using objective_title)
objective_titlestringTitle of the parent objective (use this or objective_id)
target_valuenumberTarget value to achieve
titlestringyesKey result title (measurable outcome)
unitstringUnit of measurement (e.g., "%", "$", "users", "trees")

No output schema declared.

No examples provided.

create_master_plan ~134

Initialize a new multi-step project with a persistent Master Plan artifact. Call this BEFORE starting any complex, multi-tool task. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
initial_planstringyesThe high-level plan or blueprint for the task.
task_titlestringyesShort title for the task (e.g., "Influencer CRM Build")

No output schema declared.

No examples provided.

create_meta_ad_draft ~341

Create a complete Meta (Facebook/Instagram) ad draft — campaign + ad set + creative + ad — ALL in PAUSED state, spending nothing. Use when the user wants to set up or draft an ad. Activation is a separate human-approved step (set_meta_ad_status). [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
ad_account_idstringAd account (act_<digits>). Optional when the connection has exactly one.
campaign_namestringyesCampaign name, e.g. "PCAI cold traffic — Compliance Crusader v1"
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
ctastringOptional call-to-action: LEARN_MORE, SIGN_UP, GET_STARTED, CONTACT_US, DOWNLOAD, SUBSCRIBE
daily_budgetnumberyesDaily budget in the account currency, major units (e.g. 25 = 25 USD/day)
image_artifact_idstringOptional agent_artifacts image id for the creative
link_urlstringyeshttps destination URL (landing page, with UTMs)
objectivestringOUTCOME_TRAFFIC (default) | OUTCOME_AWARENESS | OUTCOME_ENGAGEMENT
primary_textstringyesThe ad copy (primary text)
targetingobjectAudience: {countries: ["US"], age_min, age_max, interests: [{id, name}]}

No output schema declared.

No examples provided.

create_objective ~194

Create a new objective (the O in OKR). Objectives are aspirational goals. After creating one, use generate_key_results to get intelligent, context-aware key result suggestions, then create_key_result to add the best ones. An objective without key results has no way to measure progress. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
descriptionstringBrief context or notes about this objective. Do NOT include key results here.
titlestringyesObjective title - a clear, aspirational goal (e.g., "Build & Dogfood Freedom OS")
yearnumberYear for this objective (e.g., 2026)

No output schema declared.

No examples provided.

create_pipeline ~280

Create a new content pipeline to automate content creation. Use when user says "set up a changelog", "create a newsletter pipeline", "send team updates", "automate my X posts", or describes input→output automation. Output types: changelog (public product updates), team_update (internal team email via Freedom OS), report (email to specific recipients), customer_newsletter (external customers - requires user Email MCP like Mailchimp), social_post (x/linkedin/instagram/facebook/threads via the gated publish owner). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
inputsobjectInput sources to listen to
namestringyesName for the pipeline (e.g., "Weekly Newsletter", "GitHub to Changelog")
outputstringyesOutput type: changelog (public), team_update (internal team email), report (specific recipients), customer_newsletter (external - requires Email MCP), social_post (x/linkedin/instagram/facebook/threa…
personastringMarketing persona to use (alex, elon, or custom ID)

No output schema declared.

No examples provided.

create_play_from_activity ~228

Draft a Play (growth_tactics with steps + human review) from an oversized agent activity. Does not run the play — operator Agrees on Focus first. Use when a run hit step/continuation limits because the work is multi-unit. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
activity_namestringyesOversized activity to draft a Play from.
agent_idstringUUID of the agent.
agent_namestringName of the agent. Provide this or agent_id.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
draft_categorystring
draft_custom_instructionsstring
draft_goal_impactstring
draft_stepsarray
draft_titlestring
linked_kr_idstring
reasonstring

No output schema declared.

No examples provided.

create_spreadsheet ~103

Create a new Google Spreadsheet with optional headers. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
headersarrayColumn headers for the first row
titlestringyesSpreadsheet title

No output schema declared.

No examples provided.

create_tactic ~259

Create a new growth tactic for the company. Use when user wants to add a tactic, strategy, or action item. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
categorystringyesGrowth category: Leads (lead acquisition), Conversion (leads to customers), Customer Lifetime Value (retention), Time (automation)
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
descriptionstringDetailed description of the tactic
linked_kr_idstringOptional key-result id the tactic most advances (validated against the company OKRs). If omitted, the most off-track KR of the bound objective is chosen.
objective_idstringOptional OKR objective UUID to bind this tactic to (validated against this company). If omitted, the binding is auto-inferred from the category→OKR map.
prioritystringPriority level
statusstringCurrent status of the tactic
titlestringyesThe tactic title (e.g., "LinkedIn Content Strategy")

No output schema declared.

No examples provided.

deactivate_agent ~169

Deactivate (archive) an AI agent/specialist from the team. Use when user says "remove [agent]", "deactivate [agent]", "archive [agent]", "fire [agent]", "delete [agent]". The agent is soft-deleted (is_active=false) and can be reactivated later. Cannot deactivate Linnet (the orchestrator). [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
agent_idstringyesUUID of the agent to deactivate
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
reasonstringOptional reason for deactivation

No output schema declared.

No examples provided.

decide_command_center_item ~335

Approve or deny a Command Center card. This processes the decision through the full approval pipeline including trust scoring, autopilot evaluation, skill learning, and deliverable queue progression. [sensitive-tier, initiates a multi-step agent process — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
decisionstringyesThe decision: approved, denied, snoozed, or dismissed (dismissed = honest acknowledgment of a blocked_on_you card — never resolves it)
feedbackstringOptional feedback, especially important for denials. Be specific.
grant_modestringCapability-approval (mcp_tool_call) cards only: 'once' runs the approved call WITHOUT granting the capability for future calls (the next identical call asks again); 'standing' (the default when omitt…
item_idstringyesUUID of the Command Center card to decide on
revisebooleanrevise:true with decision:"denied" sends the card back to the producing agent to redo with your feedback (feedback required in that case) — nothing publishes. Re-runs the originating activity and re-…

No output schema declared.

No examples provided.

delete_icp ~179

Delete a saved Ideal Customer Profile (ICP). Mirrors the Customer Hunter UI's delete: deactivates any reviewer agent built from this ICP, strips it from every content pipeline that targets it, then ARCHIVES (does not permanently remove) the ICP file. Use when the user says "delete this ICP", "remove this customer profile", or "get rid of this persona". [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
icp_idstringyesThe unique ICP ID from get_icps response.
reasonstringOptional. Why this ICP is being deleted.

No output schema declared.

No examples provided.

delete_idea ~123

Delete an idea from Ideas. Can identify by content snippet, ID, or "newest"/"latest". [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
idea_identifierstringyesHow to find the idea: UUID, content snippet, or "newest"/"latest" for most recent

No output schema declared.

No examples provided.

delete_key_result ~218

Archive a key result (safe delete — recoverable, never hard-deleted). The KR is moved out of the objective's live list into a recoverable archive. Identify by title (preferred) or ID; optionally scope by parent objective. If the title is ambiguous it refuses and lists the matches — pass an ID to disambiguate. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
key_result_idstringID of the key result (optional if using key_result_title)
key_result_titlestringTitle of the key result to archive (use this or key_result_id)
objective_idstringID of the parent objective (optional)
objective_titlestringTitle of the parent objective, to scope the search (optional)

No output schema declared.

No examples provided.

delete_knowledge ~123

Archive a knowledge file by slug (soft delete). The file is moved to _archived/ and can be restored later. Use when the user explicitly asks to remove a knowledge document. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
slugstringyesThe slug of the knowledge file to delete

No output schema declared.

No examples provided.

delete_objective ~159

Archive an objective and its key results (safe delete — recoverable, never hard-deleted). Identify by title (preferred) or ID. If the title matches more than one objective it refuses and lists them — pass an ID to disambiguate. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
objective_idstringID of the objective (optional if using objective_title)
objective_titlestringTitle of the objective to archive (use this or objective_id)

No output schema declared.

No examples provided.

delete_tactic ~129

Archive a tactic (safe delete - recoverable). Can identify by title instead of ID. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
tactic_idstringID of the tactic to archive (optional if using tactic_title)
tactic_titlestringTitle of the tactic to archive (use this or tactic_id)

No output schema declared.

No examples provided.

deliberate ~375

Run an adversarial deliberation on a decision. Multiple AI perspectives argue opposing positions over multiple rounds, iteratively strengthening arguments, and converge on a recommendation with confidence scoring. Use for important decisions where you want to stress-test options from multiple angles. Over MCP the deliberation runs in the background: the first call returns a run_id immediately; call deliberate again with { run_id } (plus the same companyId) after ~1-2 minutes to fetch the result. Routing: Important decision → deliberate for adversarial analysis

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
contextstringGoals, constraints, values, and relevant data that should inform the deliberation. The more context, the better the arguments.
criteriaarrayOptional weighted evaluation criteria. Each item should have "name" (string) and "weight" (number 0-1, should sum to ~1). If omitted, defaults are generated.
max_roundsnumberMaximum rounds of deliberation (default: 5). More rounds = better arguments but more compute.
positionsarrayTwo or more positions to argue. Each should be a clear, distinct option — e.g., ["Mobile app development", "API partnerships", "Content marketing"]. Required unless polling with run_id.
questionstringThe decision or question to deliberate. Be specific — e.g., "Should we invest in mobile app development or API partnerships for growth in Q2?" Required unless polling with run_id.
run_idstringPoll a background deliberation started earlier (MCP mode). Pass the run_id returned by the starting call, with the same companyId. Omit question/positions when polling.

No output schema declared.

No examples provided.

derive_capability ~210

Scan the company's connected source code (its GitHub repo, via the Pulse connection in Smart Tools) and DRAFT a capability list — shipped FEATURES (each citing the file that proves it) plus attempted can't-do LIMITS — for the operator to ratify. It writes NOTHING: only items the operator ratifies become authoritative capability the marketing agents and the Integrity Gate use. Read-only; never executes or sends code. If no repo is connected it tells the operator to connect one in Pulse first. Use to populate or refresh a software product's capabilities without hand-maintaining them. Routing: Operator wants to pull their product's real features from its code (instead of typing them) → use this [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.

No output schema declared.

No examples provided.

derive_from_website ~219

SPIKE tool (.agent/design-docs/2026-07-09-magical-onboarding-buildout-mode.md, "The Assignment"). Give it a business's public URL; it reads the page and returns a derived ICP, a derived brand voice, and 3 ready-to-post drafts written in that voice — the onboarding lead magnet's engine, spike-grade. Nothing is persisted to any company. Use when your operator asks you to run the website-derivation spike against a real business URL, to show the operator what an agent team can already see about their business. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
urlstringyesThe business's public URL to derive from (must include https:// or http://) — their homepage or an About/product page.

No output schema declared.

No examples provided.

draft_outreach ~862

Produce two outreach draft variants (A/B) for a lead given an angle. Both drafts are warm and kind by design (P10) — variants differ in angle of helpfulness (subject hook, opening framing, call-to-action) not in tone. Drafts are written to lead_drafts as pending_review. Returns IDs + previews. Use after synthesize_lead_hypothesis to draft initial outreach. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
anglestringyesThe outreach angle to use (e.g., 'deeper_lp3_discovery', 'lighter_touch_different_hook', 'jurisdiction_clarification', 'kind_check_in'). Take from synthesize_lead_hypothesis.suggested_angle if unsure.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
company_contextstringOptional short summary of the company the lead arrived at (e.g., 'Acme Health — pharmacy compounding compliance consulting'). Helps the model pitch correctly.
eligible_atstringOptional ISO timestamp — the earliest real time this draft may be sent (2026-07-13 send-timing gate). For a sequence step, pass now + that step's delay_hours (an ESTIMATE; the send-gate re-stamps it…
from_namestringOptional sender display name (e.g., 'Acme Team', 'Alex at Acme'). Used in draft signature. When omitted, the CONTRACT-5 chain resolves it: the company's mcp_connections.resend.auth_config.from_name,…
journey_summarystringyesShort prose summary of what we know about this lead (their state, recent activity, what they engaged with). Used as context for the draft. Synthesis.intent_summary + 1-2 notes works well.
lead_idstringyesUUID of the lead.
regenerated_reasonstringOptional (regenerate-on-signal, 2026-07-15). When the sequencer re-drafts a not-yet-sent step after a meaningful lead signal (temperature flip to hot, a click), it passes a short human-readable reaso…
reply_tostringOptional Reply-To address to carry on the eventual send (CONTRACT-1 agent thread address). Stamped into both drafts' metadata (best-effort — the metadata column is additive); send_lead_draft reads it…
sequence_idstringOptional. The outreach_sequences.id the step belongs to. Pass it together with sequence_step_id to enable the A/B prior-stats bias — step ids repeat across sequences (step1…stepN), so stats are only…
sequence_step_idstringOptional. If this draft is part of an auto-mode sequence step, pass the step_id from outreach_sequences. Otherwise omit (manual one-off draft).
variant_b_guidancestringOptional (CONTRACT-3). Sequence-designed seed for the B variant — a distilled subject+body angle persisted on the sequence step (steps jsonb, additive variant_b_guidance key). When present, variant_b…

No output schema declared.

No examples provided.

draft_tenet_from_signal ~193

Draft a company tenet (mission or vision) FROM the company's existing website, for the operator to ratify or edit — instead of asking them to type it into a blank field. Use when a tenet is empty but the company already exists (has a website). Returns a DRAFT proposal with evidence and a confidence level; it writes NOTHING — the operator authors by confirming (Slice-3 update_company). The agent is a mirror, not an author: the draft is grounded in the site, never invented. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
tenetstringyesWhich tenet to draft from the website signal

No output schema declared.

No examples provided.