# update_reader_profile

Update a person's OPERATOR FLUENCY (baseline + per-topic strengths that follow them across companies). Use when the operator (or an admin) sets or corrects how agents should speak to them, or when seeding an empty profile with seed_if_empty for a first guess. Human door for edits; agents may seed empty self only. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

Agent View of the PolicyLayer registry record for `update_reader_profile`. HTML page: https://policylayer.com/tools/com-getfreedomos-freedom-mcp/update-reader-profile

## Facts

- Tool: `update_reader_profile`
- 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: 6 (1 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `domains` | object | no | Topic → novice\|fluent\|expert (merged). |
| `companyId` | string | yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
| `member_id` | string | no | Optional target UUID. Defaults to you. |
| `default_level` | string | no |  |
| `glossary_seen` | array | no |  |
| `seed_if_empty` | boolean | no | If true, agents may write only when the target has no profile yet (self only). Human doors may always write. |

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

## Why update_reader_profile is rated Medium

The tool creates or modifies user profile data (operator fluency baseline and topic-specific strengths) in a reversible manner. This is a classic Write operation — data modification without deletion or financial impact.

From the tool's own definition: "Tool description states 'Update a person's OPERATOR FLUENCY' and 'Use when the operator (or an admin) sets or corrects' — this modifies stored profile data. Explicitly labeled '[write-tier' confirming Write category."

Risk signals: Admin/system-level operation

## Use case

AI agents use update_reader_profile 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": {
    "update_reader_profile": {
      "limits": [
        {
          "counter": "update_reader_profile_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
