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 4

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

+10 this week 67 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 Management30
  • Stability observed for 9 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.

  • 4 Aug 26 +1

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

  • 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 “first_72_hours” cosmetic
    • “hire_agent_with_context” reworded the description of “obsession” 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
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 4 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
posthog_query_funnel ~156

Build and run a funnel analysis in PostHog. Shows step-by-step conversion rates (e.g., signup → onboard → purchase). Only works if PostHog is connected.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
date_fromstringStart date (default: -30d)
date_tostringEnd date (default: now)
eventsarrayyesFunnel steps (minimum 2). Each: { id: "event_name", name: "Display Name" }
funnel_window_daysnumberDays a user has to complete the funnel (default: 14)

No output schema declared.

No examples provided.

posthog_query_trends ~177

Query event trends from PostHog (pageviews, signups, DAU, etc. over time). Returns time-series data. Only works if PostHog is connected.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
date_fromstringStart date: "-7d", "-30d", "-90d", "2024-01-01" (default: -7d)
date_tostringEnd date (default: now)
eventsarrayEvents to query. Each: { id: "$pageview", name: "Page Views", math: "total" }. Defaults to $pageview.
intervalstringGrouping interval (default: day)

No output schema declared.

No examples provided.

preview_meta_ad ~102

Get a facebook.com preview link for a drafted Meta ad, so the user can see exactly what it will look like before deciding to activate. Use after create_meta_ad_draft or when the user asks to see a drafted ad.

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

No output schema declared.

No examples provided.

promote_corpus_to_content ~220

Mint the NEXT content angle(s) from the company's corpus into content_ideas + Command Center cards. Default count is 1 — do NOT bulk-fill the queue. For day-to-day drafting, prefer list_knowledge / read_knowledge (or list_corpus_inventory) to pull one chapter/passage JIT — that avoids re-tokenizing the whole book. Use promote only when a human-facing card is needed (weekly queue, Held post, operator asked). Faith grain: angles only. Never invent from empty corpus. [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.
countnumberHow many angles (1-3, default 1). Prefer 1.
themestringOptional focus (e.g. "Harness principles", "pharmacy USP")

No output schema declared.

No examples provided.

propose_work ~241

Create a new shared work-graph item (lab_work_items) so it is visible and coordinated across sessions and agents. Set depends_on to gate this item behind others (it starts blocked until they complete). Optionally pre-assign to an agent OR a user. [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
assignee_agent_idstringOptional linnet_agents UUID to assign (agent owner).
assignee_user_idstringOptional auth user UUID to assign (human owner). Cannot be combined with assignee_agent_id.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
depends_onarrayOptional array of lab_work_items UUIDs this item is blocked by.
kindstringKind of work (e.g. task, review, content). Default "task".
payloadobjectOptional structured detail for the item.
titlestringyesShort title of the work item.

No output schema declared.

No examples provided.

publish_pipeline_item ~283

Publish approved INTERNAL content to configured output. ROUTING: team_update sends to all team members via Freedom OS, report sends to specified team member emails, customer_newsletter requires user Email MCP connection (Mailchimp, Resend, etc.), changelog publishes to public changelog page. ⚠️ SOCIAL POSTS (x/linkedin/instagram/facebook/threads) never send from this tool: declare the pipeline destination via update_pipeline and submit via submit_content_to_pipeline — the post queues for operator approval and publishes through the single gated owner on approve (in FreedomOS app chat, send_to_user with intent "publish" queues the same approval). Use when an approved non-social item — changelog, team update, report, or newsletter — is ready to send. [outbound-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.
item_idstringyesID of the approved pipeline output to publish (get from get_pending_approvals, must be approved status)
recipientsarrayOptional. Specific team member emails to send to (must be in company_members). If not specified, sends to all team members.

No output schema declared.

No examples provided.

query_lead_journey ~119

Reconstruct the full journey of a lead — what they did on the site, what they signaled, what we have already sent them. Returns structured data that downstream synthesis or drafting tools consume. Use this as the first step before synthesizing a hypothesis about why a lead behaved a certain way or drafting outreach to them.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
lead_idstringyesUUID of the lead in the leads table.

No output schema declared.

No examples provided.

query_sme ~332

Query an external Subject Matter Expert (SME) AI for verified domain knowledge. The SME's answers are grounded in verified rules and go through a rigorous verification pipeline — this is NOT a general search, it's consulting a domain expert. Use this when: - You need factual, verified information for content creation (social media, blog posts, newsletters) - You want to fact-check a claim before publishing - You need talking points grounded in domain expertise - You're creating content about a domain the SME covers Available SME sources: - "conduit" — Pharmaceutical compounding compliance expert (USP 795/797/800, state regulations) Routing: pharma / USP 795·797·800 / sterile·non-sterile compounding / BUD / board-of-pharmacy compliance fact you must get right → call query_sme (the verified Conduit SME) to fact-check it BEFORE escalating to a human or deriving the rule yourself; cite its sources

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
contextstringOptional context about why you're asking — helps the SME give a more relevant answer. E.g., "I'm creating a social media post about cleanroom best practices"
questionstringyesThe question to ask the subject matter expert. Be specific and clear.
sme_sourcestringWhich Expert to consult, by key. "conduit" (pharmaceutical compounding compliance) is always available; your company may have additional Experts configured. Defaults to "conduit".

No output schema declared.

No examples provided.

ratify_capability ~226

Persist the operator-CONFIRMED derived features (from derive_capability) into the product capability index as source='derived'. Call ONLY with features the operator has ratified — each then becomes an authoritative capability the marketing agents and the Integrity Gate use. Idempotent (re-ratifying updates in place). Derived can't-do limits are drafted for awareness but authored separately for now. Routing: Operator confirmed the derived features from derive_capability → persist them with this [sensitive-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
featuresarrayyesThe operator-confirmed features to persist. Each needs a title; description/solves/evidence/feature_id optional.
scan_hashstringOptional repo commit SHA the derivation came from (recorded for re-scan reconciliation).

No output schema declared.

No examples provided.

read_google_doc ~68

Read content from an existing Google Doc by its ID.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
doc_idstringyesGoogle Doc ID (the long alphanumeric string from the URL)

No output schema declared.

No examples provided.

read_knowledge ~203

Read a Markdown knowledge file by slug. Slugs are folder-qualified with NO file extension (e.g. "canon/tim-voice-guide", "content-captures/2026-07-06-forgiveness-and-the-debt") — never repo-style paths, never ".md". Returns the full content plus a list of available sections. Use this to load guidelines, SOPs, or strategies before doing work that needs to reference them.

NameTypeReqDescription
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
scopestring"company" (default) reads a company-shared file; "personal" reads from the current user's private notes.
slugstringyesFolder-qualified slug with no extension, e.g. "canon/tim-voice-guide" (from list_knowledge or a save_knowledge result). Never a repo-style path, never ".md".

No output schema declared.

No examples provided.

read_sheet ~81

Read data from a Google Spreadsheet.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
rangestringA1 notation range (e.g., "Sheet1!A1:D10"). Defaults to all data.
spreadsheet_idstringyesSpreadsheet ID

No output schema declared.

No examples provided.

read_web_page ~138

Read a web page and return its content as clean markdown. Use when the user asks to read, analyze, summarize, or extract information from a specific URL. Also useful for competitor research, checking a website, or reading an article. [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 full URL to read (must include https:// or http://)

No output schema declared.

No examples provided.

reassign_reports ~156

Reassign all scheduled reports from one agent to another. Use when user says "reassign reports", "transfer reports to [agent]", "move reports from [agent] to [agent]". Useful after deactivating an agent or hiring a replacement. [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.
from_agent_idstringyesUUID of the agent to transfer reports FROM
to_agent_idstringyesUUID of the agent to transfer reports TO

No output schema declared.

No examples provided.

recalibrate_agent_jd ~209

Regenerate an agent's JD using fresh company context. Updates mission, expertise, guardrails, success metrics, and optionally activity plans. Works for both hired agents and Linnet. Use when the company has evolved, an agent needs recalibration, or the user wants to refine an agent's direction. [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 recalibrate. Use get_team_roster to find IDs.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
focus_areasstringOptional user guidance for recalibration, e.g. "focus more on SEO" or "add financial analysis"
regenerate_activitiesbooleanAlso regenerate the activity plan (default: false — preserves evolved activities)

No output schema declared.

No examples provided.

remove_agent_activity ~223

Retire ONE activity from an agent's plan. Soft-archive (recoverable): the activity is MOVED to jd_content.archived_activities and removed from the live plan, so the agent stops running it. Never hard-deletes. [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_indexnumber0-based index into the activity plan. Alternative to activity_name.
activity_namestringEXACT (case-insensitive) name of the activity to retire. Provide this or activity_index.
agent_idstringUUID of the agent. Optional if agent_name is provided.
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.
reasonstringOptional reason for retiring (recorded on the archive + audit log).

No output schema declared.

No examples provided.

remove_background ~233

Remove the background from an existing image, leaving the main subject isolated on a transparent background (PNG). Routing: "isolate the subject", "make background transparent", "remove background" → use this (1 credit) [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
artifact_idstringID of an existing artifact from the MEDIA block.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
folderstringOptional Media gallery folder to file this into (freeform name, e.g. "q3-campaign" or "brand-assets"). Shown as a folder chip on the /media page. Reuse an existing folder name when the work belongs t…
folder_namestringSubfolder name for Drive save.
image_urlstringURL of the raster image to process.
save_to_drivebooleanIf true, saves to Drive.

No output schema declared.

No examples provided.

remove_dashboard_widget ~93

Remove a widget from an agent dashboard. [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.
widget_idstringyesUUID of the widget to remove

No output schema declared.

No examples provided.

report_feedback ~397

Report an error, issue, observation, or suggestion you encountered during your work. Use this proactively when you notice something noteworthy — tool failures, recurring problems, quality issues, or improvement ideas. This helps the founder track and act on agent insights over time. Routing: For issues YOU observe doing tenant work (tool failures, quality patterns) — lands in the operator's own observability feed. If the operator is reporting that FreedomOS ITSELF (platform UI/MCP/runtime) is broken or missing a capability, route to submit_product_request instead — FO product inbox only. Do NOT use submit_product_request for the tenant's own app/product/KB/retrieval gaps. [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
categorystringyesType of feedback. error = something broke. warning = something might break. observation = pattern noticed. suggestion = improvement idea. blocker = cannot complete task.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
context_jsonstringOptional JSON-encoded structured context (error codes, retry counts, URLs, timestamps, etc.). Example: "{\"status\":429,\"retries\":3}".
descriptionstringyesDetailed explanation. Include: what happened, what you expected, what you tried, and any error messages or codes.
severitystringHow urgent this is. Default: medium. Use critical only for data loss or security issues.
titlestringyesShort summary of the issue (1 line). Be specific — "Buffer API returns 429 on image posts" not "API error".
tool_namestringThe tool that was involved, if applicable (e.g., "generate_image_xai", "post_to_x").

No output schema declared.

No examples provided.

request_attention_spawn ~282

Request a NEW local coding session from voice/chat (tab spawn). Queues a sticky for the desk launcher on THIS operator's machine (host must run attention-launcher). Use when they say "start a Grok/Claude on …", "new build for …", "open a session for …". Does not open a cloud IDE — the local launcher opens Terminal + announces + optional first directive. [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.
cwdstringWorking directory on the operator machine (e.g. /Users/…/GitHub/freedom-ai). Prefer absolute paths they already use.
first_instructionstringOptional first work sticky delivered after the new session announces (imperative).
goalstringyesOne-line goal for the new session (1–500 chars).
hoststringyesWhich builder to open: grok (Terminal) | claude-desktop (Claude.app Code — preferred) | claude-code (Terminal CLI)
session_idstringOptional stable session id; default auto-derived from host + project.

No output schema declared.

No examples provided.

request_connector ~215

Request that the operator connect an external integration (MCP connector) so you can use its tools. Provide the connector name from search_connector_registry and a short reason for the capability gap it closes. Creates a one-click approval card for the operator. If the connector is NOT on the vetted allowlist, it becomes a "vet this connector" request instead. This does not connect anything by itself and never spends money. [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.
connectorstringyesName of the connector to request (from search_connector_registry, e.g. "Amazon Ads").
reasonstringWhy you need it — the capability gap it closes (e.g. "run the KDP book ad campaign").

No output schema declared.

No examples provided.

request_content_revision ~165

Request changes to a content item. Use when user says "revise this", "change the tone", "make it shorter", or provides feedback on pending content. The content will be re-transformed with their feedback. [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.
feedbackstringyesUser's feedback on what to change (e.g., "make it shorter", "more professional tone")
item_idstringyesID of the pipeline output to revise (get from get_pending_approvals)

No output schema declared.

No examples provided.

resolve_brand_guide ~191

Draft a first brand guide (personality tone, visual/positioning dos and donts) EXTRACTED from the company's own canon documents, with a verified receipt (quote + source doc) on every proposed item. Proposes only — never saves anything; the user reviews the receipts and accepts, then the accepted items are applied via update_brand_guidelines. Use when the user accepts an offer to build their brand guide from existing material, or explicitly asks to assemble a brand guide from what is already on file. For a company with no material on file, this returns nothing — ask 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
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.

No output schema declared.

No examples provided.

resolve_work ~176

Mark a shared work-graph item resolved — verified (default), published, or cancelled. In the full system, resolving an item cascades to unblock items that depend on it, so this is a process-initiator. Optionally record a verified_outcome. [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.
outcomeobjectOptional structured verified_outcome to record.
statusstringTerminal status (default "verified").
work_item_idstringyesUUID of the lab_work_items row to resolve.

No output schema declared.

No examples provided.

retire_feature ~204

Archive (retire) a feature so it stops showing to readers and agents, or restore a previously retired one. Safe-archive ONLY — never hard-deletes; retiring is fully reversible. Use when a feature is no longer accurate, was replaced, or the user says "remove this feature", "retire X", or "un-retire X". [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.
feature_idstringyesThe feature_id slug (e.g., "ai-content-pipeline") or UUID.
reasonstringOptional note on why this feature is being retired.
restorebooleanSet true to un-retire (restore) a previously archived feature. Default false.

No output schema declared.

No examples provided.

revoke_agent_tool ~192

Remove ONE specific tool from an agent's loadout (tool_access). Use when an operator says "take <tool> away from <agent>" — or to clean a phantom/stale name out of a loadout (unresolvable names ARE removable here, unlike grant). Reports honestly when the name was not present, and when the tool is a universal base tool the runtime keeps available regardless. [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
agent_idstringyesUUID of the agent. Use get_team_roster to find IDs.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
tool_namestringyesExact loadout entry to remove (phantom/stale names allowed).

No output schema declared.

No examples provided.

run_quality_check ~227

Evaluate content or media against your ICP persona using Gemini 3.1 Pro vision. Actually SEES images and WATCHES videos. Returns quality scores (1-10) across 6 dimensions + specific ICP feedback. Use after generating media or drafting content to validate quality before delivering to the user. [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
artifact_idstringID of a specific artifact to evaluate (from generate_image or generate_video result). If omitted, auto-finds the most recent media artifact.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
contentstringText content to evaluate (X post copy, email draft, newsletter). Can be combined with artifact_id for text + visual evaluation.
taskstringWhat this deliverable is for (e.g. "X post about Freedom OS launch"). Gives the ICP evaluator context.

No output schema declared.

No examples provided.

run_tactic ~281

Run a saved Play (growth_tactics) for the company operator or agent — dispatch the next unit as a one-off draft activity, or dry-run a Play brief with suggest_only. Use when the operator or agent should execute an Agreed play this cycle (same owner as Focus “Run play”), or preview cast/steps/cost without spend. Structured plays require plan Agree before dispatch; suggest_only does not. [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
agent_namestringOptional: override which agent runs it (else resolved from the tactic's lane or assignee).
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
suggest_onlybooleanIf true, return Play execution brief only (who / steps / readiness / estimate) — no dispatch, no spend, no Agree required. Use for Chat/MCP dry-run before Run.
tactic_idstringUUID of the Play/tactic to run (use this or tactic_title).
tactic_titlestringTitle (or fragment) of the Play/tactic to run (use this or tactic_id).

No output schema declared.

No examples provided.

save_artifact ~197

Save an artifact (screenshot, analysis, report) to the company archive. Use after browse_url to persist visual evidence, or to save any agent-produced artifact for future reference. [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
artifact_typestringyesType of artifact being saved
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
descriptionstringWhat this artifact shows or contains
metadata_jsonstringOptional JSON-encoded metadata (scores, analysis results, etc.).
source_urlstringURL the artifact relates to (if applicable)
storage_pathstringStorage path where the file was uploaded
titlestringyesShort descriptive title for the artifact

No output schema declared.

No examples provided.

save_knowledge ~451

Save a Markdown knowledge file. Use for guidelines, SOPs, strategies, playbooks, meeting notes, contact lists, trackers, or any reference material that agents read and update over time. Pass scope="personal" to save private notes visible only to the current user (e.g., notes tied to their commitments). [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 knowledge content in Markdown format. FORMATTING RULES: Use ## headers for sections (NOT **bold**). Put a blank line between every paragraph and before/after lists. Use - for list items. Structur…
folderstringOptional folder to save the file in (e.g., "acme-deal", "partners/acme"). Folders are auto-created. Use for organizing related files, especially for deal rooms or shared contexts.
override_duplicate_reasonstringONLY after the canon gate refused this save as a duplicate: a specific reason why this file is NOT a duplicate of the canonical file the refusal named. Overrides are logged and visible to the operato…
scopestringWhere to save: "company" (default) = shared with the whole company; "personal" = private to the current user only. Use "personal" for notes tied to a specific person (e.g., context for the user's com…
slugstringOptional custom slug for the filename. If omitted, auto-generated from the title.
titlestringyesDescriptive title for this knowledge file (e.g., "Acme Mascot Guidelines", "Content Strategy Q1")

No output schema declared.

No examples provided.

scan_product_signals ~254

Scan a company for product-system bugs and unlocks (failed/timed-out activity runs, blocked_on_you cards, open error agent_feedback) and return ranked product-request candidates for the FreedomOS product team. Use when the product team is hunting class bugs/unlocks across a portfolio tenant (dry-run by default; set file_top_n to file up to 5 bug cards). Does NOT invent feature fantasy — bias is bugs/unlocks only. For 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.
company_idstringyesTenant company_id to scan (e.g. …_the-optimal-company- or a portfolio co).
file_top_nnumberIf >0, file the top N signals as product_request decision cards (max 5). Default 0 = dry-run only.
lookback_daysnumberHow far back to look (1–60, default 14).

No output schema declared.

No examples provided.

search_ad_targeting ~112

Search Meta's ad-interest targeting catalog (returns interest ids + audience sizes). Use when designing a Meta ad draft and you need valid {id, name} targeting pairs for create_meta_ad_draft — e.g. search "pharmacy" or "compounding".

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
querystringyesInterest keyword, e.g. "pharmacy", "healthcare compliance"

No output schema declared.

No examples provided.

search_connector_registry ~143

Search the vetted connector registry for an external integration (MCP connector) you need but that is not yet connected. Returns ONLY FreedomOS-allowlisted connectors (e.g. ad platforms, analytics) — never the open internet. Use this when you hit a capability gap, then call request_connector with the name to ask the operator to connect one.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
querystringOptional keyword to filter by name or capability (e.g. "ads", "amazon", "analytics"). Omit to list the whole vetted catalog.

No output schema declared.

No examples provided.

search_conversations ~136

Search past conversations with the user. Use when the user says "remember when we talked about...", "haven't we discussed X before?", "what did we decide about...", or references any prior conversation. Returns matching conversations with relevant message snippets. Does NOT return the current conversation.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
limitnumberMax conversations to return (default: 5, max: 10)
querystringyesSearch terms — keywords, topics, or phrases from the conversation the user is referencing

No output schema declared.

No examples provided.

search_transactions ~82

Search transactions by description. Use when user asks about specific vendors, expenses, or payments.

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
limitnumberMax results (default: 10)
querystringyesText to search for in transaction descriptions

No output schema declared.

No examples provided.

segment_leads ~267

Organize, select, or clear a lead segment on the Leads tab by its exact source tag (e.g. 'csv:apc-cch-2024'). Validates the tag against the company's live segment tags and returns the exact-token filter plus a server-computed lead count (excluding do-not-contact, archived, and test leads). Read-only: the Leads tab applies the action; this tool changes no data and CANNOT enroll anyone — enrollment only happens via the Enroll button on the Leads tab. Use when the operator wants to focus the Leads tab on one segment or event — group it, select all its leads for enrollment, or clear that selection. Routing: CRM/sales → select or organize leads by segment/event tag → use this

NameTypeReqDescription
actionstringyes'organize' = group Leads tab by this segment; 'select' = select all leads in it; 'clear' = clear that selection.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
segment_tagstringyesExact segment tag token from crm_leads.source, e.g. 'csv:apc-cch-2024'. No substring matching — must match a live tag exactly.

No output schema declared.

No examples provided.

send_email ~654

Send an outbound email via the company's Resend connection. Resolves the per-company Resend API key + from identity, then sends to a single recipient. Honors the do_not_contact suppression list (crm_leads): if the recipient is marked do_not_contact, the send is refused. RECIPIENT RULE: when emailing a CRM LEAD, do NOT type their address yourself — draft with draft_lead_email/draft_outreach and deliver with send_lead_draft, which reads the lead's real email from the database. Only pass `to` directly for a non-lead recipient whose exact address the operator literally provided in this conversation. NEVER guess, infer, or fabricate an email address — a wrong guess sends a real email to a stranger. Use when the operator gives you an exact non-lead recipient address to email; for CRM leads use send_lead_draft instead. Routing: Send an outbound email to an operator-given address → use this; for CRM leads use send_lead_draft (DB-derived recipient, respects do_not_contact) [outbound-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
company_idstringCompany UUID. Optional — defaults to the caller's company context. Used to resolve the Resend key and scope the do_not_contact check.
draft_idstringOptional UUID of the lead_drafts row being sent. If provided, the Resend email id returned by the send is recorded onto that draft (resend_email_id) so engagement webhook events (opens/clicks/replies…
fromstringOptional explicit from address (e.g. "Jane <[email protected]>"). If omitted, defaults to no-reply@<resolved from_domain>.
htmlstringHTML body of the email. Provide html and/or text (at least one is required).
lead_idstringOptional UUID of the crm_leads row this email targets. Used for telemetry/linking; the do_not_contact check is keyed on (company_id, to) regardless.
reply_tostringOptional Reply-To address.
sequence_idstringOptional UUID of the outreach_sequences row backing an autonomous warm send. Required ONLY on the outreach-autosend path (executionSource=autonomous_warm); the warm-send gate verifies the sequence is…
subjectstringyesEmail subject line.
textstringPlain-text body of the email. Provide text and/or html (at least one is required).
tostringyesRecipient email address (single recipient).

No output schema declared.

No examples provided.

send_lead_draft ~210

Send an approved outreach draft to its lead via the company's Resend connection, then mark the draft 'sent'. This is the manual human-in-the-loop send: it delivers exactly one lead_drafts row (by id) to the lead's email and records sent_at + resend_message_id. Honors the do_not_contact suppression list (the send is refused if the lead is suppressed). Use after an operator approves a draft in the Leads tab. Routing: Operator approved an outreach draft and wants to send it → use this [outbound-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.
draft_idstringyesUUID of the lead_drafts row to send.
reply_tostringOptional Reply-To address for the outbound email.

No output schema declared.

No examples provided.

send_slack_message ~233

Send a message to a Slack channel or direct message to a team member. Use when user asks to "message X on Slack", "send a Slack message", "DM someone on Slack", "post to #channel", etc. [outbound-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]

NameTypeReqDescription
channel_namestringSlack channel name to post to (without #), e.g., "general", "engineering". Use this OR recipient_name, not both.
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
messagestringyesThe message text to send (supports Slack markdown: *bold*, _italic_, etc.)
recipient_namestringName of the person to DM (e.g., "Alex", "Jordan"). Will be looked up via linked accounts or Slack directory.
thread_tsstringOptional thread timestamp to reply in a thread

No output schema declared.

No examples provided.

set_attention_budget ~260

Set the founder's attention budget — the maximum pending review cards before they are 'overloaded' (a whole number 1–100; default 7) — for a manager or the founder. Use when the founder (or a manager on their behalf) wants to raise or lower their overload threshold (e.g. "set my overload threshold to 10", "I can handle more pending cards before you flag me", "lower my attention budget to 5"). This is the founder's OWN constraint, so it is gated: an autonomous agent CANNOT change it (surface a recommendation instead); only a human-present company manager can. Always call get_attention_budget first and explain why a change helps the founder. [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.
max_pending_cardsnumberyesThe new ceiling: pending review cards before the founder is overloaded (whole number, 1–100).
notestringOptional rationale for the change (stored with the budget).

No output schema declared.

No examples provided.

set_cac_strategy ~220

Change this company's LTV:CAC strategy (the acquisition-spend posture): aggressive (2:1, early-stage growth), standard (3:1, recommended default), conservative (4:1, high churn / mature), or enterprise (5:1, long sales cycles). This governs marketing spend, so it is gated: an autonomous agent CANNOT apply it — surface a recommendation instead. Always call get_cac_strategy first and include a clear rationale when proposing a change. [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.
notestringOptional rationale for the change (stored with the policy).
strategystringyesThe CAC posture: aggressive (2:1), standard (3:1), conservative (4:1), or enterprise (5:1).

No output schema declared.

No examples provided.

set_cos_preferences ~129

Replace THIS operator's full CoS preference block (or clear with empty). Use when they want a full rewrite of saved preferences. Per user_id only — not a global product prompt edit. [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.
cos_preferencesstringyesFull preferences text (≤2000 chars). Empty string clears.

No output schema declared.

No examples provided.

set_grain_policy ~292

Create or update the wisdom-layer publish policy for ONE content grain in the current company. gate_mode 'human_pre_gate' reserves the grain for human approval; 'autonomous' lets an agent publish it directly. A brand-new grain defaults to human_pre_gate (fail-safe). Because this governs an agent's own publishing autonomy, the change routes to operator approval — it does not take effect silently. [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.
curate_onlybooleanIf true, an agent may only assemble this grain from source_corpus_ref, never originate de-novo content.
gate_modestring'autonomous' = an agent may auto-publish this grain; 'human_pre_gate' = it must route to a human first.
grainstringyesThe content grain key, lowercase_with_underscores (e.g. faith_values, harness_education, professional).
notestringHuman-readable note on why this grain has this policy.
source_corpus_refstringFor curate_only grains: the corpus an agent may assemble from (e.g. a knowledge collection key).

No output schema declared.

No examples provided.

set_meta_ad_status ~186

Activate or pause a Meta campaign, ad set, or ad. ACTIVATION STARTS REAL AD SPEND and always requires the human (live chat or an approved card) — agents cannot activate. Pausing stops spend. Use after the user has reviewed a draft and explicitly says to launch, or asks to stop a running ad. [outbound-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]

NameTypeReqDescription
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
object_idstringyesNumeric campaign / ad set / ad id
statusstringyes'ACTIVE' (starts spend — human only) or 'PAUSED' (stops spend)

No output schema declared.

No examples provided.

set_offer ~263

Author or update the company's grand slam OFFER — the operator-authored positioning agents ground all outbound in (the offer half of the product layer). Sets `offer` (what the company sells + the transformation it promises) and an optional `target_summary` (who it's for). Capability truth — what the product can and can't actually do — lives in feature_index via create_feature, NOT here; do not list features in the offer. [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.
is_regulatedbooleanMark this company/product as operating in a REGULATED category (health, medical, financial). When true, the Integrity Gate treats health/efficacy/financial claims in agent-produced outbound as requir…
offerstringThe grand slam offer + positioning: what the company sells and the transformation it promises. Operator-authored wisdom-like content.
target_summarystringOptional one-line summary of who the offer is for (the target customer).

No output schema declared.

No examples provided.

set_revenue_channels ~291

Declare where this business makes money — stripe, xero, shopify, amazon, ebay, manual invoicing, "none_yet" (pre-revenue), or other (name it). This is OPERATOR TRUTH an agent cannot derive, so it is gated: an autonomous agent CANNOT declare it — only a human (chat) or a graduated MCP operator can. Once declared, agents stop asking to connect Stripe for businesses that don't use it and are routed to the right revenue tool for this company's actual channel(s). Call get_setup_state first — if "Revenue channels" already shows done, only call this again when the operator says it changed. [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
channelsarrayyesAny that apply: stripe, xero, shopify, amazon, ebay, manual, none_yet, other. "none_yet" is exclusive — if the business is pre-revenue, pass ONLY ["none_yet"].
companyIdstringyesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
other_labelstringRequired when channels includes "other" — the operator's own words for the revenue channel (e.g. "wholesale invoices").

No output schema declared.

No examples provided.

share_commitment ~160

Share a commitment with your spouse or partner so they can see it too. Use when the user says "share this with my wife/husband" or "let [name] see 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
commitment_idstringThe UUID of the commitment to share
companyIdstringFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
share_with_emailstringyesEmail address of the person to share with
title_searchstringSearch by title if ID not known (fuzzy match)

No output schema declared.

No examples provided.

share_knowledge ~204

Share a knowledge file or folder with a specific user. Creates a per-user access grant. The shared user's agent will also be able to read the files. Front matter is auto-updated with audience metadata so agents know the content is restricted. [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.
pathstringyesThe file or folder path to share. Use trailing "/" for folders (e.g., "acme-deal/"). Use no trailing "/" for files (e.g., "acme-deal/term-sheet").
permissionstringPermission level: "read" (default) or "write".
user_emailstringyesEmail of the FreedomOS user to share with.

No output schema declared.

No examples provided.

split_agent_activity ~218

Split ONE oversized activity into smaller activities (intake + finish) without regenerating the rest of the plan. Use when a run hit the continuation safety backstop while still progressing — the activity is bigger than one deliverable. [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_namestringyesExact (case-insensitive) name of the oversized activity to split.
agent_idstringUUID of the agent. Optional if agent_name is provided.
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.
piecesarrayOptional precomputed replacement activities (name, frequency, description, …). When omitted, derived from the source.
reasonstringOptional reason recorded on the archive + audit log.

No output schema declared.

No examples provided.

submit_content_to_pipeline ~267

Submit manual content to a pipeline for transformation. Use when user says "add this to my changelog", "create a newsletter from this", "transform this content", or provides content to be processed. Content will be transformed using the pipeline's persona and ICPs. Social pipelines publish to the pipeline's declared destination (x/linkedin/instagram/facebook/threads — set via update_pipeline; undeclared defaults to x) after human approval; instagram items REQUIRE media_artifact_ids. [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.
contentstringyesRaw content to transform (updates, notes, announcements, etc.)
media_artifact_idsarrayOptional. Artifact IDs (image or video, from generate_image_xai / generate_video, same company) to attach as media on this post. Required for visual social posts — the post publishes with this media…
pipeline_idstringyesID of the pipeline to submit to (get from list_pipelines)

No output schema declared.

No examples provided.