# contacts_update

✏️ Update a contact's profile: name, notes, role, capabilities, birthday, preferred channel. When to use: - User wants to add notes about a contact - User wants to set/update role or capabilities for a contact - User wants to rename a contact or update birthday Requires contact_id — the entity_id returned by contacts.find or contacts.sync. At least one optional field must be provided.

Agent View of the PolicyLayer registry record for `contacts_update`. HTML page: https://policylayer.com/tools/io-github-saloprj-dialogbrain/contacts-update

## Facts

- Tool: `contacts_update`
- Server: Dialogbrain (`https://api.dialogbrain.com/mcp`) — https://policylayer.com/tools/io-github-saloprj-dialogbrain.md
- Homepage: https://github.com/saloprj/dialogbrain-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 9 (1 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `role` | string | no | Contact role (e.g. developer, client, partner). Empty string clears role. |
| `notes` | string | no | Free-text notes/context about this contact. Empty string clears notes. |
| `contact_id` | string | yes | entity_id from contacts.find or contacts.sync |
| `birthday_day` | integer | no | Birth day 1-31 (must be set together with birthday_month) |
| `capabilities` | array | no | List of capabilities (e.g. ['backend', 'design']) |
| `display_name` | string | no | New display name (max 255 chars) |
| `birthday_year` | integer | no | Birth year 1900-2100 (optional, standalone) |
| `birthday_month` | integer | no | Birth month 1-12 (must be set together with birthday_day) |
| `preferred_channel` | string | no | Preferred channel for contacting this person. OMIT to leave the preferred channel unchanged. |

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": "contacts_update",
    "arguments": {
      "contact_id": "<contact_id>"
    }
  }
}
```

## Why contacts_update is rated Medium

This tool creates or modifies contact data reversibly. It updates existing contact records with new information but does not delete data or execute external operations. The changes are reversible—profiles can be updated again or reverted.

From the tool's own definition: "Tool description states 'Update a contact's profile' with fields like 'name, notes, role, capabilities, birthday, preferred channel.' The context 'When to use' confirms modification operations: 'add notes', 'set/update role', 'rename a contact', 'update…"

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on Dialogbrain (224)

- `agents_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/agents-delete.md
- `agents_trigger_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/agents-trigger-delete.md
- `ai_filters_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/ai-filters-delete.md
- `ai_tags_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/ai-tags-delete.md
- `calendar_delete_event` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/calendar-delete-event.md
- `collections_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/collections-delete.md
- `files_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/files-delete.md
- `folders_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/folders-delete.md
- `integrations_remove_endpoints` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/integrations-remove-endpoints.md
- `messages_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/messages-delete.md
- `notes_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/notes-delete.md
- `reminder_cancel` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/reminder-cancel.md
- `tasks_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/tasks-delete.md
- `threads_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/threads-delete.md
- `widgets_delete` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/widgets-delete.md
- `youtube_delete_comment` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/youtube-delete-comment.md
- `youtube_delete_video` — Destructive — https://policylayer.com/tools/io-github-saloprj-dialogbrain/youtube-delete-video.md
- `agent_handoff` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/agent-handoff.md
- `agents_simulate_inbound` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/agents-simulate-inbound.md
- `android_launch_app` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/android-launch-app.md
- `android_shell` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/android-shell.md
- `android_ui_dump` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/android-ui-dump.md
- `background_run` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/background-run.md
- `browser_attach_meet` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/browser-attach-meet.md
- `browser_click` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/browser-click.md
- `browser_close` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/browser-close.md
- `browser_drag` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/browser-drag.md
- `browser_evaluate` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/browser-evaluate.md
- `browser_fill` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/browser-fill.md
- `browser_fill_form` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/browser-fill-form.md
- …and 194 more: https://policylayer.com/tools/io-github-saloprj-dialogbrain.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=io-github-saloprj-dialogbrain · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-saloprj-dialogbrain
