# challenge_as_customer

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.

Agent View of the PolicyLayer registry record for `challenge_as_customer`. HTML page: https://policylayer.com/tools/com-getfreedomos-freedom-mcp/challenge-as-customer

## Facts

- Tool: `challenge_as_customer`
- 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: Execute (High risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: no
- Parameters: 5 (3 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `context` | string | no | Optional additional context about what this deliverable is for, who will see it, or what outcome you want |
| `companyId` | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| `target_icp` | string | no | ICP ID to use (from get_icps), or "auto" to use the first available. Default: auto |
| `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 |

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": "challenge_as_customer",
    "arguments": {
      "companyId": "<companyId>",
      "deliverable": "<deliverable>",
      "deliverable_type": "<deliverable_type>"
    }
  }
}
```

## Why challenge_as_customer is rated High

This is Execute rather than Read because the tool actively runs/triggers a simulation workflow with side effects (generating feedback, performing analysis), not merely retrieving static data. It is not Write (does not persist new deliverable data), Destructive (no irreversible deletion), or Financial (no money movement).

From the tool's own definition: "The tool 'challenge_as_customer' runs customer feedback simulation logic against deliverables ('Run your deliverable past the company's customer truth'). It executes external operations to generate 'honest feedback' and analyze customer engagement patterns."

## Use case

AI agents invoke challenge_as_customer to trigger actions in Freedom Mcp. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## 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": {
    "challenge_as_customer": {
      "limits": [
        {
          "counter": "challenge_as_customer_rate",
          "window": "minute",
          "max": 10,
          "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
- `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
- `analyze_team_needs` — Read — https://policylayer.com/tools/com-getfreedomos-freedom-mcp/analyze-team-needs.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
