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.
Available components
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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
claude mcp add --transport http com-getfreedomos-freedom-mcp https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp
[mcp_servers.com-getfreedomos-freedom-mcp] url = "https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-getfreedomos-freedom-mcp": {
"type": "remote",
"url": "https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp",
"enabled": true
}
}
} openclaw mcp add com-getfreedomos-freedom-mcp --url https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp --transport streamable-http
mcp_servers:
com-getfreedomos-freedom-mcp:
url: "https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp" {
"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.
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
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 |
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.
submit_product_request ~782
File a bug report or feature request about FreedomOS the platform (FO UI, MCP tools, Command Center, auth, connectors, FO agents runtime) with the FreedomOS product team. Creates a FO product-inbox Command Center card and returns a request_id you can poll with get_product_request_status. ONLY for FreedomOS itself broken, missing, or confusing. Do NOT use for: (1) tenant ops (hire agents, send email, OKRs, content); (2) YOUR OWN company product — app code, domain knowledge base, chatbot/SME retrieval, compliance corpus, state/regulatory overlays, or anything your team can ship without FO engineers. Own-product gaps stay on YOUR company Command Center (decision/report card, collaboration, knowledge pipeline, or escalate to your human as product work). Example misroute: Conduit agent filing PCAI state-overlay KB work here — wrong inbox; file on Conduit instead. Routing: When the USER says something in FreedomOS itself is broken, missing, or confusing ("this button does nothing", "I wish it could…", "this is a bug", "can you debug this?" about FO product), this is the tool — FILE FIRST. Bias: submit_product_request(kind:"bug"|feature) before opening a live coding host or Send-to-Grok/Claude. REFUSE this tool for own-product / domain work: knowledge corpus, retrieval quality, compliance packs, chatbot answers for YOUR product (e.g. Compounding AI / PCAI), marketing claims about your app — keep those on the source company rail (Command Center card for your operator, suggest_collaboration, save_knowledge, Compliance Check), never FO product inbox. TRIAGE FIRST, briefly: if your own tools can resolve it right now (a reconnect, a setting, the wrong page), fix it and say so instead of filing — filing is never an exit from work you can finish yourself. Cap triage at one or two quick checks, never a debugging quest in chat. An explicit "file it" from the user always wins: file immediately, no pushback — and fold whatever you ruled out into the description. Pull title/repro fr…
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| description | string | yes | What happened / what you need. Include repro steps, expected vs actual, company name, agent name if relevant. |
| kind | string | yes | bug = FO broken; feature = FO missing capability; question = how-to for the FreedomOS team. Not for your own app/product backlog. |
| repro_steps | string | — | Optional numbered repro steps. |
| severity | string | — | Default medium. critical = data loss / security / blocked onboarding. |
| source_agent_name | string | — | Optional: which of the operator's agents hit this (e.g. "Linnet", "Morgan"). |
| suggested_fix | string | — | Optional: what a good fix would look like (agent hypothesis — product team decides). |
| title | string | yes | One-line summary. Specific: "Connect CTA dumps to Smart Tools instead of OAuth" not "bug". |
No output schema declared.
No examples provided.
suggest_collaboration ~173
Create a cross-agent collaboration request. Use when one agent identifies work that another agent should handle, or when the analysis reveals a gap that could be filled by an existing team member. If the target role doesn't exist on the team, mention it as a hiring opportunity instead.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| from_agent_name | string | yes | Name of the agent suggesting the collaboration (e.g., "Maya", "Evan") |
| priority | string | — | How urgent is this collaboration request |
| task_description | string | yes | What needs to be done — specific and actionable |
| to_agent_name | string | yes | Name of the target agent, or a role description if the agent doesn't exist yet |
No output schema declared.
No examples provided.
suggest_next_hire ~87
Analyze team gaps and recommend hires or routing to existing agents. Use when user asks "who should I hire", "who to hire next", "what roles do I need", "hiring recommendations", "grow my team", "next hire".
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
No output schema declared.
No examples provided.
sync_stripe_conversions ~172
Record won deals from the company's connected Stripe so lead→paid conversion becomes measurable. Reads paid Stripe customers (read-only), matches them to leads by email, and records a closed_won deal per paying customer (idempotent — re-running is safe, never double-counts). Only works if Stripe is connected. Use when conversion "isn't measured yet" or to refresh the conversion picture. Routing: CRM/sales/revenue → measure conversion / record won deals from Stripe → 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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
No output schema declared.
No examples provided.
synthesize_lead_hypothesis ~233
Given a lead journey (from query_lead_journey), produce a structured hypothesis: intent score, conversion-failure mode, suggested outreach angle, and notes for drafting. Writes the synthesis back to leads.synopsis_jsonb so the Leads tab UI sees it. Use this after journey reconstruction, before draft_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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| company_context | string | — | Optional short summary of the company the lead arrived at (e.g., 'Acme Health — pharmacy compounding compliance consulting for US pharmacies'). Helps the model evaluate fit. |
| journey_json | string | yes | JSON-encoded journey object returned by query_lead_journey. Caller should JSON.stringify the journey output before passing. |
| lead_id | string | yes | UUID of the lead. Used to persist synthesis back to leads.synopsis_jsonb. |
No output schema declared.
No examples provided.
toggle_agent_schedule ~187
Pause or resume an agent's scheduled activities — the whole activity plan, or a single activity via activity_name. Pausing stops future scheduler-dispatched runs until resumed; manual trigger_agent_activity still works and in-flight runs are not affected. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | pause or resume |
| activity_name | string | — | Optional: pause/resume only this one activity (exact name, case-insensitive). Omit to affect the agent's whole activity plan. |
| agent_name | string | yes | Name of the agent whose schedule to toggle |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
No output schema declared.
No examples provided.
triage_idea ~164
Assign an idea to one or more workspaces. 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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| idea_identifier | string | yes | How to find the idea: UUID, content snippet, or "newest"/"latest" for most recent |
| workspace_id | string | — | Single workspace/company ID (use workspace_ids for multiple) |
| workspace_ids | array | — | Array of workspace/company IDs to assign the idea to |
No output schema declared.
No examples provided.
trigger_agent_activity ~217
Trigger a specific agent to run a specific activity immediately. This dispatches the work and returns — it does not wait for the activity to complete. Use this to direct agents to take action. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| activity_name | string | yes | Name of the activity to run (e.g. "weekly_content_report") |
| agent_name | string | yes | Name of the agent to trigger (e.g. "Aiko") |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| reason | string | — | Optional. A specific instruction for THIS run only — e.g. "only reconcile the X reply queue, skip everything else". When given, it becomes this run's goal and takes priority over the activity's stand… |
No output schema declared.
No examples provided.
unshare_commitment ~136
Stop sharing a commitment with someone. Removes their access. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| commitment_id | string | — | The UUID of the commitment to unshare |
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| title_search | string | — | Search by title if ID not known (fuzzy match) |
| unshare_email | string | yes | Email address of the person to remove sharing for |
No output schema declared.
No examples provided.
unshare_knowledge ~124
Revoke a user's access to a shared knowledge file or folder. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| path | string | yes | The file or folder path to unshare. Must match exactly what was originally shared. |
| user_email | string | yes | Email of the user to revoke access from. |
No output schema declared.
No examples provided.
update_agent ~221
Rename a team member or fix its role/title. Updates an agent's display name and/or role/job-title. Use when the user says "rename X to Y", "call this agent Z", or "fix the title". For changing an agent's mission/skills use recalibrate_agent_jd 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.]
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | UUID of the agent to update. Use get_team_roster to find IDs. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| name | string | — | New display name — a single first name (e.g. "Garth"). Omit to leave the name unchanged. |
| role | string | — | New role / job title (e.g. "Agent Deployment & Quality Reviewer"). Do NOT include the agent name. Omit to leave the role unchanged. |
No output schema declared.
No examples provided.
update_agent_activity ~210
Edit ONE existing activity in an agent's plan — change its name, description, frequency, tools_used, deliverable, or completion_criteria. Surgical alternative to regenerating the whole plan. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| activity_index | number | — | 0-based index into the activity plan. Alternative to activity_name. |
| activity_name | string | — | Exact (case-insensitive) name of the activity to edit. Provide this or activity_index. |
| agent_id | string | — | UUID of the agent. Optional if agent_name is provided. |
| agent_name | string | — | Name of the agent. Provide this or agent_id. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| patch | object | yes | Fields to change. Only the supplied fields are updated. |
No output schema declared.
No examples provided.
update_agent_avatar ~369
Generate or regenerate AI agent profile avatar(s) for a company's AI team. Use when an operator wants to create, refresh, or restyle one or more agents' profile avatars. Single agent: pass agent_id OR agent_name. Several agents: pass agent_ids[] OR agent_names[] in ONE call. Whole team: pass all:true. The tool regenerates EVERY target itself in a single call (1 credit per agent) and returns the real new signed avatar_url for each. Report ONLY the agents listed in the result's `regenerated` array — never claim or invent an avatar for an agent the tool did not return. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | — | UUID of a single agent to (re)generate an avatar for. |
| agent_ids | array | — | UUIDs of multiple agents to regenerate in ONE batch call. |
| agent_name | string | — | Name of a single agent (used to look up the agent when agent_id is not provided). Must resolve to exactly one active agent. |
| agent_names | array | — | Names of multiple agents to regenerate in ONE batch call. Each name must resolve to exactly one active agent (ambiguous names are returned in `failed`). |
| all | boolean | — | Set true to regenerate avatars for EVERY active agent in the company. Takes precedence over the id/name params. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| style | string | — | Optional style override (e.g., "pixel-art", "watercolor", "geometric"). Overrides company avatar_theme for this generation. |
No output schema declared.
No examples provided.
update_agent_skill ~328
Create or update a skill (process/procedure) for an agent. Use when a user says "@Marcus here's how I want you to do the cash forecast" or "change how the CFO does the monthly review" or "here's my process for X". Skills teach agents HOW to perform their activities. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| activity_name | string | — | Activity this skill backs (e.g., "Weekly Cash Review"). If provided, the skill will be linked to this activity via skill_id. |
| agent_id | string | — | UUID of the agent to teach. Optional if agent_name is provided. |
| agent_name | string | — | Name of the agent (e.g., "Marcus"). Used to look up agent_id if not provided. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| resources | array | — | URLs, doc names, templates, or other resources (e.g., ["company P&L template"]) |
| skill_name | string | yes | Short name for the skill (e.g., "13-Week Cash Forecast") |
| steps | array | yes | Ordered steps of the process (e.g., ["Pull balances", "Calculate 13-week average", "Flag if runway < 3 months"]) |
| tools_used | array | — | Tool names referenced in the process (e.g., ["get_cash_position", "create_google_sheet"]) |
No output schema declared.
No examples provided.
update_brand_guidelines ~164
Update specific fields of the company's brand guidelines (visual identity, naming, positioning). Only modifies the fields you specify - all other data is preserved. Use when the user asks to change colors, tagline, typography, personality/tone, naming rules, or visual dos/donts. For changing how the brand WRITES (voice/cadence), use update_voice_profile 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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| updates | object | yes | Only the fields to update. Other fields are preserved automatically. |
No output schema declared.
No examples provided.
update_commitment ~244
Update fields of an existing commitment — title, domain, due date, consequence, or description. Use when the user says "change the due date on...", "rename that commitment to...", "move X to next week", or otherwise edits something already tracked (not marking it done — use complete_commitment for that). [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| commitment_id | string | — | The UUID of the commitment to update. |
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| consequence | string | — | New consequence — what happens if this slips. |
| description | string | — | New additional details or notes. |
| domain | string | — | New life domain: personal, family, home, w2, or company:<name>. |
| due_date | string | — | New due date in YYYY-MM-DD format. |
| title | string | — | New title. |
| title_search | string | — | Search by title if ID not known (fuzzy match). |
No output schema declared.
No examples provided.
update_company ~158
Update company profile. Can set mission, vision, elevator pitch, logo, website, or other details. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| elevator_pitch | string | — | Brief company description (30 seconds) |
| logo_url | string | — | URL to company logo image |
| mission | string | — | Company mission statement |
| name | string | — | Company name |
| vision | string | — | Company vision statement |
| website_url | string | — | Company website URL |
No output schema declared.
No examples provided.
update_feature ~249
Update fields on an existing Feature Index entry — title, description, category, solves, limits, or demo_url. Use when the user wants to correct or enrich a feature's marketing copy. To change status use update_feature_status; to remove a feature from view use retire_feature — never delete. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Category (e.g., "ai", "marketing", "finance", "automation") |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| demo_url | string | — | URL to a demo video (Screen Studio, Loom, etc.) |
| description | string | — | Marketing-ready description of the feature |
| feature_id | string | yes | The feature_id slug (e.g., "ai-content-pipeline") or UUID. |
| limits | string | — | Current limitations |
| solves | array | — | Problems/pain points this feature solves |
| title | string | — | Display title (e.g., "AI Content Pipeline") |
No output schema declared.
No examples provided.
update_feature_status ~143
Mark a feature as ready for marketing. Use when user says "mark X as ready", "this feature is ready to market", or wants to highlight a feature 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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| feature_id | string | yes | The feature_id slug (e.g., "ai-content-pipeline") or UUID |
| status | string | yes | New status for the feature |
No output schema declared.
No examples provided.
update_finance_note ~158
Add or update a note on a P&L account row. Use this to annotate accounts with context like "Includes annual contract renewal" or "One-time consulting fee in June". [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| account_name | string | yes | Account name to annotate (fuzzy matched) |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| fiscal_year | number | — | Fiscal year (default: current year) |
| note | string | yes | Note text to set on the account (empty string to clear) |
No output schema declared.
No examples provided.
update_google_doc ~106
Append new content to an existing Google Doc. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| content | string | yes | Content to append to the document |
| doc_id | string | yes | Google Doc ID to update |
No output schema declared.
No examples provided.
update_icp ~174
Update specific fields of a saved Ideal Customer Profile (ICP). Only modifies the fields you specify - all other data is preserved. To change the public audience label used in published copy, pass publicName in updates (the public-facing label — NEVER the internal persona name/codename); the internal "name" stays the private targeting label. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| icp_id | string | yes | The unique ICP ID from get_icps response. |
| updates | object | yes | Only the fields to update. Other fields are preserved automatically. |
No output schema declared.
No examples provided.
update_key_result ~469
Update a key result for the company operator and any agent owning KR progress (progress, assignment, due date, rename, measure binding). Use when work moves a Key Result and you need to log current value, reassign, rename, or bind a measure source. Prefer key_result_id — the parent objective is resolved from the KR row (no fuzzy title search). Title match is a fallback; resolution uses the EXISTING title even when renaming in the same call. A missing/archived KR returns one terminal recovery with live alternatives — do not retry the same args. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| assigned_to | string | — | User ID to assign this KR to. Use "me" or "current_user" to assign to the current user. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| current_value | number | — | Current progress value |
| due_date | string | — | Due date (YYYY-MM-DD format) |
| key_result_id | string | — | Stable KR id (preferred). Parent objective is looked up from the KR row across active objectives — do not re-search by fuzzy objective title. |
| key_result_title | string | — | Title of the key result to update (use this OR key_result_id) — matched against the CURRENT title, even when also renaming |
| measure_source | string | — | Bind current progress to a live data source (auto-updated daily by the OKR health sweep). One of: stripe_active_subscribers, stripe_mrr, crm_active_leads. Pass "none" to unbind and return the KR to m… |
| objective_id | string | — | ID of the parent objective (optional when key_result_id is set — id resolves the parent) |
| objective_title | string | — | Title of the parent objective (optional when key_result_id is set — id resolves the parent) |
| start_date | string | — | Start date (YYYY-MM-DD format) |
| target_value | number | — | Target value to achieve |
| title | string | — | New display title for the key result (rename) |
No output schema declared.
No examples provided.
update_knowledge_section ~224
Update a specific section of a knowledge file by its ## header. If the section exists, its content is replaced. If it doesn't exist, it's appended as a new section. Use this for surgical edits to guidelines or strategies without rewriting the entire file. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| new_content | string | yes | The new Markdown content for this section (replaces everything between this ## and the next ##). Use proper Markdown: blank lines between paragraphs, - for list items, ### for sub-headers. Never use… |
| section_header | string | yes | The ## section header to find and replace (case-insensitive). If not found, appended as a new section. |
| slug | string | yes | The slug of the knowledge file to update |
No output schema declared.
No examples provided.
update_lead ~576
Edit an existing lead in the Leads CRM (crm_leads): name, email, phone, location, do-not-contact flag/reason, lifecycle state (new/active/flagged/archived), or the synopsis fields (title, company_name, tags, notes). Identify the lead with lead_id or email_lookup. Moving state to 'flagged' or 'archived' REQUIRES state_reason. Archiving sets archived_at (safe-archive, reversible — move state off archived to restore it). If the lead's outreach is set to auto and you move it off 'active', outreach is demoted back to manual (auto-outreach is only valid while active). Use when the operator or an agent needs to fix or maintain lead data — wrong email, bad name, DNC request, or a lifecycle move — instead of telling the user to edit it in the UI. Routing: CRM/sales → edit a lead's fields, status, or DNC flag → use this (NOT update_lead_status/log_activity — those are removed) [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| company_name | string | — | Company they work for — folded into synopsis_jsonb.manual_entry. |
| do_not_contact | boolean | — | Set true to flag the lead do-not-contact (excluded from outreach); false to clear it. |
| do_not_contact_reason | string | — | Reason for do_not_contact, e.g. 'customer', 'churned', 'opted_out'. |
| string | — | New email (normalized to lowercase/trim). Rejected if it already belongs to another lead in this company. | |
| email_lookup | string | — | The lead's CURRENT email, used to find it. Provide this OR lead_id. |
| lead_id | string | — | UUID of the lead to update. Provide this OR email_lookup. |
| location | string | — | New location. |
| name | string | — | New full name. |
| notes | string | — | Notes about the lead — folded into synopsis_jsonb.manual_entry. |
| phone | string | — | New phone number. |
| state | string | — | New lifecycle state. state_reason is REQUIRED when moving to 'flagged' or 'archived'. |
| state_reason | string | — | Reason for the state change. Required when state is 'flagged' or 'archived'. |
| tags | array | — | Replacement tag list — folded into synopsis_jsonb.manual_entry. |
| title | string | — | Job title — folded into synopsis_jsonb.manual_entry (other manual_entry keys are preserved). |
No output schema declared.
No examples provided.
update_meta_ad_budget ~176
Change the daily budget of a Meta ad set (account currency, major units; structural cap applies). Moves real money, so it always requires the human — agents cannot change budgets. Use when the user explicitly asks to raise or lower spend on a campaign. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| ad_account_id | string | — | Optional — for currency resolution when several accounts exist |
| adset_id | string | yes | Numeric ad set id |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| daily_budget | number | yes | New daily budget, account currency major units |
No output schema declared.
No examples provided.
update_my_profile ~515
Update the current user's profile. Can set name, title, phone, linkedin, location, zone of genius, or quiet hours (the do-not-disturb window for agent push alerts). [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| custom_title | string | — | Custom display title |
| experience_summary | string | — | Brief summary of professional experience |
| first_name | string | — | User's first name |
| founder_why | string | — | Founder's motivation and purpose |
| future_self_note | string | — | Note to future self |
| holdco_vision | string | — | Vision for holding company (executives) |
| last_name | string | — | User's last name |
| linkedin_url | string | — | LinkedIn profile URL |
| location | string | — | City, State or Location |
| outbound_routes_to_me | boolean | — | The operator's OWN no-manual-outbound preference (S5). true = "I personally do outbound" → the founder-outbound tactic filter is OFF for me; false = "do NOT route founder manual outbound to me" → the… |
| phone | string | — | Phone number |
| profile_image_url | string | — | URL to profile image |
| quiet_end | string | — | Quiet window end, local wall-clock 24h "HH:MM" (e.g. "07:00"). May cross midnight (start after end). |
| quiet_hours_enabled | boolean | — | Turn the do-not-disturb / quiet-hours window on or off. When on, agent push alerts are held during the window and delivered as one summary at wake. |
| quiet_start | string | — | Quiet window start, local wall-clock 24h "HH:MM" (e.g. "22:00"). Set together with quiet_end and quiet_tz. |
| quiet_tz | string | — | IANA timezone for the quiet window, e.g. "America/Los_Angeles". Use the user's own timezone. |
| title | string | — | Job title (e.g., CEO, CTO, Marketing Director) |
| zone_of_genius | string | — | What the user is uniquely great at |
No output schema declared.
No examples provided.
update_objective ~226
Update an existing objective's title, description, or year. Identify by objective_id or objective_title (preferred). If the title matches more than one active objective it refuses and lists them — pass objective_id to disambiguate. Use when the operator wants to rename or reword an objective or move it to another year — the OKR edit door for agents. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| description | string | — | New description for the objective |
| objective_id | string | — | ID of the objective to update (use this or objective_title) |
| objective_title | string | — | Title of the objective to update (use this or objective_id) |
| title | string | — | New title for the objective |
| year | number | — | New year for the objective (e.g., 2026) |
No output schema declared.
No examples provided.
update_pipeline ~258
Update an existing content pipeline. Use when user says "rename my pipeline", "change the pipeline name", "update pipeline settings", or wants to modify pipeline configuration. Can update name, persona, ICPs, output type, or destination. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| destination | string | — | Where to publish: freedom_os (auto-publish to platform), manual (copy/paste). Social platforms (x/linkedin/instagram/facebook/threads) publish via the gated owner after human approval — instagram ite… |
| icp_ids | array | — | New list of ICP IDs to target |
| name | string | — | New name for the pipeline |
| output | string | — | New output type |
| persona | string | — | New persona ID to use for transformations |
| pipeline_id | string | yes | ID of the pipeline to update (get from list_pipelines) |
No output schema declared.
No examples provided.
update_pipeline_style_guide ~191
Manually add a style rule to a pipeline. Use when user says "always use bullet points", "never include hashtags", "keep it under 100 words", "use more casual tone", or gives general content preferences. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| output_format | string | yes | Which format this rule applies to: changelog, social_post, team_update, newsletter, report |
| pipeline_id | string | yes | Pipeline ID (get from list_pipelines) |
| style_rule | string | yes | The style rule to add (e.g., "Use bullet points for lists", "Keep under 150 words") |
No output schema declared.
No examples provided.
update_projection ~301
Update projected values for specific accounts and months in the financial plan. Use this when the user asks to change a projection, forecast, or budget number. Only current and future months can be updated — past months with bank actuals are protected. IMPORTANT: If an account already has non-zero values, you must specify mode="add" to add on top of existing values, or mode="set" with force=true to replace. Without these, the tool will return the current values and ask for clarification. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| account_name | string | yes | Account name to update (must match closely, e.g., "Software Revenue", "AWS Hosting"). Use get_projections to see exact names first. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| fiscal_year | number | — | Fiscal year to update (default: current year) |
| force | boolean | — | When mode="set", skip the overwrite confirmation for non-zero values. Use only when user explicitly wants to replace existing values. |
| mode | string | — | How to apply the value. "set" = replace existing value (default). "add" = add on top of existing value. |
| updates | array | yes | Array of month+value pairs |
No output schema declared.
No examples provided.
update_reader_profile ~219
Update a person's OPERATOR FLUENCY (baseline + per-topic strengths that follow them across companies). Use when the operator (or an admin) sets or corrects how agents should speak to them, or when seeding an empty profile with seed_if_empty for a first guess. Human door for edits; agents may seed empty self 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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| default_level | string | — | — |
| domains | object | — | Topic → novice|fluent|expert (merged). |
| glossary_seen | array | — | — |
| member_id | string | — | Optional target UUID. Defaults to you. |
| seed_if_empty | boolean | — | If true, agents may write only when the target has no profile yet (self only). Human doors may always write. |
No output schema declared.
No examples provided.
update_sheet ~125
Update specific cells in 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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| range | string | yes | A1 notation range to update (e.g., "Sheet1!A1:B5") |
| spreadsheet_id | string | yes | Spreadsheet ID |
| values | array | yes | New values for the range |
No output schema declared.
No examples provided.
update_tactic ~324
Update an existing tactic. Can identify by title instead of ID. Can modify title, description (the how-to / instructions), status, category, assigned_to, or re-bind it to an OKR key result (objective_id / linked_kr_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.]
| Name | Type | Req | Description |
|---|---|---|---|
| assigned_to | string | — | User ID or "me"/"current_user" to assign to |
| category | string | — | New category |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| description | string | — | New description |
| linked_kr_id | string | — | Key-result id the tactic most advances (validated against the company OKRs; takes precedence over objective_id, and its parent objective is derived). Unresolvable → binding cleared to null. Omit to l… |
| objective_id | string | — | OKR objective UUID to re-bind this tactic to (validated against this company); its most off-track key result is chosen. Unresolvable → binding cleared to null. Omit to leave the existing binding unto… |
| status | string | — | New status |
| tactic_id | string | — | ID of the tactic to update (optional if using tactic_title) |
| tactic_title | string | — | Title of the tactic to update (use this or tactic_id) |
| title | string | — | New title |
No output schema declared.
No examples provided.
update_transaction_note ~124
Add or update a note on a specific transaction. Use after pulling transactions to annotate individual items. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| note | string | yes | Note text to set on the transaction (empty string to clear) |
| transaction_id | string | yes | Transaction ID (from get_transactions output) |
No output schema declared.
No examples provided.
update_voice_profile ~151
Update the company's voice profile. Only modifies the fields you specify; all other data is preserved. Use when the operator wants to tune their voice — add/refine an in-voice DO or an out-of-voice AVOID, adjust the style descriptor, set a target reading level, or set whose voice it is. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| updates | object | yes | Only the fields to update. Others are preserved. |
No output schema declared.
No examples provided.
upsert_attention_session ~271
Emit or update thin session telemetry for THIS operator (host coding agent self-announce). Use when YOU are Grok or Claude Code at session start / status change so voice CoS can list_attention_sessions and target you. Prefer tiny goals; never dump transcripts. [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.]
| Name | Type | Req | Description |
|---|---|---|---|
| ask_for_operator | string | — | If blocked: one sentence the operator must answer |
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| company_id | string | — | Optional company id |
| cwd | string | — | Optional working directory |
| goal | string | — | One-line goal |
| host | string | — | claude-code | claude-desktop | grok | manual | slack | github | freedomos | other |
| priority | number | — | Optional priority (higher = sooner) |
| project | string | — | Optional project name |
| session_id | string | yes | Stable session id (same string used as target_session_id for directives). |
| status | string | — | running | blocked_on_operator | done | parked | unknown (blocked_on_tim accepted as alias) |
No output schema declared.
No examples provided.
vectorize_image ~346
Convert an existing raster image (PNG, JPG, WebP) to SVG vector format using Recraft. Preserves details and creates clean vector paths. Routing: "vectorize this", "convert to SVG", "make scalable" → 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.]
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | — | ID of an existing artifact from the MEDIA IN THIS CONVERSATION block. The system will resolve a fresh signed URL automatically. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| folder | string | — | Optional 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_name | string | — | Subfolder name for Drive save. Only used when save_to_drive is true. |
| image_url | string | — | URL of the raster image to vectorize. Use a signed URL from the MEDIA IN THIS CONVERSATION block or any accessible image URL. |
| isolate_subject | boolean | — | Smart Workflow: If true, the tool will automatically remove the background to isolate the subject BEFORE vectorizing. Defaults to true. Set to false ONLY if you want to vectorize the entire scene inc… |
| save_to_drive | boolean | — | If true, also save the vectorized SVG to Google Drive. Defaults to false. |
No output schema declared.
No examples provided.