# messages_send

Send a message to a thread, channel, or contact. Supports Telegram, Email, LinkedIn, and other connected channels. For LinkedIn posts (comment_thread kind), this posts a comment on the post. Can automatically resolve recipients and channels when not specified. Can send files/images/documents as attachments — pass attachments=[file_id, ...] with integer file IDs obtained from collections.list_files, search.files, or files.search. text is optional when attachments are provided.

Agent View of the PolicyLayer registry record for `messages_send`. HTML page: https://policylayer.com/tools/io-github-saloprj-dialogbrain/messages-send

## Facts

- Tool: `messages_send`
- 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: 8
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `text` | string | no | Message text to send. Optional if attachments provided. |
| `format` | string | no | Message format |
| `silent` | boolean | no | Send without notification |
| `thread_id` | string | no | Target thread. OMIT to reply in the same chat you received the triggering message from — the backend defaults to the current thread. Pass an explicit value ONLY |
| `attachments` | array | no | Array of integer file IDs to send as attachments (images, documents, any files). Get file IDs from collections.list_files (field `file_id`), search.files (field |
| `recipient_name` | string | no | Name of person to send to (e.g., 'Jane', 'John'). Tool will auto-resolve channel. Optional if thread_id provided. |
| `recipient_username` | string | no | Telegram @username to message (e.g. '@some_username'). Use this for a Telegram user NOT yet in contacts — it resolves the handle, adds the contact, and creates |
| `reply_to_message_id` | string | no | ID of message to reply to (optional) |

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

## Why messages_send is rated Medium

This tool creates new content (messages, comments, attachments) across multiple communication channels, which is a reversible write operation. It does not execute arbitrary code, delete data, or move money. However, severity is high because an AI agent sending unsolicited messages across multiple channels (email, social media, messaging apps) could cause reputational damage, privacy violations, or harassment.

From the tool's own definition: "Tool performs 'Send a message' action that creates new messages across multiple communication channels (Telegram, Email, LinkedIn)."

## Use case

AI agents use messages_send 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": {
    "messages_send": {
      "limits": [
        {
          "counter": "messages_send_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Dialogbrain (221)

- `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_ask` — Execute — https://policylayer.com/tools/io-github-saloprj-dialogbrain/agents-ask.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
- …and 191 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
