com.getfreedomos/freedom-mcp
REMOTE · TWULUXMOOGNLWTMAOQGO.SUPABASE.CO · SCANNED AUG 3
Business-ops MCP for FreedomOS — finance, OKRs, customer scoring, AI agents, content. 250+ tools.
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 Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 99% of tool parameters carry a description.Partial
Capabilities20
- Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
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.
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
- Tool “run_tactic” rewrote its description, which is the text the model reads security
- New tool “create_play_from_activity” functional
- “run_tactic” added an optional parameter “suggest_only” cosmetic
- “run_tactic” reworded the description of “tactic_title” cosmetic
- “run_tactic” reworded the description of “tactic_id” cosmetic
- 31 Jul 26 +17
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −10
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 0
- Tool “submit_product_request” rewrote its description, which is the text the model reads security
- Tool “report_feedback” rewrote its description, which is the text the model reads security
- “submit_product_request” reworded the description of “kind” cosmetic
- “hire_agent_with_context” reworded the description of “obsession” cosmetic
- “hire_agent_with_context” reworded the description of “first_72_hours” cosmetic
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 56
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=supabase.co | CN=WE1,O=Google Trust Services,C=US | 28 Jun 2026 | 26 Sept 2026 | ECDSA 256 | ECDSA-SHA256 | 1d2d53f65d874dfb0eead7aab0301afd |
| SANs: supabase.co, *.supabase.co | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of twuluxmoognlwtmaoqgo.supabase.co. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| co. | present | 7786 | 8 | Verified |
| supabase.co. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Challenged, unverified
The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.
| Result | Challenged, unverified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains; preload |
Protected resource metadata
| Retrieved | No |
|---|---|
| Problem | no_resource_metadata |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp | Verified | 200 | |
| http (plaintext) | http://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp | HTTPS enforced | 301 | https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp |
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.
ack_attention_directive ~152
Mark a pending attention directive as acked after the host session has taken the instruction. Use when YOU are Grok/Claude/a host builder and you just executed (or deliberately skipped) a directive you polled — for the same operator who owns the queue. Idempotent on already-acked → not found. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| id | string | yes | Directive UUID from list_attention_directives or create response. |
No output schema declared.
No examples provided.
add_agent_activity ~176
Add ONE activity to an agent's activity plan without regenerating the whole plan. Use to give an agent a new recurring or one-off deliverable. (To rebuild the entire plan, use recalibrate_agent_jd with regenerate_activities=true instead.) [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| activity | object | yes | The activity to add. |
| agent_id | string | — | UUID of the agent. Optional if agent_name is provided. |
| agent_name | string | — | Name of the agent (e.g. "Aiko"). Provide this or agent_id. |
| 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.
add_commitment ~252
Track a personal commitment, deadline, birthday, appointment, or obligation. ALWAYS use this (not save_knowledge) when the user mentions: birthdays, due dates, deadlines, tax filings, events to plan, gifts to send, things they need to do by a certain date, or anything they want reminded about. Works across all life domains (work, personal, family, home). For supporting context (e.g. gift ideas, who the person is), pair this with save_knowledge scope="personal". [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| consequence | string | — | What happens if this slips? (optional) |
| description | string | — | Additional details or notes (optional) |
| domain | string | — | Life domain: personal, family, home, w2, or company:<name> |
| due_date | string | — | Due date in YYYY-MM-DD format (optional) |
| title | string | yes | What needs to happen |
No output schema declared.
No examples provided.
add_customer_evidence ~362
Store one piece of REAL Customer Evidence for this company (paying-customer words/behavior, telemetry, review, operator-relayed quote, prospect signal, or agent-as-user). Evidence outranks generated ICP simulation. Use when the operator pastes a real customer quote, a call note, a review, or a provenanced usage signal — NOT for inventing personas (use Customer Hunter / create_icp for hypotheses). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| claim | string | yes | Short observation / takeaway (required, ≥8 chars). |
| class | string | yes | Evidence class (determines rank weight). |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| may_not_auto_act | boolean | — | If true (default), evidence must not auto-act without human/graduated path. |
| may_open_loop | boolean | — | If true, may open a work loop from this signal. Default false. |
| may_refine_icp | boolean | — | If true, may seed an ICP-delta offer later (never silent rewrite). Default false. |
| may_steer_copy | boolean | — | If true, may inform copy/messaging. Default true. |
| observed_at | string | — | Optional ISO timestamp when observed (default: now). |
| quote | string | — | Optional verbatim quote. |
| source | string | yes | Provenance: "operator paste", "support ticket #…", "Amazon review", … |
| subject_label | string | — | Optional human label (e.g. Kendall) — not a global identity system. |
No output schema declared.
No examples provided.
add_lead ~276
Add a new lead to the Leads CRM (crm_leads) — the table the Leads tab, triage, and outreach all use. Idempotent on (company, email) when an email is given. Provide at least an email OR a name. The lead appears on the Leads tab and is auto-triaged. Routing: CRM/sales → add a lead or prospect → use this [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| 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 (optional) |
| string | — | Lead email (unique within company). Provide email or name. | |
| name | string | — | Full name. Provide email or name. |
| notes | string | — | Initial notes about the lead (optional) |
| phone | string | — | Phone number (optional) |
| source | string | — | Where the lead came from (e.g. "linkedin", "referral", "website"). Defaults to "manual". |
| tags | array | — | Tags for filtering (optional) |
| title | string | — | Job title (optional) |
No output schema declared.
No examples provided.
analyze_team_needs ~118
Gather comprehensive team and company context for talent strategy analysis. Returns current team composition, growth signals, capability gaps, and integration status. Use when the user asks "what roles am I missing?", "who should I hire next?", "analyze my team", or "what gaps does my team have?". YOU are the strategist — this tool gathers the data, YOU provide the PhD-level talent recommendations.
| 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.
append_cos_preference ~179
Append one durable speech/taste preference for THIS operator only (re-injected on their next voice session mint). Use when they say something was hard to follow, how cards should sound, or "remember I prefer…". For this user_id only — does not edit the shared FreedomOS CoS template. Apply the note in the current call when you can. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| note | string | yes | One short preference (≤500 chars), e.g. "When describing cards, paraphrase titles — do not read dashes or ids aloud." |
No output schema declared.
No examples provided.
append_to_sheet ~100
Append rows to a Google Spreadsheet. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| spreadsheet_id | string | yes | Spreadsheet ID |
| values | array | yes | Array of rows to append |
No output schema declared.
No examples provided.
approve_pipeline_item ~184
Approve a content item for publishing — or REJECT it with approved:false. Use when user says "approve it", "looks good", "publish that" (approve), or "reject it", "drop that duplicate", "don't publish" (approved:false). [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| approved | boolean | — | Default true. Pass false to REJECT: the item is marked rejected and leaves the approval queue — it never publishes. An explicit false can never approve. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| item_id | string | yes | ID of the pipeline output to approve (get from get_pending_approvals) |
No output schema declared.
No examples provided.
archive_pipeline ~205
Archive (or restore) a content pipeline — flips is_active off/on, mirroring the Content Pipeline UI's soft-delete/restore. No data is deleted or cascaded. Use when the user says "archive this pipeline", "pause my newsletter automation", "turn off this pipeline", or "bring back my archived pipeline" (pass restore:true). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| pipeline_id | string | yes | ID of the pipeline to archive/restore (get from list_pipelines) |
| reason | string | — | Optional. Why this pipeline is being archived or restored. |
| restore | boolean | — | Set true to REACTIVATE an archived pipeline instead of archiving it. Default false (archive). |
No output schema declared.
No examples provided.
attach_product_request_pr ~173
Attach an existing freedom-ai GitHub PR URL to a product request and **resolve it by construction** (card → approved, product_status=fixed, history comment, filer resolution notify). Use when you (or a coding agent) opened a real PR for the fix — no separate human close step. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| pr_url | string | yes | https://github.com/linnetlegacies/freedom-ai/pull/NNNN |
| request_id | string | yes | request_id UUID from submit_product_request |
No output schema declared.
No examples provided.
audit_brand_visibility ~215
Audit whether Freedom OS appears in AI-generated search results. Sends a search query to external LLMs (Claude, Grok, Gemini, Perplexity) and checks each response for brand mentions. This is a competitive SEO/GEO auditing tool — like a mystery shopper for AI search engines. It does NOT answer questions or delegate work.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| max_tokens | number | — | Maximum response length per provider (default: 1000) |
| prompt | string | yes | A search-style query to test (e.g., "What is the best AI operating system for solopreneurs?") |
| providers | array | yes | Which AI search engines to audit. Options: anthropic (Claude), xai (Grok), google (Gemini), perplexity (Sonar Pro with live search) |
| temperature | number | — | Response variability 0-1 (default: 0.7) |
No output schema declared.
No examples provided.
batch_update_spreadsheet ~128
Perform batch operations on a Google Spreadsheet (formatting, merging, etc.). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| requests_json | string | yes | JSON-encoded array of batch update request objects, e.g. "[{\"updateCells\":{...}}]". |
| spreadsheet_id | string | yes | Spreadsheet ID |
No output schema declared.
No examples provided.
browse_url ~181
Browse a web page in a real browser and take a screenshot. Returns page content and a screenshot image. Use when you need to SEE what a page looks like (visual audit, brand check), interact with JavaScript-heavy pages, or capture visual evidence. The screenshot is returned as an image you can analyze directly with your vision. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | — | Optional browser actions to perform before taking screenshot. Each action has a type and optional selector/value. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| url | string | yes | The full URL to browse (must include https:// or http://) |
No output schema declared.
No examples provided.
cancel_attention_directive ~137
Cancel a pending attention directive (operator changed mind / wrong target). Use when the operator says drop/cancel that instruction to Grok or Claude, or CoS realizes the target_session_id was wrong — for THIS operator only. Does not reverse work the host already did. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| id | string | yes | Directive UUID to cancel. |
No output schema declared.
No examples provided.
cancel_commitment ~168
Cancel a commitment without completing it — marks it cancelled. Use when the user says "cancel that", "never mind, drop it", or "that's not happening anymore" for something already tracked. For finished work, use complete_commitment instead. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| commitment_id | string | — | The UUID of the commitment to cancel. |
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| reason | string | — | Optional. Why this is being cancelled. |
| title_search | string | — | Search by title if ID not known (fuzzy match). |
No output schema declared.
No examples provided.
capture_idea ~121
Capture an idea into the user's Ideas. Use when user shares an idea they want to save for later. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| content | string | yes | The idea content to capture |
| source_url | string | — | Optional URL if the idea came from a link |
No output schema declared.
No examples provided.
challenge_as_customer ~190
Run your deliverable past the company's customer truth: REAL Customer Evidence first (when stored), then generated ICP as labeled simulation. Returns honest feedback — what would make them engage, scroll past, or what's missing. Use on customer-impact deliverables before sending.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| context | string | — | Optional additional context about what this deliverable is for, who will see it, or what outcome you want |
| deliverable | string | yes | The content/report/strategy you want the simulated customer to evaluate |
| deliverable_type | string | yes | What type of deliverable this is — helps the customer evaluate appropriately |
| target_icp | string | — | ICP ID to use (from get_icps), or "auto" to use the first available. Default: auto |
No output schema declared.
No examples provided.
check_my_inbox ~239
Check your own agent email inbox (receive-only) for messages sent to your @agents.getfreedomos.com address, and read them. Returns recent unread messages: sender, subject, a safe text snippet, any OTP codes, and login links that are safe to open — reads only YOUR mailbox. Use when a login, sign-in, or verification flow tells you it emailed a one-time code or magic link to your agent address and you need to retrieve it. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| from_domain | string | — | Only return mail whose sender is at this domain (e.g. "getfreedomos.com"). |
| limit | number | — | Max messages to return (default 10, cap 25). |
| since_minutes | number | — | Only return mail received within the last N minutes (e.g. 15 for a fresh login code). |
No output schema declared.
No examples provided.
claim_product_request_for_builder ~199
Mint a paste-ready Builder claim recipe for a FreedomOS product request so a host coding agent (Grok Build / Claude Code) with Harness + gstack can implement the class fix. Pins the FreedomOS frontier coding model (TIER_ROLES.frontier). Does NOT run the coding agent or open a PR by itself — use after product team accepted the request. FreedomOS product-inbox members only. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| request_id | string | yes | request_id UUID from submit_product_request |
| stamp_claim | boolean | — | If true (default), stamp context_payload.builder_claim {claimed_at, frontier_model, by} on the card. |
No output schema declared.
No examples provided.
clear_pipeline_learnings ~155
Reset all learnings for a pipeline and start fresh. Use when user says "forget what you learned", "start fresh with the style", "reset the learnings", or "clear the feedback history". [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| 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 | — | Optional. Only clear learnings for a specific format. If not specified, clears all formats. |
| pipeline_id | string | yes | Pipeline ID (get from list_pipelines) |
No output schema declared.
No examples provided.
complete_commitment ~125
Mark a commitment as completed. Use when the user says they finished something or a deadline has passed. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| commitment_id | string | — | The UUID of the commitment to complete |
| 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) |
No output schema declared.
No examples provided.
configure_dashboard ~612
Create or update a widget on your agent dashboard. Use this to display key metrics, charts, tables, or timelines that help the user understand your work at a glance. Each call creates or updates one widget. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| config | object | — | Widget configuration. Shape depends on widget_type: - metric: { value, previous_value, format ("number"|"currency"|"percent"|"text"), trend_direction ("up"|"down"|"flat"), suffix } - chart: { chart_t… |
| data | array | — | Data rows for chart/table/list/gantt widgets. Each item is an object. - chart: [{ label: "Jan", value: 100 }, ...] - table: [{ col1: "val", col2: "val" }, ...] - list: [{ label: "Item", status: "done… |
| is_visible | boolean | — | Whether the widget is visible on the dashboard. Default: true |
| position | number | — | Display order (0 = first, higher = later). Default: 0 |
| title | string | yes | Display title for the widget (e.g., "Monthly Revenue", "Content Pipeline") |
| widget_id | string | — | UUID of existing widget to update. Omit to create a new widget. |
| widget_type | string | yes | Type of widget to create |
No output schema declared.
No examples provided.
confirm_mcp_approval ~269
Confirm a pending MCP capability approval by spoken (or chat) yes/no. Pass approval_id from the approval_required tool result. decision: approve | reject | later. Runs the SAME process-approval pipeline as tapping Approve on the card — does not bypass integrity rails. Use on voice when the operator says approve/yes or reject/no after a capability ask. Do NOT invent an approval_id. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| approval_id | string | yes | UUID of the pending mcp_tool_call approval card (from approval_required.approval_id) |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| decision | string | yes | approve | reject | later (yes/no/go also accepted) |
| grant_mode | string | — | approve only: 'once' runs without standing grant (default for spoken path); 'standing' also grants future calls |
| utterance_snippet | string | — | Optional short quote of what the operator said (audit; ≤200 chars) |
| voice_session_id | string | — | Optional voice session id if known (audit only) |
No output schema declared.
No examples provided.
create_attention_directive ~325
Queue a short instruction for an external coding/builder session (Grok terminal, Claude Code, or future FreedomOS runtime). Does NOT type into their UI — the session must poll FreedomOS (poll-fo-directives.sh or list_attention_directives) and act. Use when the operator says "tell Grok…", "have Claude…", or CoS should route reversible work off the call. Pass the same target_session_id the host polls (e.g. grok-<id>, claude-<id>). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| company_id | string | — | Optional company context (portfolio id). Does not change auth — row stays operator-scoped. |
| instruction | string | yes | One clear instruction for that session (1–4000 chars). Imperative, not a transcript dump. |
| source | string | — | Optional provenance: voice_cos | chat | api | system. Default derived from door. |
| target_host | string | — | Host adapter: claude-code | claude-desktop | grok | manual | slack | github | freedomos | other |
| target_session_id | string | yes | Stable id the host polls (1–200 chars). Examples: grok-$SESSION, claude-code-$SESSION. Must match the poller. |
No output schema declared.
No examples provided.
create_feature ~263
Add a new feature to the Feature Index. Use when user says "I built X", "add feature Y", "track this capability", or describes a product feature they want to market. Features can later be pushed to Content Pipeline for marketing content. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| 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 | — | Unique slug for the feature (e.g., "ai-content-pipeline") |
| limits | string | — | Current limitations (e.g., "LinkedIn only", "Beta users only") |
| solves | array | — | Problems/pain points this feature solves (e.g., ["manual posting", "writer's block"]) |
| title | string | yes | Display title (e.g., "AI Content Pipeline") |
No output schema declared.
No examples provided.
create_folder ~136
Create a folder in the knowledge base for organizing files. Folders can be nested (e.g., "partners/acme"). Use for deal rooms, topic grouping, or any organizational structure. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| name | string | yes | Folder name (e.g., "acme-deal", "partners/acme"). Nested paths are supported. |
No output schema declared.
No examples provided.
create_google_doc ~175
Create a new Google Doc in the user's Freedom OS folder. Use for JDs, deliverables, and shared documents. By default, creates beautifully formatted docs. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| 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 for the document in markdown format |
| folder | string | — | Which folder to save in |
| format_for_humans | boolean | — | If true (default), converts markdown to rich formatting. Set false for agent-to-agent docs. |
| title | string | yes | Document title (e.g., "Marketing Specialist JD") |
No output schema declared.
No examples provided.
create_icp ~437
Create a NEW Ideal Customer Profile (ICP) from scratch and save it — no Customer Hunter UI needed. Use this when get_icps returns hasICPs:false (the company has none yet) or to add another target customer profile. To CHANGE an existing ICP, use update_icp instead. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| agentProfile | object | — | How this customer's own AI agent participates in buying: { tier: 'ambient' | 'assisted' | 'delegated' | 'builder', agents: string[], surfacesRead: string[], purchasePath: string, autonomyNotes: strin… |
| channels | array | — | Where they spend attention. |
| class | string | — | 'customer' (default) or 'partner' — partner = a distribution/affiliate ICP, not an end-buyer. |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| demographics | object | — | role, companySize, industry, techStack[]. |
| dreamOutcome | string | — | The outcome they dream of. |
| financialProfile | object | — | revenueRange, typicalDealSize, budgetAuthority, buyingBehavior, growthStage, priceSensitivity. |
| name | string | yes | Persona name. Required. Used to derive the ICP id/filename. INTERNAL targeting label (may be an evocative codename) — never published. |
| nightmareScenario | string | — | The 3am problem / nightmare scenario. |
| painThemes | array | — | Recurring pain themes. |
| publicName | string | — | The public-facing audience label to use in published copy — NEVER the internal persona name/codename. Plural noun phrase, e.g. "compounding pharmacy owners". Optional — auto-generated from the person… |
| techSavviness | string | — | Tech comfort level. |
| title | string | — | One-line descriptor of the persona. |
No output schema declared.
No examples provided.
create_key_result ~328
Add a key result to an objective (the KR in OKR). Key results are measurable outcomes that track progress toward the objective. You can identify the parent objective by title or ID. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| assigned_to | string | — | User ID or "me"/"current_user" to assign to |
| 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 (default: 0) |
| due_date | string | — | Due date (YYYY-MM-DD). Strongly recommended — a KR without one cannot expire or alarm. |
| measure_source | string | — | 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), cr… |
| objective_id | string | — | ID of the parent objective (optional if using objective_title) |
| objective_title | string | — | Title of the parent objective (use this or objective_id) |
| target_value | number | — | Target value to achieve |
| title | string | yes | Key result title (measurable outcome) |
| unit | string | — | Unit of measurement (e.g., "%", "$", "users", "trees") |
No output schema declared.
No examples provided.
create_master_plan ~134
Initialize a new multi-step project with a persistent Master Plan artifact. Call this BEFORE starting any complex, multi-tool task. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| initial_plan | string | yes | The high-level plan or blueprint for the task. |
| task_title | string | yes | Short title for the task (e.g., "Influencer CRM Build") |
No output schema declared.
No examples provided.
create_meta_ad_draft ~341
Create a complete Meta (Facebook/Instagram) ad draft — campaign + ad set + creative + ad — ALL in PAUSED state, spending nothing. Use when the user wants to set up or draft an ad. Activation is a separate human-approved step (set_meta_ad_status). [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| ad_account_id | string | — | Ad account (act_<digits>). Optional when the connection has exactly one. |
| campaign_name | string | yes | Campaign name, e.g. "PCAI cold traffic — Compliance Crusader v1" |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| cta | string | — | Optional call-to-action: LEARN_MORE, SIGN_UP, GET_STARTED, CONTACT_US, DOWNLOAD, SUBSCRIBE |
| daily_budget | number | yes | Daily budget in the account currency, major units (e.g. 25 = 25 USD/day) |
| image_artifact_id | string | — | Optional agent_artifacts image id for the creative |
| link_url | string | yes | https destination URL (landing page, with UTMs) |
| objective | string | — | OUTCOME_TRAFFIC (default) | OUTCOME_AWARENESS | OUTCOME_ENGAGEMENT |
| primary_text | string | yes | The ad copy (primary text) |
| targeting | object | — | Audience: {countries: ["US"], age_min, age_max, interests: [{id, name}]} |
No output schema declared.
No examples provided.
create_objective ~194
Create a new objective (the O in OKR). Objectives are aspirational goals. After creating one, use generate_key_results to get intelligent, context-aware key result suggestions, then create_key_result to add the best ones. An objective without key results has no way to measure progress. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| 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 | — | Brief context or notes about this objective. Do NOT include key results here. |
| title | string | yes | Objective title - a clear, aspirational goal (e.g., "Build & Dogfood Freedom OS") |
| year | number | — | Year for this objective (e.g., 2026) |
No output schema declared.
No examples provided.
create_pipeline ~280
Create a new content pipeline to automate content creation. Use when user says "set up a changelog", "create a newsletter pipeline", "send team updates", "automate my X posts", or describes input→output automation. Output types: changelog (public product updates), team_update (internal team email via Freedom OS), report (email to specific recipients), customer_newsletter (external customers - requires user Email MCP like Mailchimp), social_post (x/linkedin/instagram/facebook/threads via the gated publish owner). [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| inputs | object | — | Input sources to listen to |
| name | string | yes | Name for the pipeline (e.g., "Weekly Newsletter", "GitHub to Changelog") |
| output | string | yes | Output type: changelog (public), team_update (internal team email), report (specific recipients), customer_newsletter (external - requires Email MCP), social_post (x/linkedin/instagram/facebook/threa… |
| persona | string | — | Marketing persona to use (alex, elon, or custom ID) |
No output schema declared.
No examples provided.
create_play_from_activity ~228
Draft a Play (growth_tactics with steps + human review) from an oversized agent activity. Does not run the play — operator Agrees on Focus first. Use when a run hit step/continuation limits because the work is multi-unit. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| activity_name | string | yes | Oversized activity to draft a Play from. |
| agent_id | string | — | UUID of the agent. |
| 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. |
| draft_category | string | — | — |
| draft_custom_instructions | string | — | — |
| draft_goal_impact | string | — | — |
| draft_steps | array | — | — |
| draft_title | string | — | — |
| linked_kr_id | string | — | — |
| reason | string | — | — |
No output schema declared.
No examples provided.
create_spreadsheet ~103
Create a new Google Spreadsheet with optional headers. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| headers | array | — | Column headers for the first row |
| title | string | yes | Spreadsheet title |
No output schema declared.
No examples provided.
create_tactic ~259
Create a new growth tactic for the company. Use when user wants to add a tactic, strategy, or action item. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Growth category: Leads (lead acquisition), Conversion (leads to customers), Customer Lifetime Value (retention), Time (automation) |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| description | string | — | Detailed description of the tactic |
| linked_kr_id | string | — | Optional key-result id the tactic most advances (validated against the company OKRs). If omitted, the most off-track KR of the bound objective is chosen. |
| objective_id | string | — | Optional OKR objective UUID to bind this tactic to (validated against this company). If omitted, the binding is auto-inferred from the category→OKR map. |
| priority | string | — | Priority level |
| status | string | — | Current status of the tactic |
| title | string | yes | The tactic title (e.g., "LinkedIn Content Strategy") |
No output schema declared.
No examples provided.
deactivate_agent ~169
Deactivate (archive) an AI agent/specialist from the team. Use when user says "remove [agent]", "deactivate [agent]", "archive [agent]", "fire [agent]", "delete [agent]". The agent is soft-deleted (is_active=false) and can be reactivated later. Cannot deactivate Linnet (the orchestrator). [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | UUID of the agent to deactivate |
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| reason | string | — | Optional reason for deactivation |
No output schema declared.
No examples provided.
decide_command_center_item ~335
Approve or deny a Command Center card. This processes the decision through the full approval pipeline including trust scoring, autopilot evaluation, skill learning, and deliverable queue progression. [sensitive-tier, initiates a multi-step agent process — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| decision | string | yes | The decision: approved, denied, snoozed, or dismissed (dismissed = honest acknowledgment of a blocked_on_you card — never resolves it) |
| feedback | string | — | Optional feedback, especially important for denials. Be specific. |
| grant_mode | string | — | Capability-approval (mcp_tool_call) cards only: 'once' runs the approved call WITHOUT granting the capability for future calls (the next identical call asks again); 'standing' (the default when omitt… |
| item_id | string | yes | UUID of the Command Center card to decide on |
| revise | boolean | — | revise:true with decision:"denied" sends the card back to the producing agent to redo with your feedback (feedback required in that case) — nothing publishes. Re-runs the originating activity and re-… |
No output schema declared.
No examples provided.
delete_icp ~179
Delete a saved Ideal Customer Profile (ICP). Mirrors the Customer Hunter UI's delete: deactivates any reviewer agent built from this ICP, strips it from every content pipeline that targets it, then ARCHIVES (does not permanently remove) the ICP file. Use when the user says "delete this ICP", "remove this customer profile", or "get rid of this persona". [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| 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. |
| reason | string | — | Optional. Why this ICP is being deleted. |
No output schema declared.
No examples provided.
delete_idea ~123
Delete an idea from Ideas. Can identify by content snippet, ID, or "newest"/"latest". [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| 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 |
No output schema declared.
No examples provided.
delete_key_result ~218
Archive a key result (safe delete — recoverable, never hard-deleted). The KR is moved out of the objective's live list into a recoverable archive. Identify by title (preferred) or ID; optionally scope by parent objective. If the title is ambiguous it refuses and lists the matches — pass an ID to disambiguate. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| key_result_id | string | — | ID of the key result (optional if using key_result_title) |
| key_result_title | string | — | Title of the key result to archive (use this or key_result_id) |
| objective_id | string | — | ID of the parent objective (optional) |
| objective_title | string | — | Title of the parent objective, to scope the search (optional) |
No output schema declared.
No examples provided.
delete_knowledge ~123
Archive a knowledge file by slug (soft delete). The file is moved to _archived/ and can be restored later. Use when the user explicitly asks to remove a knowledge document. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| slug | string | yes | The slug of the knowledge file to delete |
No output schema declared.
No examples provided.
delete_objective ~159
Archive an objective and its key results (safe delete — recoverable, never hard-deleted). Identify by title (preferred) or ID. If the title matches more than one objective it refuses and lists them — pass an ID to disambiguate. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| objective_id | string | — | ID of the objective (optional if using objective_title) |
| objective_title | string | — | Title of the objective to archive (use this or objective_id) |
No output schema declared.
No examples provided.
delete_tactic ~129
Archive a tactic (safe delete - recoverable). Can identify by title instead of ID. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| tactic_id | string | — | ID of the tactic to archive (optional if using tactic_title) |
| tactic_title | string | — | Title of the tactic to archive (use this or tactic_id) |
No output schema declared.
No examples provided.
deliberate ~375
Run an adversarial deliberation on a decision. Multiple AI perspectives argue opposing positions over multiple rounds, iteratively strengthening arguments, and converge on a recommendation with confidence scoring. Use for important decisions where you want to stress-test options from multiple angles. Over MCP the deliberation runs in the background: the first call returns a run_id immediately; call deliberate again with { run_id } (plus the same companyId) after ~1-2 minutes to fetch the result. Routing: Important decision → deliberate for adversarial analysis
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| context | string | — | Goals, constraints, values, and relevant data that should inform the deliberation. The more context, the better the arguments. |
| criteria | array | — | Optional weighted evaluation criteria. Each item should have "name" (string) and "weight" (number 0-1, should sum to ~1). If omitted, defaults are generated. |
| max_rounds | number | — | Maximum rounds of deliberation (default: 5). More rounds = better arguments but more compute. |
| positions | array | — | Two or more positions to argue. Each should be a clear, distinct option — e.g., ["Mobile app development", "API partnerships", "Content marketing"]. Required unless polling with run_id. |
| question | string | — | The decision or question to deliberate. Be specific — e.g., "Should we invest in mobile app development or API partnerships for growth in Q2?" Required unless polling with run_id. |
| run_id | string | — | Poll a background deliberation started earlier (MCP mode). Pass the run_id returned by the starting call, with the same companyId. Omit question/positions when polling. |
No output schema declared.
No examples provided.
derive_capability ~210
Scan the company's connected source code (its GitHub repo, via the Pulse connection in Smart Tools) and DRAFT a capability list — shipped FEATURES (each citing the file that proves it) plus attempted can't-do LIMITS — for the operator to ratify. It writes NOTHING: only items the operator ratifies become authoritative capability the marketing agents and the Integrity Gate use. Read-only; never executes or sends code. If no repo is connected it tells the operator to connect one in Pulse first. Use to populate or refresh a software product's capabilities without hand-maintaining them. Routing: Operator wants to pull their product's real features from its code (instead of typing them) → use this [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| 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.
derive_from_website ~219
SPIKE tool (.agent/design-docs/2026-07-09-magical-onboarding-buildout-mode.md, "The Assignment"). Give it a business's public URL; it reads the page and returns a derived ICP, a derived brand voice, and 3 ready-to-post drafts written in that voice — the onboarding lead magnet's engine, spike-grade. Nothing is persisted to any company. Use when your operator asks you to run the website-derivation spike against a real business URL, to show the operator what an agent team can already see about their business. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | — | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| url | string | yes | The business's public URL to derive from (must include https:// or http://) — their homepage or an About/product page. |
No output schema declared.
No examples provided.
draft_outreach ~862
Produce two outreach draft variants (A/B) for a lead given an angle. Both drafts are warm and kind by design (P10) — variants differ in angle of helpfulness (subject hook, opening framing, call-to-action) not in tone. Drafts are written to lead_drafts as pending_review. Returns IDs + previews. Use after synthesize_lead_hypothesis to draft initial outreach. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| angle | string | yes | The outreach angle to use (e.g., 'deeper_lp3_discovery', 'lighter_touch_different_hook', 'jurisdiction_clarification', 'kind_check_in'). Take from synthesize_lead_hypothesis.suggested_angle if unsure. |
| 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'). Helps the model pitch correctly. |
| eligible_at | string | — | Optional ISO timestamp — the earliest real time this draft may be sent (2026-07-13 send-timing gate). For a sequence step, pass now + that step's delay_hours (an ESTIMATE; the send-gate re-stamps it… |
| from_name | string | — | Optional sender display name (e.g., 'Acme Team', 'Alex at Acme'). Used in draft signature. When omitted, the CONTRACT-5 chain resolves it: the company's mcp_connections.resend.auth_config.from_name,… |
| journey_summary | string | yes | Short prose summary of what we know about this lead (their state, recent activity, what they engaged with). Used as context for the draft. Synthesis.intent_summary + 1-2 notes works well. |
| lead_id | string | yes | UUID of the lead. |
| regenerated_reason | string | — | Optional (regenerate-on-signal, 2026-07-15). When the sequencer re-drafts a not-yet-sent step after a meaningful lead signal (temperature flip to hot, a click), it passes a short human-readable reaso… |
| reply_to | string | — | Optional Reply-To address to carry on the eventual send (CONTRACT-1 agent thread address). Stamped into both drafts' metadata (best-effort — the metadata column is additive); send_lead_draft reads it… |
| sequence_id | string | — | Optional. The outreach_sequences.id the step belongs to. Pass it together with sequence_step_id to enable the A/B prior-stats bias — step ids repeat across sequences (step1…stepN), so stats are only… |
| sequence_step_id | string | — | Optional. If this draft is part of an auto-mode sequence step, pass the step_id from outreach_sequences. Otherwise omit (manual one-off draft). |
| variant_b_guidance | string | — | Optional (CONTRACT-3). Sequence-designed seed for the B variant — a distilled subject+body angle persisted on the sequence step (steps jsonb, additive variant_b_guidance key). When present, variant_b… |
No output schema declared.
No examples provided.
draft_tenet_from_signal ~193
Draft a company tenet (mission or vision) FROM the company's existing website, for the operator to ratify or edit — instead of asking them to type it into a blank field. Use when a tenet is empty but the company already exists (has a website). Returns a DRAFT proposal with evidence and a confidence level; it writes NOTHING — the operator authors by confirming (Slice-3 update_company). The agent is a mirror, not an author: the draft is grounded in the site, never invented. [sensitive-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| tenet | string | yes | Which tenet to draft from the website signal |
No output schema declared.
No examples provided.