# neuron_compose_message

Compose and send a new message to a phone number via a specific channel. Automatically creates a new conversation if one does not exist.

Agent View of the PolicyLayer registry record for `neuron_compose_message`. HTML page: https://policylayer.com/tools/io-github-conquext-neuron/neuron-compose-message

## Facts

- Tool: `neuron_compose_message`
- Server: Neuron (`neuron-mcp-server`) — https://policylayer.com/tools/io-github-conquext-neuron.md
- Install: `npx -y neuron-mcp-server`
- Homepage: https://github.com/conquext/neuron
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: no
- Parameters: 6 (3 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `to` | string | yes | Recipient phone number (E.164 format, e.g., '2348012345678') |
| `text` | string | yes | Message text content |
| `mediaUrl` | string | no | URL of media to attach (required for non-text message types) |
| `channelId` | string | yes | Unique identifier (UUID) of the WhatsApp channel to send through |
| `contactName` | string | no | Display name for the recipient contact |
| `messageType` | string | no | Type of message: 'text' (default), 'image', or 'document' |

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": "neuron_compose_message",
    "arguments": {
      "to": "<to>",
      "text": "<text>",
      "channelId": "<channelId>"
    }
  }
}
```

## Why neuron_compose_message is rated Medium

This tool creates new messages and conversations, which are write operations (data creation). It is reversible in nature—messages can typically be deleted or conversations archived. The severity is medium because sending unsolicited messages at scale could be abusive (spam, harassment) but does not result in irreversible data loss or financial impact.

From the tool's own definition: "Tool description explicitly states 'Compose and send a new message to a phone number via a specific channel."

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on Neuron (230)

- `neuron_delete_ad_request` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-ad-request.md
- `neuron_delete_blog_post` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-blog-post.md
- `neuron_delete_bot` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-bot.md
- `neuron_delete_broadcast` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-broadcast.md
- `neuron_delete_campaign` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-campaign.md
- `neuron_delete_channel` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-channel.md
- `neuron_delete_contact` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-contact.md
- `neuron_delete_contact_list` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-contact-list.md
- `neuron_delete_kb_entry` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-kb-entry.md
- `neuron_delete_knowledge_base` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-knowledge-base.md
- `neuron_delete_message` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-message.md
- `neuron_delete_newsletter` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-newsletter.md
- `neuron_delete_outbound_webhook` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-outbound-webhook.md
- `neuron_delete_tool` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-tool.md
- `neuron_delete_webhook` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-delete-webhook.md
- `neuron_leave_group` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-leave-group.md
- `neuron_logout` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-logout.md
- `neuron_post_to_newsletter` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-post-to-newsletter.md
- `neuron_remove_bot_channel` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-remove-bot-channel.md
- `neuron_remove_member` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-remove-member.md
- `neuron_remove_profile_picture` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-remove-profile-picture.md
- `neuron_remove_tool_secret` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-remove-tool-secret.md
- `neuron_revoke_api_key` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-revoke-api-key.md
- `neuron_revoke_group_invite` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-revoke-group-invite.md
- `neuron_revoke_invitation` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-revoke-invitation.md
- `neuron_send_broadcast` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-send-broadcast.md
- `neuron_stop_ad_request` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-stop-ad-request.md
- `neuron_stop_campaign` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-stop-campaign.md
- `neuron_unpublish_from_pool` — Destructive — https://policylayer.com/tools/io-github-conquext-neuron/neuron-unpublish-from-pool.md
- `neuron_bot_api_chat` — Execute — https://policylayer.com/tools/io-github-conquext-neuron/neuron-bot-api-chat.md
- …and 200 more: https://policylayer.com/tools/io-github-conquext-neuron.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-conquext-neuron · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-conquext-neuron
