freedom-mcp
Server Details
Business-ops MCP for FreedomOS — finance, OKRs, customer scoring, AI agents, content. 250+ tools.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 15.2% over 59 days
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 350 tools
Descriptions are exceptionally thorough with routing notes that explicitly disambiguate near-pairs (e.g., get_ads_performance vs get_x_ads_performance, publish_pipeline_item vs publish_hub vs publish_site, send_email vs send_lead_draft). At this scale some ambiguity is inherent — the multiple 'publish_*' and 'create_*' verbs across domains require careful reading — but the routing guidance largely prevents misselection.
The dominant pattern is verb_noun snake_case with strong domain prefixes (get_/list_/create_/update_/delete_/set_/publish_/posthog_*/shopify_*/xero_*). There are a few outliers like before_inventing_check_fo, hold_post, deliberate, and the dual-use resolve_ prefix (resolve_work vs resolve_brand_guide), but these are minor deviations from an otherwise highly consistent scheme.
350 tools is extreme by any measure — 7x the calibration threshold of 50+. While the server covers an unusually broad domain (CRM, finance, ads, e-commerce, analytics, knowledge, team management, content, product requests, image/video generation), this many tools exceeds what any agent can realistically discover, navigate, or keep coherent, and likely blows context budgets. The scope may justify the breadth, but the count is an extreme mismatch.
Within each sub-domain the lifecycle coverage is remarkably complete: CRM has add/list/update/segment/enroll/synthesize/send; Shopify covers create/update/publish/unpublish/inventory/discounts/themes/tax; Xero covers accounts/reports/posting/reconciliation; OKRs have full create/read/update/delete. Minor gaps exist (e.g., no permanent page deletion, no direct LinkedIn post door), but no domain has a dead end that would cause agent failures.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Added
deactivate_person - Added
list_deactivated_people - Added
reactivate_person
4 tool updates
- Changed
create_signing_request3 fields changed- changed
Input schema / properties / fields / descriptionPrevious value: -"Optional boxes on the pages for each signer: signature, name and date fill in automatically when they sign; text is a custom field they type. Positions are fractions of the page from its top-left (0..1). Fixed once sent."New value: +"Optional boxes on the pages for each signer: signature, name and date fill in automatically when they sign; text is a custom field they type. Positions are fractions of the page from its top-left (0..1). Fixed once sent. With record_id, leaving fields out keeps the boxes already saved on the draft; [] clears them." - added
Input schema / properties / sendAdded value: +{ + "description": "false: keep it a draft even with signers named, so its boxes can be checked on the record page first. Nobody is asked to sign. Default: naming signers sends it.", + "type": "boolean" +} - changed
Input schema / properties / signers / descriptionPrevious value: -"Who signs. Leave empty to file the document as a draft."New value: +"Who signs. Leave empty to file the document as a draft (or pass send: false to keep a draft with boxes)."
- Added
get_brand - Changed
hire_agent_with_context1 field changed- added
Input schema / properties / generate_avatarAdded value: +{ + "description": "Whether to generate an optional AI avatar image (default true). False creates the role without image generation.", + "type": "boolean" +}
- Added
list_brands
1 tool update
- Changed
create_signing_request1 field changed- added
Input schema / properties / fieldsAdded value: +{ + "description": "Optional boxes on the pages for each signer: signature, name and date fill in automatically when they sign; text is a custom field they type. Positions are fractions of the page from its top-left (0..1). Fixed once sent.", + "items": { + "properties": { + "h": { + "type": "number" + }, + "label": { + "description": "For text fields: what to fill in, e.g. \"Title\".", + "type": "string" + }, + "page": { + "description": "1 = first page.", + "type": "number" + }, + "required": { + "description": "For text fields (default true).", + "type": "boolean" + }, + "signer_index": { + "description": "Which signer fills it: 0 = the first in signers.", + "type": "number" + }, + "type": { + "enum": [ + "signature", + "name", + "date", + "text" + ], + "type": "string" + }, + "w": { + "type": "number" + }, + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "type", + "signer_index", + "page", + "x", + "y", + "w", + "h" + ], + "type": "object" + }, + "type": "array" +}
4 tool updates
- Changed
create_signing_request1 field changed- added
Input schema / properties / executed_outsideAdded value: +{ + "description": "true: this PDF was already signed outside FreedomOS (wet ink, another e-sign service). Files it straight as signed, with the uploaded PDF as the signed copy. Needs pdf_base64 and a title; no record_id, no signers.", + "type": "boolean" +}
- Added
get_executive_record_file - Added
list_executive_record_signers - Added
supersede_executive_record
3 tool updates
- Added
create_signing_request - Added
get_executive_record - Added
list_executive_records
1 tool update
- Changed
get_agent_login1 field changed- added
Input schema / properties / revealAdded value: +{ + "description": "true returns the raw password and one-time code. Omit to get them masked (the default).", + "type": "boolean" +}
1 tool update
- Changed
grant_agent_tool2 fields changed- added
Input schema / properties / tool_namesAdded value: +{ + "description": "Instead of tool_name: up to 25 exact tool names, granted together behind one approval.", + "items": { + "type": "string" + }, + "type": "array" +} - changed
Input schema / requiredPrevious value: -[ - "agent_id", - "tool_name", - "companyId" -]New value: +[ + "agent_id", + "companyId" +]
1 tool update
- Changed
list_operator_x_posts1 field changed- added
Input schema / properties / daysAdded value: +{ + "description": "Lookback in whole days (1–14, default 1).", + "type": "number" +}
3 tool updates
- Changed
audit_brand_visibility1 field changed- added
Input schema / properties / brand_termsAdded value: +{ + "description": "Optional extra names that count as this company (product or old names). The company's name and website are always checked.", + "items": { + "type": "string" + }, + "type": "array" +}
- Added
get_shopify_tax_summary - Added
reject_pipeline_item
1 tool update
- Added
get_agent_login
1 tool update
- Changed
get_transactions1 field changed- changed
Input schema / properties / category / descriptionPrevious value: -"Filter by category"New value: +"Filter by category: matches the FreedomOS cash category (e.g. 'Loan payment'), ignoring case, spaces and underscores. The bank subcategory (e.g. LOAN_PAYMENTS) is used only for rows with no FreedomOS category. An empty result lists available_categories."
1 tool update
- Changed
decide_command_center_item1 field changed- added
Input schema / properties / person_clickedAdded value: +{ + "description": "true ONLY when a person pressed the button in a review page or app widget to make this decision. Never set it on your own initiative.", + "type": "boolean" +}
124 tool updates
- Changed
add_agent_activity5 fields changed- changed
Input schema / properties / activity / properties / frequency / descriptionPrevious value: -"How often it runs."New value: +"How often it runs — daily/weekdays/weekly/biweekly/monthly/quarterly auto-run on a cadence (weekdays = once each Mon–Fri in America/Los_Angeles; weekends skip); once/as_needed/on_demand are manual-only (run via trigger_agent_activity). Any other value is rejected so the scheduler can never silently drop the activity." - changed
Input schema / properties / activity / properties / frequency / enumPrevious value: -[ - "daily", - "weekly", - "biweekly", - "monthly", - "quarterly", - "once", - "as_needed", - "on_demand" -]New value: +[ + "daily", + "weekdays", + "weekly", + "biweekly", + "monthly", + "quarterly", + "once", + "as_needed", + "on_demand" +] - changed
Input schema / properties / activity / properties / linked_kr_id / descriptionPrevious value: -"Required. The Key Result this loop moves. This work needs a goal. Pick the Key Result this loop moves."New value: +"Required. The Key Result this loop moves. This work needs a goal. Pick the Key Result this loop moves. If none exists, create the Key Result first." - changed
Input schema / properties / activity / properties / name / descriptionPrevious value: -"Short, unique activity name — the stable key the scheduler uses."New value: +"Short, unique activity name — the stable key the scheduler uses. Rejected if a name already exists on this agent (use update_agent_activity to change one)." - changed
Input schema / properties / linked_kr_id / descriptionPrevious value: -"Required when activity is supplied flat. This work needs a goal. Pick the Key Result this loop moves."New value: +"Required when activity is supplied flat. This work needs a goal. Pick the Key Result this loop moves. If none exists, create the Key Result first."
- Changed
add_commitment3 fields changed- changed
Input schema / properties / consequence / descriptionPrevious value: -"What happens if this slips? (optional)"New value: +"What happens if this slips? (optional; infer if obvious, e.g. \"late filing penalty\")" - changed
Input schema / properties / description / descriptionPrevious value: -"Additional details or notes (optional)"New value: +"Additional details or notes (optional). For event reframes, record the actual event date here (e.g. \"Event date: Mar 29\"). If the commitment recurs (explicit cue like \"every year\", or inherently recurring — birthdays, tax deadlines, renewals, licenses, insurance, enrollment), prepend \"Recurring: annual|monthly|weekly|quarterly\" as the first line — complete_commitment reads this tag to auto-roll the next occurrence forward." - changed
Input schema / properties / due_date / descriptionPrevious value: -"Due date in YYYY-MM-DD format (optional)"New value: +"Due date in YYYY-MM-DD format (optional). Accept approximate phrasing (e.g. \"end of month\" = last day). For EVENTS (birthday, anniversary, party, graduation, wedding, holiday gathering) this is the PREP deadline, not the event date — default to ~7 days before the event (confirm with the user) unless they say to use the actual date; store the actual event date in description."
- Changed
add_customer_evidence1 field changed- changed
Input schema / properties / class / descriptionPrevious value: -"Evidence class (determines rank weight)."New value: +"Evidence class (determines rank weight): paying_customer (highest — words/behavior from someone who pays), product_telemetry (provenanced revenue-linked usage), public_review (real public review), operator_relayed (founder pastes a real quote/note), agent_as_user (coding agent/host pain with a wallet), prospect (non-paying signal, lowest)."
- Changed
agree_playbook4 fields changed- added
Input schema / properties / playbook_idAdded value: +{ + "description": "UUID of the Playbook (use this or playbook_title).", + "type": "string" +} - added
Input schema / properties / playbook_titleAdded value: +{ + "description": "Title (or fragment) of the Playbook (use this or playbook_id).", + "type": "string" +} - removed
Input schema / properties / tactic_idRemoved value: -{ - "description": "UUID of the Playbook (use this or tactic_title).", - "type": "string" -} - removed
Input schema / properties / tactic_titleRemoved value: -{ - "description": "Title (or fragment) of the Playbook (use this or tactic_id).", - "type": "string" -}
- Removed
analyze_team_needs - Changed
archive_playbook4 fields changed- added
Input schema / properties / playbook_idAdded value: +{ + "description": "UUID of the Playbook (use this or playbook_title).", + "type": "string" +} - added
Input schema / properties / playbook_titleAdded value: +{ + "description": "Title (or fragment) of the Playbook (use this or playbook_id).", + "type": "string" +} - removed
Input schema / properties / tactic_idRemoved value: -{ - "description": "ID of the Playbook to archive (optional if using tactic_title)", - "type": "string" -} - removed
Input schema / properties / tactic_titleRemoved value: -{ - "description": "Title of the Playbook to archive (use this or tactic_id)", - "type": "string" -}
- Added
attach_agent_key - Changed
audit_brand_visibility1 field changed- changed
Input schema / properties / providers / descriptionPrevious value: -"Which AI search engines to audit. Options: anthropic (Claude), xai (Grok), google (Gemini), perplexity (Sonar Pro with live search)"New value: +"Which AI search engines to audit. Options: anthropic (Claude), xai (Grok), google (Gemini), perplexity (Sonar Pro, live web search — best for real-time visibility checks)"
- Added
before_inventing_check_fo - Added
bind_hub_newsletter - Changed
cancel_commitment1 field changed- changed
Input schema / properties / title_search / descriptionPrevious value: -"Search by title if ID not known (fuzzy match)."New value: +"Search by title if ID not known (fuzzy match against ACTIVE commitments)."
- Added
complete_my_activity - Added
connect_remote_mcp - Added
create_company - Changed
create_google_doc1 field changed- changed
Input schema / properties / format_for_humans / descriptionPrevious value: -"If true (default), converts markdown to rich formatting. Set false for agent-to-agent docs."New value: +"If true (default), converts markdown to rich formatting. Set false for raw markdown / agent-to-agent docs."
- Changed
create_icp1 field changed- changed
Input schema / properties / channels / descriptionPrevious value: -"Where they spend attention."New value: +"Where they spend attention (communities, publications, events)."
- Changed
create_key_result3 fields changed- changed
Input schema / properties / current_value / descriptionPrevious value: -"THIS calendar month's actual (default: 0). Not YTD, not a future projection. For FCF use get_financial_summary displayed_net_cash_flow; for Amazon deposits use get_monthly_trends Amazon Sales. Do not invent Amazon GMV. Bind measure_source, or leave 0."New value: +"Manual KRs only — omit when measure_source is set: the source owns current and the daily OKR health sweep fills it (a typed value on a bound KR is refused). For a manual KR: THIS calendar month's actual, not YTD, not a projection. Cash-flow and Amazon-deposit KRs should bind fcf_last_closed_month / amazon_deposits_last_closed_month instead of typing a number." - added
Input schema / properties / directionAdded value: +{ + "description": "Goal direction. \"at_least\" (default): reach the target. \"at_most\": stay UNDER the target — a ceiling (e.g. founder decisions per 28 days). A ceiling KR is on-track only while current ≤ target.", + "enum": [ + "at_least", + "at_most" + ], + "type": "string" +} - changed
Input schema / properties / measure_source / descriptionPrevious value: -"Bind current progress to a live data source so it auto-updates daily instead of relying on manual edits. One of: stripe_active_subscribers (active paying Stripe subscriptions), stripe_mrr ($ MRR), crm_active_leads (active CRM leads). Use when the KR measures exactly what a source provides."New value: +"Bind current progress to a live data source so it auto-updates daily instead of relying on manual edits. One of: stripe_active_subscribers, stripe_mrr, crm_active_leads, crm_webhook_leads_month, customer_evidence_count, product_telemetry_count, fcf_last_closed_month, amazon_deposits_last_closed_month, human_door_decisions_28d, factory_landings_aligned_pct_28d. Use when the KR measures exactly what a source provides. Do not bind finance/P&L here."
- Removed
create_master_plan - Changed
create_meta_ad_draft2 fields changed- added
Input schema / properties / conversion_eventAdded value: +{ + "description": "Website event to optimize: OUTCOME_LEADS supports LEAD (default) or COMPLETE_REGISTRATION (completed signup); OUTCOME_SALES supports PURCHASE (default). Omit for other objectives. Use COMPLETE_REGISTRATION when browser/CAPI sends CompleteRegistration.", + "enum": [ + "LEAD", + "COMPLETE_REGISTRATION", + "PURCHASE" + ], + "type": "string" +} - changed
Input schema / properties / objective / descriptionPrevious value: -"OUTCOME_TRAFFIC (default) | OUTCOME_AWARENESS | OUTCOME_ENGAGEMENT"New value: +"OUTCOME_TRAFFIC (default) | OUTCOME_AWARENESS | OUTCOME_ENGAGEMENT | OUTCOME_LEADS (needs firing pixel) | OUTCOME_SALES (needs firing pixel)"
- Changed
create_objective1 field changed- changed
Input schema / properties / title / descriptionPrevious value: -"Objective title - a clear, aspirational goal (e.g., \"Build & Dogfood Freedom OS\")"New value: +"Objective title - a clear, aspirational goal (e.g., \"Build & Dogfood FreedomOS\")"
- Changed
create_play_from_activity5 fields changed- added
Input schema / properties / draft_category / descriptionAdded value: +"Optional: pre-fills from the recovery stamp; when omitted, proposed from the activity." - added
Input schema / properties / draft_custom_instructions / descriptionAdded value: +"Optional: pre-fills from the recovery stamp; when omitted, proposed from the activity." - added
Input schema / properties / draft_goal_impact / descriptionAdded value: +"Optional: pre-fills from the recovery stamp; when omitted, proposed from the activity." - added
Input schema / properties / draft_steps / descriptionAdded value: +"Optional: pre-fills from the recovery stamp; when omitted, steps are proposed from the activity." - added
Input schema / properties / draft_title / descriptionAdded value: +"Optional: pre-fills from the recovery stamp; when omitted, proposed from the activity."
- Changed
create_playbook1 field changed- changed
Input schema / properties / category / descriptionPrevious value: -"Growth category: Leads (lead acquisition), Conversion (leads to customers), Customer Lifetime Value (retention), Time (automation)"New value: +"Growth category (4-F spine): flow=Leads, funnel=Conversion, flourish=LTV/retention, freedom=time/automation. Pass flow|funnel|flourish|freedom, not Leads/Conversion/CLV/Time."
- Changed
create_x_ad_draft2 fields changed- added
Input schema / properties / ad_textAdded value: +{ + "description": "Ad copy (≤280 chars) — mints a nullcast ad post and attaches it to the paused line item. Mutually exclusive with post_id.", + "type": "string" +} - added
Input schema / properties / post_idAdded value: +{ + "description": "Existing X post id to promote on the paused line item instead of minting new copy.", + "type": "string" +}
- Changed
decide_command_center_item8 fields changed- added
Input schema / properties / connection_scopeAdded value: +{ + "description": "Connector cards that start a rented (Composio) sign-in only: 'personal' = \"Just me\" — the connection is usable only by the approving person (their chats, MCP key and bots they host); 'company' = everyone in this company. Omit to keep the requester's pick (default company). Ignored on every other card type.", + "enum": [ + "company", + "personal" + ], + "type": "string" +} - added
Input schema / properties / constraint_actionAdded value: +{ + "description": "OKR-health constraint cards only (a pinned constraint claim that expired or was disproved): \"release\" with decision approved releases the pin through the same owner the Command Center lever uses. A person decides these cards — attended chat or the Command Center; never a session on the operator's MCP token. Re-pinning (a new date and threshold) is done with pin_constraint, not here.", + "enum": [ + "release" + ], + "type": "string" +} - changed
Input schema / properties / decision / descriptionPrevious value: -"The decision: approved, denied, snoozed, or dismissed (dismissed = honest acknowledgment of a blocked_on_you card — never resolves it)"New value: +"The decision: approved, denied, snoozed, dismissed (honest ack of a blocked_on_you card), acknowledged (factory FYI Got it — card stays pending, factory continues), or cancelled (factory Cancel build). Pass the decision from available_actions — do not send dismissed when the label is Got it." - changed
Input schema / properties / decision / enumPrevious value: -[ - "approved", - "denied", - "snoozed", - "dismissed" -]New value: +[ + "approved", + "denied", + "snoozed", + "dismissed", + "acknowledged", + "cancelled" +] - changed
Input schema / properties / feedback / descriptionPrevious value: -"What to change when revise:true — preferred plain string telling the producing agent what to fix. Also accepted under aliases: reason, revision_feedback, user_feedback, comment, notes (and shallow nested {text}/{content}). Optional: blank revise feedback defaults to \"Please revise\" (same as the browser card). Optional on plain deny/approve."New value: +"What to change when revise:true — preferred plain string telling the producing agent what to fix. Also accepted under aliases: reason, revision_feedback, user_feedback, comment, notes (and shallow nested {text}/{content}). Optional: blank revise feedback defaults to \"Please revise\" (same as the browser card). Optional on plain deny/approve — but give specific, actionable feedback on a plain deny too." - changed
Input schema / properties / hired_job_action / descriptionPrevious value: -"Unclosed hired-job cards only: retry the first job once. Required with decision approved on that class. Dismiss is not legal. Accepted briefs are not graduation."New value: +"Unclosed hired-job cards only. FO: retry the first job once. HOST: host_complete (Day 1–3 done on the host) or retire the hire — never retry (that dispatches FreedomOS). Required with decision approved. Dismiss is not legal. Remind-on-a-date is a hold, not a close." - changed
Input schema / properties / hired_job_action / enumPrevious value: -[ - "retry" -]New value: +[ + "retry", + "host_complete", + "retire" +] - changed
Input schema / properties / hold_until / descriptionPrevious value: -"Loop-health, once-play timeout, hired-job, or quiet-alarm hold: future ISO date or YYYY-MM-DD that would prove the card wrong. Required with decision snoozed on those classes."New value: +"Loop-health, once-play timeout, hired-job, quiet-alarm, or compute-band hold: future ISO date or YYYY-MM-DD that would prove the card wrong. Required with decision snoozed on those classes (compute_band / compute_band_no_instrument: a dated hold is the experiment that excuses spend for that long; a bare snooze is not)."
- Changed
delete_key_result2 fields changed- added
Input schema / properties / reasonAdded value: +{ + "description": "Why it is archived (≤300 chars) — recorded on the archived entry and in the audit trail.", + "type": "string" +} - added
Input schema / properties / superseded_byAdded value: +{ + "description": "ID of the LIVE key result that replaces this one (same company). Recorded on the archived entry; any agent that later looks the old id up is redirected to it. Use when a KR is being swapped for a better-measured one rather than dropped.", + "type": "string" +}
- Added
detach_agent_key - Added
draft_ad_variants - Changed
enroll_by_segment2 fields changed- changed
Input schema / properties / exclude_active / descriptionPrevious value: -"Optional — skip leads that already have a queued/active enrollment in ANOTHER sequence, so a segment blast does not double-touch them. Default true."New value: +"Optional — skip leads that already have a queued/active enrollment in ANOTHER sequence, so a segment blast does not double-touch them. Default true; only set false when the operator explicitly accepts double-touch." - changed
Input schema / properties / segment_tag / descriptionPrevious value: -"Exact segment tag token from crm_leads.source, e.g. 'csv:free-trial'. No substring matching — must match a live tag exactly (see list_segments)."New value: +"Exact segment tag token from crm_leads.source, e.g. 'csv:free-trial' (see list_segments). No substring matching — must match a live tag exactly. Tags in tool output are wrapped in <user_field> markers — pass the inner text verbatim."
- Added
ensure_meta_pixel - Added
find_tool - Changed
generate_image_xai6 fields changed- changed
Input schema / properties / artifact_ids / descriptionPrevious value: -"Multiple artifact IDs for multi-ref edit/composite (max 3)."New value: +"Multiple artifact IDs for multi-ref edit/composite (max 5)." - changed
Input schema / properties / aspect_ratio / enumPrevious value: -[ - "1:1", - "16:9", - "9:16", - "4:3", - "3:4", - "3:2", - "2:3", - "2:1", - "1:2", - "19.5:9", - "9:19.5", - "20:9", - "9:20", - "auto" -]New value: +[ + "1:1", + "16:9", + "9:16", + "4:3", + "3:4", + "3:2", + "2:3", + "2:1", + "1:2", + "19.5:9", + "9:19.5", + "20:9", + "9:20", + "21:9", + "5:2", + "auto" +] - changed
Input schema / properties / model_tier / descriptionPrevious value: -"quality (default, best fidelity) or standard (cheaper draft). Prefer quality for customer-facing work."New value: +"quality (default, grok-imagine-image-2.0), auto (2.0 quality:auto), or standard (cheaper draft). Prefer quality for customer-facing work." - changed
Input schema / properties / model_tier / enumPrevious value: -[ - "quality", - "standard" -]New value: +[ + "quality", + "standard", + "auto" +] - changed
Input schema / properties / reference_image_url / descriptionPrevious value: -"URL of an existing image to EDIT. Prefer artifact_id when possible."New value: +"Chat door only. MCP/autonomous must pass artifact_id — a URL is refused and never queued as an Allow card." - changed
Input schema / properties / reference_image_urls / descriptionPrevious value: -"Multiple source image URLs for multi-ref edit/composite (max 3). Prefer artifact_ids."New value: +"Chat door only (max 5). MCP/autonomous: artifact_ids."
- Changed
generate_video6 fields changed- changed
Input schema / properties / aspect_ratio / descriptionPrevious value: -"Aspect ratio. Default: 16:9. For image-to-video, defaults to the input image ratio. Not supported for video editing."New value: +"Aspect ratio. Default: 16:9 (YouTube/hero/landscape); 9:16 (Reels/Shorts/Stories); 1:1 (feed square). For image-to-video, defaults to the input image ratio. Not supported for video editing." - changed
Input schema / properties / image_url / descriptionPrevious value: -"URL of a single still image to animate (image-to-video mode). Use image_url from a previous generate_image result. For multiple images, use image_urls instead."New value: +"Chat door only. MCP/autonomous must pass artifact_id — a URL is refused and never queued as an Allow card." - changed
Input schema / properties / image_urls / descriptionPrevious value: -"Array of image URLs (up to 7, primitive max) for reference-to-video. Combine mascot, person, product, brand assets. Use signed URLs from MEDIA IN THIS CONVERSATION. For a single image, use image_url instead."New value: +"Chat door only (up to 7). MCP/autonomous: artifact_ids." - changed
Input schema / properties / prompt / descriptionPrevious value: -"Detailed description of the video to generate. Include visual scene, audio/voice direction, mood, and brand elements. For multi-image: describe how the subjects from each image interact. For video editing: describe the changes to make."New value: +"Detailed description of the video to generate. Include visual scene, audio/voice direction, mood, and brand elements. For multi-image: describe how the subjects from each image interact. For video editing: describe the changes to make. Avoid precise on-screen text animation (prefer burned-in design tools) and many incompatible camera cuts without clear staging — both are still hard for short-form video models." - changed
Input schema / properties / resolution / descriptionPrevious value: -"Video resolution. 480p (fast draft), 720p (HD), 1080p (full HD on text-to-video and image-to-video). Reference-to-video is automatically clamped to 720p (primitive). Not supported for video editing."New value: +"Video resolution. 480p (fast draft, API default when omitted), 720p (HD), 1080p (full HD on text-to-video and image-to-video) — prefer the highest resolution that fits the deliverable, not a permanent draft default. Reference-to-video is automatically clamped to 720p (primitive). Not supported for video editing." - changed
Input schema / properties / video_url / descriptionPrevious value: -"URL of an existing video to edit (video editing mode). Describe the edits in the prompt. Input capped at 8.7 seconds (primitive)."New value: +"Chat door only. MCP/autonomous must pass artifact_id of the video to edit (input capped at 8.7s)."
- Changed
get_attention_quest2 fields changed- changed
Input schema / properties / companyId / descriptionPrevious value: -"Optional active company for featured card pick. Omit for host-only board (still returns needs_you + running)."New value: +"Optional active company for featured card pick + revenue constraint + ranked Playbooks. Omit for host-only board (still returns needs_you + running)." - added
Input schema / properties / focus_areaAdded value: +{ + "description": "Optional: focus on a specific Playbook category", + "enum": [ + "flow", + "funnel", + "flourish", + "freedom" + ], + "type": "string" +}
- Added
get_checkout_link - Changed
get_command_center_items1 field changed- added
Input schema / properties / holdco_classAdded value: +{ + "description": "When true, only cards flagged as holdco-visible class evidence (this is a class, these are its instance ids). The holdco chair sweep uses this so class evidence is not read as one dead run.", + "type": "boolean" +}
- Added
get_company_birth_play - Changed
get_credit_usage1 field changed- changed
Input schema / properties / period / descriptionPrevious value: -"Time period for usage breakdown. Default: \"month\""New value: +"Time period for FOS credit/usage breakdown only. Does not change hosting (always this calendar month). Default: \"month\""
- Added
get_factory_census - Removed
get_my_channel_partner_link - Added
get_my_role - Removed
get_next_priority - Removed
get_page_performance - Changed
get_playbook4 fields changed- added
Input schema / properties / playbook_idAdded value: +{ + "description": "UUID of the Playbook (use this or playbook_title).", + "type": "string" +} - added
Input schema / properties / playbook_titleAdded value: +{ + "description": "Title (or fragment) of the Playbook (use this or playbook_id).", + "type": "string" +} - removed
Input schema / properties / tactic_idRemoved value: -{ - "description": "UUID of the Playbook (use this or tactic_title).", - "type": "string" -} - removed
Input schema / properties / tactic_titleRemoved value: -{ - "description": "Title (or fragment) of the Playbook (use this or tactic_id).", - "type": "string" -}
- Changed
get_search_performance1 field changed- changed
Input schema / properties / dimensions / descriptionPrevious value: -"Dimensions to group by. Options: \"query\", \"page\", \"country\", \"device\", \"date\". Defaults to [\"query\"]."New value: +"Dimensions to group by, combinable: [\"query\"] for keywords, [\"page\"] for pages, [\"query\",\"page\"] for both. Defaults to [\"query\"]."
- Added
get_spend_envelope - Added
get_xero_books_health - Added
grant_spend_envelope - Changed
hire_agent_with_context5 fields changed- changed
Input schema / properties / domain_expertise / descriptionPrevious value: -"Role-specific domain knowledge that makes this agent an expert (frameworks, ratios, best practices specific to this role and industry)"New value: +"Role-specific domain knowledge that makes this agent an expert (frameworks, ratios, best practices specific to this role and industry). Include when available — sharpens the agent's expertise." - changed
Input schema / properties / first_72_hours / descriptionPrevious value: -"3 demand-bound first actions (leads/enroll/outbound/content-to-market/cash/fulfillment). FORBIDDEN: placement audits, governance of inactive agents, fleet ownership maps, agent scoreboards. These become Day 1-3 tasks; hygiene shapes are stripped at write time."New value: +"3 demand-bound first actions (leads/enroll/outbound/content-to-market/cash/fulfillment). FORBIDDEN: placement audits, governance of inactive agents, fleet ownership maps, agent scoreboards. These become Day 1-3 tasks; hygiene shapes are stripped at write time. Always include — core to a complete JD." - changed
Input schema / properties / guardrails / descriptionPrevious value: -"What this agent should NEVER do (e.g., \"Never recommend cutting product investment\", \"Never ignore cash runway below 3 months\")"New value: +"What this agent should NEVER do (e.g., \"Never recommend cutting product investment\", \"Never ignore cash runway below 3 months\"). Always include — core to a complete JD." - changed
Input schema / properties / obsession / descriptionPrevious value: -"The ONE demand-path KPI this agent lives or dies by (leads, enrolls, revenue, cash, customers). Not \"agents activated\" or team-hygiene metrics. Specific with numbers when possible (e.g., \"Close the $4,200/mo freedom gap\")."New value: +"The ONE demand-path KPI this agent lives or dies by (leads, enrolls, revenue, cash, customers). Not \"agents activated\" or team-hygiene metrics. Specific with numbers when possible (e.g., \"Close the $4,200/mo freedom gap\"). Always include — core to a complete JD." - added
Input schema / properties / preflightAdded value: +{ + "description": "OPTIONAL. What the operator must hand over BEFORE this role can start (kind \"input\": a brand voice doc, a target list, a login the operator shares in Knowledge; each with why it is needed, who grants it, the tool that checks for it — default read_knowledge — and what that tool shows when it is there). Integration access (\"access\") is derived from the activity plan automatically; list it only for something the plan cannot see. A missing item becomes ONE blocked_on_you card from the role, never a guess.", + "items": { + "properties": { + "check_tool": { + "type": "string" + }, + "granted_by": { + "type": "string" + }, + "kind": { + "enum": [ + "input", + "access" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "output": { + "type": "string" + }, + "why": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" +}
- Added
hold_post - Changed
ingest_voice_corpus2 fields changed- changed
Input schema / properties / subject_kind / descriptionPrevious value: -"Whose voice — 'person' (personal brand) or 'brand'."New value: +"Whose voice — 'person' (personal brand) or 'brand'. Defaults to the existing profile's subject if omitted." - changed
Input schema / properties / urls / descriptionPrevious value: -"Public URLs to learn the voice from (SSRF-guarded fetch)."New value: +"Public URLs to learn the voice from — the operator's own writing, or admired creators' pages. Fetched HTTPS-only, SSRF-guarded, no crawling."
- Changed
link_agent_okrs1 field changed- changed
Input schema / properties / okr_ids / descriptionPrevious value: -"Array of OKR UUIDs to link to this agent"New value: +"Array of OKR UUIDs to link to this agent. Call get_okrs first to list available objective IDs."
- Changed
list_ad_campaigns1 field changed- changed
Input schema / properties / ad_account_id / descriptionPrevious value: -"Ad account id from list_ad_accounts (act_<digits> or bare digits). Optional when the connection has exactly one ad account."New value: +"Ad account id from list_ad_accounts (act_<digits> or bare digits). Optional when the connection has exactly one ad account; if several exist and none is given, the call refuses and lists them to choose from."
- Changed
list_knowledge2 fields changed- changed
Input schema / properties / folder / descriptionPrevious value: -"Optional folder to list contents of (e.g., \"canon\", \"partners\"). Omit to list the root level. Always-on docs live in canon/."New value: +"Optional folder to list contents of (e.g., \"canon\", \"partners\"). Omit to list the root level. Combined with search, starts the nested name search at that folder. Always-on docs live in canon/." - changed
Input schema / properties / search / descriptionPrevious value: -"Optional name-only filter (filename/slug). Does not search file bodies — use read_knowledge by slug for content."New value: +"Optional name-only filter (filename and folder-qualified slug, including nested folders). Does not search file bodies — use read_knowledge by slug for content."
- Changed
list_leads1 field changed- changed
Input schema / properties / segment_tag / descriptionPrevious value: -"Optional — exact segment tag token from crm_leads.source, e.g. 'csv:free-trial'. Omit to list across all segments. No substring matching."New value: +"Optional — exact segment tag token from crm_leads.source, e.g. 'csv:free-trial' (from list_segments; unwrap any <user_field> markers). Omit to list across all segments. No substring matching."
- Removed
list_scheduled_reports - Added
list_x_chat_conversations - Added
list_xero_accounts - Added
list_xero_unreconciled - Changed
manage_responsibilities2 fields changed- changed
Input schema / properties / action / descriptionPrevious value: -"Action to perform"New value: +"assign = give primary ownership of domains; delegate = temporarily route domains from one user to another (supports valid_until for auto-expiry); revoke = remove a domain assignment. To see current routing, call get_routing_overview." - changed
Input schema / properties / action / enumPrevious value: -[ - "assign", - "delegate", - "revoke", - "list" -]New value: +[ + "assign", + "delegate", + "revoke" +]
- Added
pin_constraint - Added
post_to_x - Added
post_xero_transaction - Changed
posthog_create_vision_scanner1 field changed- changed
Input schema / properties / prompt / descriptionPrevious value: -"Natural-language watch prompt (stored on scanner_config.prompt)"New value: +"Natural-language watch prompt (stored on scanner_config.prompt); can be passed here or directly on scanner_config.prompt"
- Changed
posthog_hogql1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"HogQL query string"New value: +"HogQL query string. HogQL is ClickHouse-compatible SQL; common tables: events, persons, sessions. Example: \"SELECT count() FROM events WHERE event = '$pageview' AND timestamp > now() - interval 7 day\""
- Changed
posthog_list_vision_observations2 fields changed- changed
Input schema / properties / scanner_id / descriptionPrevious value: -"Limit to one scanner UUID"New value: +"Limit to one scanner UUID — use to see one scanner's findings across sessions" - changed
Input schema / properties / session_id / descriptionPrevious value: -"Limit to one session recording id"New value: +"Limit to one session recording id — use to see every scanner that ran on this recording"
- Changed
posthog_query_funnel1 field changed- changed
Input schema / properties / events / descriptionPrevious value: -"Funnel steps (minimum 2). Each: { id: \"event_name\", name: \"Display Name\" }"New value: +"Funnel steps (minimum 2). Each: { id: \"event_name\", name: \"Display Name\" }. Example: [{id:\"$pageview\"},{id:\"sign_up_completed\"},{id:\"subscription_created\"}]."
- Changed
posthog_query_trends1 field changed- changed
Input schema / properties / events / items / properties / id / descriptionPrevious value: -"Event name (e.g., \"$pageview\", \"sign_up_completed\")"New value: +"Event name (e.g., \"$pageview\", \"sign_up_completed\", \"$autocapture\")"
- Added
preview_my_business - Changed
promote_corpus_to_content1 field changed- changed
Input schema / properties / count / descriptionPrevious value: -"How many angles (1-3, default 1). Prefer 1."New value: +"How many angles (1-3, default 1). Prefer 1 — one next post, not a flood of cards."
- Changed
propose_work1 field changed- changed
Input schema / properties / payload / descriptionPrevious value: -"Optional structured detail for the item."New value: +"Optional structured detail for the item. For kind=builder_fix the payload MUST name the Key Result the unit moves (payload.linked_kr_id, a live KR of this company) or carry payload.factory_self=true with payload.birth_reason; otherwise the proposal is refused with the live KR list. Server-owned keys (play_cascade, consult_kind, product_status, merge and deploy stamps, watch, card_id, spawn_session_id and its aliases session_id / session / spawn_session) are dropped and named in the result."
- Added
publish_hub - Added
publish_site - Added
reactivate_agent - Changed
read_knowledge1 field changed- changed
Input schema / requiredPrevious value: -[ - "slug" -]New value: +[ + "slug", + "companyId" +]
- Changed
read_web_page1 field changed- changed
Input schema / properties / url / descriptionPrevious value: -"The full URL to read (must include https:// or http://)"New value: +"The full URL to read (must include https:// or http://) — must be a URL the user provided; never guess one."
- Removed
reassign_reports - Changed
redraft_playbook_contract4 fields changed- added
Input schema / properties / playbook_idAdded value: +{ + "description": "UUID of the Playbook (use this or playbook_title).", + "type": "string" +} - added
Input schema / properties / playbook_titleAdded value: +{ + "description": "Title (or fragment) of the Playbook (use this or playbook_id).", + "type": "string" +} - removed
Input schema / properties / tactic_idRemoved value: -{ - "description": "UUID of the Playbook (use this or tactic_title).", - "type": "string" -} - removed
Input schema / properties / tactic_titleRemoved value: -{ - "description": "Title (or fragment) of the Playbook.", - "type": "string" -}
- Added
reopen_product_request - Changed
request_attention_spawn1 field changed- changed
Input schema / properties / host / descriptionPrevious value: -"Which builder to open: grok (Terminal) | claude-desktop (Claude.app Code — preferred) | claude-code (Terminal CLI)"New value: +"Which builder to open: grok (Grok Build Terminal; factory/CASCADE/freedom-ai labs refuse Terminal) | claude-desktop (Claude.app Code) | claude-code (Terminal CLI; factory goals refuse)"
- Changed
request_attention_transfer1 field changed- changed
Input schema / properties / spawn_host / descriptionPrevious value: -"If no to_session_id: open new tab with this host (grok | claude-desktop | claude-code)."New value: +"If no to_session_id: open new tab with this host (grok | claude-desktop | claude-code). Factory/freedom-ai lab goals: grok/claude-code refuse Terminal (Code Factory ACP)."
- Changed
request_connector1 field changed- added
Input schema / properties / scopeAdded value: +{ + "description": "Who may use the connection once it is live. \"company\" (default) = everyone in this company. \"personal\" = \"Just me\": only the person who signs in (their chats, MCP key and bots they host) — e.g. a personal inbox. The approver can still change it on the card.", + "enum": [ + "company", + "personal" + ], + "type": "string" +}
- Changed
request_content_revision1 field changed- added
Input schema / properties / as_final_draftAdded value: +{ + "description": "When true, feedback IS the replacement post — save it without re-running the persona transform. Use when the operator already wrote the caption.", + "type": "boolean" +}
- Added
restore_agent_activity - Added
restore_knowledge - Changed
run_playbook4 fields changed- added
Input schema / properties / playbook_idAdded value: +{ + "description": "UUID of the Playbook (use this or playbook_title).", + "type": "string" +} - added
Input schema / properties / playbook_titleAdded value: +{ + "description": "Title (or fragment) of the Playbook (use this or playbook_id).", + "type": "string" +} - removed
Input schema / properties / tactic_idRemoved value: -{ - "description": "UUID of the Playbook to run (use this or tactic_title).", - "type": "string" -} - removed
Input schema / properties / tactic_titleRemoved value: -{ - "description": "Title (or fragment) of the Playbook to run (use this or tactic_id).", - "type": "string" -}
- Changed
run_quality_check2 fields changed- changed
Input schema / properties / artifact_id / descriptionPrevious value: -"ID of a specific artifact to evaluate (from generate_image or generate_video result). If omitted, auto-finds the most recent media artifact."New value: +"ID of a specific artifact to evaluate (from generate_image_xai or generate_video result). If omitted, auto-finds the most recent media artifact generated in the last 10 minutes." - changed
Input schema / properties / task / descriptionPrevious value: -"What this deliverable is for (e.g. \"X post about Freedom OS launch\"). Gives the ICP evaluator context."New value: +"What this deliverable is for (e.g. \"X post about FreedomOS launch\"). Gives the ICP evaluator context."
- Changed
save_knowledge2 fields changed- changed
Input schema / properties / content / descriptionPrevious value: -"The 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. Structure: ## Section > ### Sub-section > paragraph > - list items. Without blank lines, content renders as a wall of text."New value: +"The 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. Use > for callouts or important notes. Structure: ## Section > ### Sub-section > paragraph > - list items. Without blank lines, content renders as a wall of text." - changed
Input schema / requiredPrevious value: -[ - "title", - "content" -]New value: +[ + "title", + "content", + "companyId" +]
- Changed
search_conversations1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Search terms — keywords, topics, or phrases from the conversation the user is referencing"New value: +"Search terms — the most specific keywords, topics, or phrases from the conversation the user is referencing"
- Changed
segment_leads1 field changed- changed
Input schema / properties / segment_tag / descriptionPrevious value: -"Exact segment tag token from crm_leads.source, e.g. 'csv:apc-cch-2024'. No substring matching — must match a live tag exactly."New value: +"Exact segment tag token from crm_leads.source, e.g. 'csv:apc-cch-2024' (from list_segments). No substring matching — must match a live tag exactly. Tags in tool output are wrapped in <user_field> markers — use the inner text verbatim."
- Changed
send_email2 fields changed- added
Input schema / properties / in_reply_toAdded value: +{ + "description": "Optional RFC In-Reply-To header. Honored ONLY on executionSource=inbound_info (company-mail threaded reply). Ignored on every other path so callers cannot inject headers.", + "type": "string" +} - added
Input schema / properties / referencesAdded value: +{ + "description": "Optional RFC References header. Honored ONLY on executionSource=inbound_info. Ignored otherwise.", + "type": "string" +}
- Changed
send_lead_draft1 field changed- changed
Input schema / properties / draft_id / descriptionPrevious value: -"UUID of the lead_drafts row to send."New value: +"UUID of the lead_drafts row to send (must be pending_review or approved)."
- Changed
send_slack_message1 field changed- changed
Input schema / properties / recipient_name / descriptionPrevious value: -"Name of the person to DM (e.g., \"Alex\", \"Jordan\"). Will be looked up via linked accounts or Slack directory."New value: +"Name of the person to DM (e.g., \"Alex\", \"Jordan\") — provide the FULL name when possible. Looked up via linked accounts first, then exact Slack directory match; ambiguous first-name-only matches fail closed and list candidates instead of guessing."
- Added
send_to_user - Changed
set_cac_strategy2 fields changed- added
Input schema / properties / ads_account_idAdded value: +{ + "description": "Optional Meta ad account the budget measures (act_<digits>, from list_ad_accounts) — required once when the Meta connection carries several accounts. Omit to leave unchanged.", + "type": "string" +} - added
Input schema / properties / monthly_ads_budgetAdded value: +{ + "description": "Optional monthly ads budget in USD (major units, e.g. 500 = $500/month). Pass 0 to clear. Advisory envelope shown on the dashboard beside live MTD ad spend. Omit to leave unchanged.", + "type": "number" +}
- Added
set_xero_account_map - Changed
share_commitment1 field changed- changed
Input schema / properties / commitment_id / descriptionPrevious value: -"The UUID of the commitment to share"New value: +"The UUID of the commitment to share (must belong to the caller)."
- Changed
share_knowledge1 field changed- changed
Input schema / properties / path / descriptionPrevious value: -"The 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\")."New value: +"The file or folder path to share. Use trailing \"/\" for folders (e.g., \"acme-deal/\") — nested folders work too (e.g., \"partners/acme/\" shares the whole subtree). Use no trailing \"/\" for files (e.g., \"acme-deal/term-sheet\")."
- Changed
share_playbook3 fields changed- added
Input schema / properties / playbook_idAdded value: +{ + "description": "UUID of the Playbook to send.", + "type": "string" +} - removed
Input schema / properties / tactic_idRemoved value: -{ - "description": "UUID of the Playbook to send.", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "tactic_id", - "companyId" -]New value: +[ + "companyId" +]
- Changed
split_agent_activity1 field changed- changed
Input schema / properties / pieces / descriptionPrevious value: -"Optional precomputed replacement activities (name, frequency, description, …). When omitted, derived from the source."New value: +"Optional precomputed replacement activities (name, frequency, description, …) — exhaustion-recovery stamps typically supply these. When omitted, derived from the source."
- Added
stamp_external_builder_bind - Added
start_oauth - Changed
submit_content_to_pipeline1 field changed- added
Input schema / properties / as_final_draftAdded value: +{ + "description": "When true, this IS the post — queue it for human Approve without running the persona transform (Alex). Use for operator-curated copy, especially sourced faith. Auto-queue stays off for held grains. Default false.", + "type": "boolean" +}
- Changed
submit_product_request1 field changed- added
Input schema / properties / linked_kr_idAdded value: +{ + "description": "Optional: the FreedomOS Key Result this request moves (a kr-… id from FreedomOS's own OKRs — the unit is FreedomOS work). Validated at filing; a KR that is not live is refused with the live list. Bugs/upgrades default to factory-self (product_defect); a feature approved without one is built as factory-self and counted as unaligned.", + "type": "string" +}
- Changed
suggest_collaboration1 field changed- added
Input schema / properties / instance_card_idsAdded value: +{ + "description": "Optional card ids that are instances of this class. When the target is a holdco chair, these are flagged on the company rail for the holdco sweep.", + "items": { + "type": "string" + }, + "type": "array" +}
- Removed
suggest_next_hire - Added
suggest_xero_post - Added
sync_faith_content_hash - Changed
triage_idea2 fields changed- changed
Input schema / properties / workspace_id / descriptionPrevious value: -"Single workspace/company ID (use workspace_ids for multiple)"New value: +"Single company ID (use workspace_ids for multiple)" - changed
Input schema / properties / workspace_ids / descriptionPrevious value: -"Array of workspace/company IDs to assign the idea to"New value: +"Array of company IDs to assign the idea to"
- Changed
update_agent1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"New display name — a single first name (e.g. \"Garth\"). Omit to leave the name unchanged."New value: +"New display name — a single first name (e.g. \"Garth\"). Do not include a title. Omit to leave the name unchanged. Renaming carries the agent's memory file across automatically."
- Changed
update_agent_activity3 fields changed- changed
Input schema / properties / patch / properties / frequency / descriptionPrevious value: -"New frequency."New value: +"New frequency. weekdays = once each Mon–Fri in America/Los_Angeles; weekends do not run." - changed
Input schema / properties / patch / properties / frequency / enumPrevious value: -[ - "daily", - "weekly", - "biweekly", - "monthly", - "quarterly", - "once", - "as_needed", - "on_demand" -]New value: +[ + "daily", + "weekdays", + "weekly", + "biweekly", + "monthly", + "quarterly", + "once", + "as_needed", + "on_demand" +] - changed
Input schema / properties / patch / properties / name / descriptionPrevious value: -"New activity name (re-keys the scheduler — see usage)."New value: +"New activity name — re-keys the scheduler (run-history/cadence is keyed on name, so a rename makes the activity eligible to run again under the new name and resets its history). The matching deliverable-queue entry is renamed in the same write; the tool returns a note when this happens."
- Changed
update_agent_skill1 field changed- changed
Input schema / properties / agent_name / descriptionPrevious value: -"Name of the agent (e.g., \"Marcus\"). Used to look up agent_id if not provided."New value: +"Name of the agent (e.g., \"Marcus\"). Used to look up agent_id if not provided — prefer this when the user @mentions an agent by name."
- Changed
update_brand_guidelines1 field changed- changed
Input schema / properties / updates / descriptionPrevious value: -"Only the fields to update. Other fields are preserved automatically."New value: +"Only the fields to update; others are preserved automatically. Supported: name, tagline, colors {primary, accent, background}, typography {headings, body}, tone[], dos[], donts[], naming_rules (customer-facing naming authority — canonical product name, banned names/codenames, casing, CTA phrasing; follow it verbatim), logo_url. Nested objects (colors, typography) merge by key — e.g. { colors: { primary: \"#1E3A8A\" } } only changes primary, keeping siblings."
- Changed
update_commitment1 field changed- changed
Input schema / properties / title_search / descriptionPrevious value: -"Search by title if ID not known (fuzzy match)."New value: +"Search by title if ID not known (fuzzy match against ACTIVE commitments)."
- Changed
update_company3 fields changed- changed
Input schema / properties / logo_url / descriptionPrevious value: -"URL to company logo image"New value: +"Durable public https URL for the company HUD logo. HUD chrome circle-masks with object-contain — pass a normal logo file, not a pre-cropped circle. Signed storage URLs expire — for a file (chat attachment, FO Media, or base64) use upload_company_logo instead." - added
Input schema / properties / pledge_publicAdded value: +{ + "description": "The founder's own yes to being celebrated. true = the Freedom Pledge page goes live at getfreedomos.com/freedom/<slug>, the company may appear on the FreedomOS front page, and a welcome post is drafted for the FreedomOS founder to approve. false = all of that stops. Only a person sets this (chat, MCP as the operator, or an approved card) — never from an activity on a founder's behalf.", + "type": "boolean" +} - added
Input schema / properties / runtime_modeAdded value: +{ + "description": "Who runs this company's roles. \"host\": the operator's own bots wear them — they read each brief with get_my_role and do the work on their own turn, and FreedomOS starts nothing. \"fo\": FreedomOS runs them on its own schedule and pays the compute, so switching to it always needs the operator's yes.", + "enum": [ + "host", + "fo" + ], + "type": "string" +}
- Changed
update_icp1 field changed- changed
Input schema / properties / updates / descriptionPrevious value: -"Only the fields to update. Other fields are preserved automatically."New value: +"Only the fields to update. Other fields are preserved automatically. Special fields: class — 'customer' (default) or 'partner', tags partner/affiliate ICPs so they never masquerade as end-buyers (invalid values rejected); agentProfile — how this customer's own AI agent participates in buying: { tier: 'ambient' | 'assisted' | 'delegated' | 'builder', agents: string[], surfacesRead: string[], purchasePath: string, autonomyNotes: string } — tier must be one of the four values (rejected otherwise), nested updates merge, and updatedAt is stamped automatically."
- Changed
update_key_result4 fields changed- changed
Input schema / properties / current_value / descriptionPrevious value: -"THIS calendar month's actual unless month is set. Not YTD, not a future projection. FCF: get_financial_summary displayed_net_cash_flow. Amazon deposits: get_monthly_trends Amazon Sales."New value: +"Manual KRs only — refused on a KR bound to a measure_source (the sweep owns current; pass measure_source \"none\" first to make it manual). THIS calendar month's actual unless month is set. Not YTD, not a projection." - added
Input schema / properties / directionAdded value: +{ + "description": "Goal direction. \"at_least\" (default): reach the target. \"at_most\": stay UNDER the target — a ceiling. A ceiling KR is on-track only while current ≤ target.", + "enum": [ + "at_least", + "at_most" + ], + "type": "string" +} - changed
Input schema / properties / measure_source / descriptionPrevious value: -"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 manual updates."New value: +"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, crm_webhook_leads_month, customer_evidence_count, product_telemetry_count, fcf_last_closed_month, amazon_deposits_last_closed_month, human_door_decisions_28d, factory_landings_aligned_pct_28d. Pass \"none\" to unbind and return the KR to manual updates. Do not bind finance/P&L here." - added
Input schema / properties / unitAdded value: +{ + "description": "Unit label for the number (e.g. \"$\", \"%\", \"leads\"). A label fix, allowed on a bound KR too — the source owns the number, the unit names it. Before this, a wrong unit could only be fixed by recreate-and-rebind, losing history.", + "type": "string" +}
- Changed
update_pipeline1 field changed- changed
Input schema / properties / destination / descriptionPrevious value: -"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 items REQUIRE media. Meta platforms need the company's Facebook & Instagram (or Threads) connection in Smart Tools."New value: +"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 items REQUIRE media. Meta platforms need the company's Facebook & Instagram (or Threads) connection in Connections."
- Changed
update_playbook4 fields changed- added
Input schema / properties / playbook_idAdded value: +{ + "description": "UUID of the Playbook (use this or playbook_title).", + "type": "string" +} - added
Input schema / properties / playbook_titleAdded value: +{ + "description": "Title (or fragment) of the Playbook (use this or playbook_id).", + "type": "string" +} - removed
Input schema / properties / tactic_idRemoved value: -{ - "description": "ID of the Playbook to update (optional if using tactic_title)", - "type": "string" -} - removed
Input schema / properties / tactic_titleRemoved value: -{ - "description": "Title of the Playbook to update (use this or tactic_id)", - "type": "string" -}
- Changed
update_projection3 fields changed- changed
Input schema / properties / mode / descriptionPrevious value: -"How to apply the value. \"set\" = replace existing value (default). \"add\" = add on top of existing value."New value: +"How to apply the value. \"set\" = replace existing value (default) — pair with force=true to skip the overwrite confirmation. \"add\" = add on top of the existing value — use when the user says add/include/put in/layer on top." - changed
Input schema / properties / updates / descriptionPrevious value: -"Array of month+value pairs"New value: +"Array of month+value pairs — supports multiple months in one call, e.g. [{ month: \"apr\", value: 15000 }, { month: \"may\", value: 16000 }]." - changed
Input schema / properties / updates / items / properties / value / descriptionPrevious value: -"Dollar value (positive number)"New value: +"Dollar value (positive number — expenses are stored as positive in the CASH OUT section)."
- Changed
update_reader_profile2 fields changed- added
Input schema / properties / glossary_seen / descriptionAdded value: +"Glossary terms already introduced to this person (full replace, not merged)." - changed
Input schema / properties / member_id / descriptionPrevious value: -"Optional target UUID. Defaults to you."New value: +"Optional target UUID. Defaults to you. Updating another member requires admin in this company."
- Added
update_transaction_account - Changed
update_voice_profile1 field changed- changed
Input schema / properties / updates / descriptionPrevious value: -"Only the fields to update. Others are preserved."New value: +"Only the fields to update; others are preserved. Supported keys: subject {kind:'person'|'brand', name}, style_descriptor (string), dos (string array — REPLACES the list; read first, merge, then send to add), donts (string array — REPLACES the list), exemplars (array of {excerpt, source?, why?}), reading_level ({target_grade:number, note?:string}). faith_substance is a fixed invariant ('human_authored_only') and cannot be changed here."
- Added
upload_company_logo - Changed
upsert_attention_session2 fields changed- changed
Input schema / properties / status / descriptionPrevious value: -"running | blocked_on_operator | done | parked | unknown (blocked_on_tim accepted as alias)"New value: +"running | blocked_on_operator | done | parked | unknown" - changed
Input schema / properties / status / enumPrevious value: -[ - "running", - "blocked_on_operator", - "done", - "parked", - "unknown", - "blocked_on_tim" -]New value: +[ + "running", + "blocked_on_operator", + "done", + "parked", + "unknown" +]
7 tool updates
- Added
claim_cloudflare_preview - Added
create_payment_link - Added
get_cloudflare_hosting_status - Added
get_receive_status - Changed
list_knowledge2 fields changed- changed
Input schema / properties / folder / descriptionPrevious value: -"Optional folder to list contents of (e.g., \"acme-deal\", \"partners\"). Omit to list the root level."New value: +"Optional folder to list contents of (e.g., \"canon\", \"partners\"). Omit to list the root level. Always-on docs live in canon/." - changed
Input schema / properties / search / descriptionPrevious value: -"Optional search term to filter files by name"New value: +"Optional name-only filter (filename/slug). Does not search file bodies — use read_knowledge by slug for content."
- Added
set_company_lifecycle - Added
start_company_receive
1 tool update
- Added
share_playbook
1 tool update
- Changed
update_projection1 field changed- changed
Input schema / properties / account_name / descriptionPrevious value: -"Account name to update (must match closely, e.g., \"Software Revenue\", \"AWS Hosting\"). Use get_projections to see exact names first."New value: +"Account name to update. Matches an existing line, or creates it on first write (CASH OUT unless the name is clearly revenue)."
Related MCP Connectors
- muninOAuthcom.getmunin
Open-source all-in-one MCP-first customer platform: KB, Conversations, CRM, CMS, Outreach, Analytics
- sendifaiOAuthcom.sendifai
335 MCP tools, 75 playbooks. AI-native CRM, email/SMS, events, OAuth.
AIOProductOS: revenue, feedback, work and analytics on one customer record. 71 tools, 3 apps.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnd-to-end agent-managed company brain. Humans and any MCP agent co-author living docs (Markdown + extensions), 40+ visual diagrams (Mermaid, BPMN, D2, PlantUML, ELK, Excalidraw), plans, and a self-learning Knowledge Graph. 163 tools across 16 categories. Auth: OAuth 2.1 or API key. Lean, secure, affordable — from individuals to enterprise.MIT
- AlicenseAqualityBmaintenanceAI Agent Mission Control — 200+ MCP tools across 31 domains. Manage agents, experiments, workflows, crews, skills, tools, credentials, approvals, signals, budgets, marketplace, knowledge bases, chatbots, and more. Self-hosted, open-source (AGPL-3.0). Supports stdio + Streamable HTTP/SSE with OAuth 2.0 auth.3473AGPL 3.0

AllMCPofficial
AlicenseNot gradedqualityBmaintenanceOpen-source MCP hub providing a single endpoint for AI agents to access dozens of business integrations (CRMs, spreadsheets, telephony, ads) with multi-tenancy, OAuth, and context-efficient tool discovery.Apache 2.0- AlicenseNot gradedqualityDmaintenanceAI-native productivity backend that gives your AI assistant persistent memory, pattern awareness, and computed intelligence about your work. 14 MCP tools for task management, daily planning, weekly review, and personal context.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.