# submit_product_request

File a bug report or feature request about FreedomOS the platform (FO UI, MCP tools, Command Center, auth, connectors, FO agents runtime) with the FreedomOS product team. Creates a FO product-inbox Command Center card and returns a request_id you can poll with get_product_request_status. ONLY for FreedomOS itself broken, missing, or confusing. Do NOT use for: (1) tenant ops (hire agents, send email, OKRs, content); (2) YOUR OWN company product — app code, domain knowledge base, chatbot/SME retrieval, compliance corpus, state/regulatory overlays, or anything your team can ship without FO engineers. Own-product gaps stay on YOUR company Command Center (decision/report card, collaboration, knowledge pipeline, or escalate to your human as product work). Example misroute: Conduit agent filing PCAI state-overlay KB work here — wrong inbox; file on Conduit instead. Routing: When the USER says something in FreedomOS itself is broken, missing, or confusing ("this button does nothing", "I wish it could…", "this is a bug", "can you debug this?" about FO product), this is the tool — FILE FIRST. Bias: submit_product_request(kind:"bug"|feature) before opening a live coding host or Send-to-Grok/Claude. REFUSE this tool for own-product / domain work: knowledge corpus, retrieval quality, compliance packs, chatbot answers for YOUR product (e.g. Compounding AI / PCAI), marketing claims about your app — keep those on the source company rail (Command Center card for your operator, suggest_collaboration, save_knowledge, Compliance Check), never FO product inbox. TRIAGE FIRST, briefly: if your own tools can resolve it right now (a reconnect, a setting, the wrong page), fix it and say so instead of filing — filing is never an exit from work you can finish yourself. Cap triage at one or two quick checks, never a debugging quest in chat. An explicit "file it" from the user always wins: file immediately, no pushback — and fold whatever you ruled out into the description. Pull title/repro from the conversation (never make them fill a form), TELL them you filed it, and that the factory/product team picks it up. Live-terminal / attention-directive / Send to Grok or Claude ONLY when the user explicitly asks to open a host session now (e.g. "send this to Grok", "debug with me live") — never as the default path for a product bug. For errors YOU hit doing tenant work (not FO product defects), use report_feedback 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.]

Agent View of the PolicyLayer registry record for `submit_product_request`. HTML page: https://policylayer.com/tools/com-getfreedomos-freedom-mcp/submit-product-request

## Facts

- Tool: `submit_product_request`
- Server: Freedom Mcp (`https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp`) — https://policylayer.com/tools/com-getfreedomos-freedom-mcp.md
- Homepage: https://github.com/https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: no
- Parameters: 8 (4 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `kind` | string | yes | bug = FO broken; feature = FO missing capability; question = how-to for the FreedomOS team. Not for your own app/product backlog. |
| `title` | string | yes | One-line summary. Specific: "Connect CTA dumps to Smart Tools instead of OAuth" not "bug". |
| `severity` | string | no | Default medium. critical = data loss / security / blocked onboarding. |
| `companyId` | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| `description` | string | yes | What happened / what you need. Include repro steps, expected vs actual, company name, agent name if relevant. |
| `repro_steps` | string | no | Optional numbered repro steps. |
| `suggested_fix` | string | no | Optional: what a good fix would look like (agent hypothesis — product team decides). |
| `source_agent_name` | string | no | Optional: which of the operator's agents hit this (e.g. "Linnet", "Morgan"). |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "submit_product_request",
    "arguments": {
      "kind": "<kind>",
      "title": "<title>",
      "companyId": "<companyId>",
      "description": "<description>"
    }
  }
}
```

## Why submit_product_request is rated Medium

This tool creates new records (product request cards) in a shared inbox system, which is reversible and has side effects limited to documentation/workflow. It does not execute arbitrary code, delete data, move money, or modify user data—only logs a structured request.

From the tool's own definition: "'Creates a FO product-inbox Command Center card and returns a request_id' — the tool writes structured data (a product request card) to a shared system and generates a trackable identifier."

## Use case

AI agents use submit_product_request to create or update resources in Freedom Mcp, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Freedom Mcp environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Freedom Mcp:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "submit_product_request": {
      "limits": [
        {
          "counter": "submit_product_request_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Freedom Mcp (237)

- `clear_pipeline_learnings` — Destructive — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/clear-pipeline-learnings.md
- `deactivate_agent` — Destructive — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/deactivate-agent.md
- `delete_icp` — Destructive — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/delete-icp.md
- `delete_idea` — Destructive — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/delete-idea.md
- `delete_knowledge` — Destructive — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/delete-knowledge.md
- `delete_objective` — Destructive — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/delete-objective.md
- `remove_agent_activity` — Destructive — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/remove-agent-activity.md
- `remove_background` — Destructive — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/remove-background.md
- `remove_dashboard_widget` — Destructive — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/remove-dashboard-widget.md
- `audit_brand_visibility` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/audit-brand-visibility.md
- `browse_url` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/browse-url.md
- `challenge_as_customer` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/challenge-as-customer.md
- `decide_command_center_item` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/decide-command-center-item.md
- `deliberate` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/deliberate.md
- `generate_image_xai` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/generate-image-xai.md
- `generate_vector_image` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/generate-vector-image.md
- `generate_video_veo` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/generate-video-veo.md
- `hire_agent` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/hire-agent.md
- `hire_agent_with_context` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/hire-agent-with-context.md
- `invoke_integration` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/invoke-integration.md
- `posthog_hogql` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/posthog-hogql.md
- `request_attention_spawn` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/request-attention-spawn.md
- `resolve_work` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/resolve-work.md
- `run_quality_check` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/run-quality-check.md
- `run_tactic` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/run-tactic.md
- `send_email` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/send-email.md
- `toggle_agent_schedule` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/toggle-agent-schedule.md
- `trigger_agent_activity` — Execute — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/trigger-agent-activity.md
- `set_meta_ad_status` — Financial — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/set-meta-ad-status.md
- `update_meta_ad_budget` — Financial — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/update-meta-ad-budget.md
- …and 207 more: https://policylayer.com/tools/com-getfreedomos-freedom-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-getfreedomos-freedom-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-getfreedomos-freedom-mcp
