# io.github.conquext/neuron (remote · mcp.neuron.ng)

AI-powered WhatsApp chatbot platform with 196 tools for bots, campaigns, and contacts.

- Trust score: 70/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.neuron.ng`: 70/100 (this document), [markdown](https://verifymcp.io/servers/conquext-neuron/mcp.md), [page](https://verifymcp.io/servers/conquext-neuron/mcp)
- npm · `neuron-mcp-server`: 59/100, [markdown](https://verifymcp.io/servers/conquext-neuron/neuron-mcp-server.md), [page](https://verifymcp.io/servers/conquext-neuron/neuron-mcp-server)

## Channel facts

- Endpoint: `https://mcp.neuron.ng/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (neuron_delete_bot).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 20083 tokens (~81/item across 246 items; 246 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http conquext-neuron https://mcp.neuron.ng/mcp
```

### Codex

```toml
[mcp_servers.conquext-neuron]
url = "https://mcp.neuron.ng/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "conquext-neuron": {
      "type": "remote",
      "url": "https://mcp.neuron.ng/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add conquext-neuron --url https://mcp.neuron.ng/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  conquext-neuron:
    url: "https://mcp.neuron.ng/mcp"
```

### Other

```json
{
  "mcpServers": {
    "conquext-neuron": {
      "type": "http",
      "url": "https://mcp.neuron.ng/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 68, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 68, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 66, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 65)

First indexed and scored.

## MCP tools (246)

### `neuron_register` (~91 tokens)

Register New User

Register a new user account with name, email, password, and organization name. Creates both the user and an initial organization.

Input parameters:

- `email` (string, required): Email address for the new account
- `name` (string, required): Full name of the user
- `orgName` (string, required): Name of the organization to create for this user
- `password` (string, required): Password for the account (minimum 8 characters)

### `neuron_login` (~65 tokens)

Login to Neuron

Authenticate with Neuron. Three modes:
1\. No args: Opens a browser URL for secure authorization (recommended — no credentials shared with AI)
2\. token: Paste an MCP token from the Neuron dashboard
3\. email+password: Legacy login (credentials visible to AI)

### `neuron_refresh_token` (~45 tokens)

Refresh Access Token

Refresh the access token using a refresh token. Automatically sets the new access token for subsequent API calls.

Input parameters:

- `refreshToken` (string, required): Refresh token obtained from the initial login response

### `neuron_switch_org` (~49 tokens)

Switch Organization

Switch to a different organization. Returns a new access token scoped to the target organization and automatically sets it.

Input parameters:

- `orgId` (string, required): Unique identifier (UUID) of the organization to switch to

### `neuron_list_organizations` (~25 tokens)

List Organizations

Retrieve all organizations the authenticated user belongs to, including their roles in each.

### `neuron_get_profile` (~26 tokens)

Get User Profile

Retrieve the authenticated user's profile information including name, email, role, and current organization.

### `neuron_whoami` (~31 tokens)

Check Current Account

Check which Neuron account is currently logged in, including user name, email, role, and organization.

### `neuron_switch_instance` (~94 tokens)

Switch Neuron Instance

Switch the MCP server to target a different Neuron backend instance. Auth tokens are preserved per instance — if you've previously logged in to an instance, switching back restores your session automatically.

Call with no args to list known instances and see which is active.

Input parameters:

- `url` (string): Base API URL of the Neuron instance (e.g., 'https://api.client.com/api/v1'). Omit to list known instances.

### `neuron_logout` (~40 tokens)

Logout

Clear the current auth token locally. Does NOT revoke server-side MCP tokens — revoke from the Neuron dashboard (Settings > MCP Tokens) for full invalidation.

### `neuron_create_bot` (~471 tokens)

Create Bot

Create a new AI bot with specified name, model, and behavior instructions. Returns the created bot object.

Input parameters:

- `assignment` (string): One-sentence role definition for the bot (max 2000 chars)
- `escalationPrompt` (string): Prompt template used when escalating to a human agent (max 5000 chars)
- `fallbackMessage` (string): Message sent when the bot cannot understand user input (max 2000 chars)
- `greetingMessage` (string): Automatic greeting sent when a new conversation starts (max 2000 chars)
- `llmModel` (string): OpenRouter model ID (e.g., 'google/gemini-2.5-flash-lite', 'openrouter/auto')
- `llmTemperature` (number): Temperature parameter controlling response randomness (0 = deterministic, 2 = creative)
- `maxTokens` (number): Maximum number of tokens the bot can generate per response
- `metadata` (object): Arbitrary metadata object stored with the bot. Known keys: 'communityExitFollowUp' (auto-DM users who leave watched groups — { enabled: boolean, groupJids: string[], message: string with {name} place…
- `name` (string, required): Display name for the bot
- `responsibilities` (array): Array of responsibility descriptions defining what the bot handles
- `systemPrompt` (string, required): System prompt that defines the bot's behavior, personality, and response guidelines
- `welcomeMessage` (string): Welcome message sent to new members joining groups the bot manages. Setting this field activates the batched welcome feature — new members are accumulated over a window (default 60s) and welcomed in…
- `whatsappChannelId` (string): Unique identifier (UUID) of the WhatsApp channel to associate with the bot

### `neuron_list_bots` (~25 tokens)

List Bots

Retrieve all bots accessible to the current user, including their configurations and status.

### `neuron_get_bot` (~41 tokens)

Get Bot

Retrieve detailed information about a specific bot including its configuration, status, and associated resources.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the bot

### `neuron_update_bot` (~498 tokens)

Update Bot

Update an existing bot's configuration. Only provided fields are modified; omitted fields remain unchanged.

Input parameters:

- `assignment` (string): One-sentence role definition for the bot (max 2000 chars)
- `escalationPrompt` (string): Prompt template used when escalating to a human agent (max 5000 chars)
- `fallbackMessage` (string): Message sent when the bot cannot understand user input (max 2000 chars)
- `greetingMessage` (string): Automatic greeting sent when a new conversation starts (max 2000 chars)
- `id` (string, required): Unique identifier (UUID) of the bot to update
- `llmModel` (string): OpenRouter model ID (e.g., 'google/gemini-2.5-flash-lite', 'openrouter/auto')
- `llmTemperature` (number): Temperature parameter controlling response randomness (0 = deterministic, 2 = creative)
- `maxTokens` (number): Maximum number of tokens the bot can generate per response
- `metadata` (object): Arbitrary metadata object stored with the bot. Replaces the entire metadata field — include ALL existing keys you want to keep. Known keys: 'communityExitFollowUp' (auto-DM users who leave watched gr…
- `name` (string): New display name for the bot
- `responsibilities` (array): Array of responsibility descriptions defining what the bot handles
- `systemPrompt` (string): New system prompt defining the bot's behavior and personality
- `welcomeMessage` (string): Welcome message sent to new members joining groups the bot manages. Setting this field activates the batched welcome feature — new members are accumulated over a window (default 60s) and welcomed in…
- `whatsappChannelId` (string): Unique identifier (UUID) of the WhatsApp channel to associate with the bot

### `neuron_delete_bot` (~43 tokens)

Delete Bot

Permanently delete a bot and all its associated data. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the bot to delete

### `neuron_pause_bot` (~49 tokens)

Pause Bot

Pause a bot to temporarily stop it from processing new messages. The bot retains its configuration and can be resumed later.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the bot to pause

### `neuron_resume_bot` (~39 tokens)

Resume Bot

Resume a previously paused bot so it begins processing new messages again.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the bot to resume

### `neuron_get_bot_analytics` (~51 tokens)

Get Bot Analytics

Retrieve analytics and usage statistics for a specific bot, including message counts, response times, and conversation metrics.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the bot to retrieve analytics for

### `neuron_attach_knowledge_base` (~93 tokens)

Attach Knowledge Base

Attach a knowledge base to a bot to enhance its responses with domain-specific knowledge. Optional priority determines retrieval order when multiple knowledge bases are attached.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the bot
- `knowledgeBaseId` (string, required): Unique identifier (UUID) of the knowledge base to attach
- `priority` (number): Priority level for knowledge base retrieval (higher values are checked first)

### `neuron_list_bot_knowledge_bases` (~44 tokens)

List Bot Knowledge Bases

Retrieve all knowledge bases attached to a specific bot, including their priorities and metadata.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the bot

### `neuron_detach_knowledge_base` (~67 tokens)

Detach Knowledge Base

Remove a knowledge base from a bot. The bot will no longer reference this knowledge base when generating responses.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the bot
- `kbId` (string, required): Unique identifier (UUID) of the knowledge base to detach

### `neuron_create_api_key` (~126 tokens)

Create API Key

Create a new API key for programmatic access to a specific bot. Store the key securely as it cannot be retrieved later.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to create the API key for
- `expiresAt` (string): ISO 8601 date-time when the key should expire (e.g., '2026-12-31T23:59:59Z'). Key never expires if omitted.
- `name` (string, required): Descriptive name for the API key to identify its purpose (e.g., 'Production CRM Integration')

### `neuron_list_api_keys` (~56 tokens)

List API Keys

Retrieve all API keys associated with a specific bot, including their names, creation dates, expiration status, and revocation status.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot whose API keys to retrieve

### `neuron_revoke_api_key` (~74 tokens)

Revoke API Key

Permanently revoke an API key to immediately invalidate it and prevent further programmatic access. This action cannot be undone.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot that owns the API key
- `keyId` (string, required): Unique identifier (UUID) of the API key to revoke

### `neuron_bot_api_chat` (~122 tokens)

Bot API Chat

Send a message to a bot via the API and receive a streaming or complete AI-generated response. Requires a valid API key with 'nrn_' prefix.

Input parameters:

- `apiKey` (string, required): Bot API key with 'nrn_' prefix for authentication
- `contactName` (string): Display name of the contact for conversation context
- `contactPhone` (string, required): Phone number of the contact sending the message (E.164 format, e.g., '+2348012345678')
- `message` (string, required): The message text to send to the bot

### `neuron_bot_api_send` (~226 tokens)

Bot API Send

Send an outbound message through the bot API to a specified phone number. Supports text and media messages. Requires a valid API key.

Input parameters:

- `apiKey` (string, required): Bot API key with 'nrn_' prefix for authentication
- `channelId` (string): Unique identifier (UUID) of a specific WhatsApp channel to send from. Uses the bot's primary channel if omitted.
- `mediaUrl` (string): Public URL of the media file to attach (required for non-text message types)
- `message` (string, required): The message text to send to the recipient
- `messageType` (string): Type of message to send: 'text', 'image', 'video', 'audio', or 'document' (default: 'text')
- `sendAt` (string): ISO 8601 date-time for scheduled delivery (e.g., '2025-12-31T10:00:00Z'). Message sends immediately if omitted.
- `to` (string, required): Recipient's phone number (E.164 format, e.g., '+2348012345678')

### `neuron_bot_api_list_conversations` (~109 tokens)

Bot API List Conversations

Retrieve a paginated list of conversations managed by the bot. Supports filtering by conversation status. Requires a valid API key.

Input parameters:

- `apiKey` (string, required): Bot API key with 'nrn_' prefix for authentication
- `limit` (number): Number of conversations per page (default: 20)
- `page` (number): Page number for pagination (default: 1)
- `status` (string): Filter by conversation status: 'active', 'closed', or 'pending'

### `neuron_bot_api_get_messages` (~110 tokens)

Bot API Get Messages

Retrieve message history for a specific conversation with cursor-based pagination. Requires a valid API key.

Input parameters:

- `apiKey` (string, required): Bot API key with 'nrn_' prefix for authentication
- `before` (string): Cursor for pagination — retrieve messages created before this message ID or ISO 8601 timestamp
- `conversationId` (string, required): Unique identifier (UUID) of the conversation to retrieve messages from
- `limit` (number): Maximum number of messages to return (default: 50)

### `neuron_bot_api_get_bot` (~45 tokens)

Bot API Get Bot

Retrieve configuration and status information about the bot associated with the provided API key.

Input parameters:

- `apiKey` (string, required): Bot API key with 'nrn_' prefix for authentication

### `neuron_list_conversations` (~103 tokens)

List Conversations

Retrieve a paginated list of conversations for a specific bot, with optional filtering by status.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot whose conversations to list
- `cursor` (string): Opaque pagination cursor from a previous response for retrieving the next page
- `limit` (integer): Maximum number of conversations to return per page
- `status` (string): Filter by conversation status (e.g., 'active', 'closed')

### `neuron_get_conversation` (~42 tokens)

Get Conversation

Retrieve detailed information about a specific conversation, including its status, participants, and metadata.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the conversation

### `neuron_get_messages` (~75 tokens)

Get Conversation Messages

Retrieve messages from a specific conversation in chronological order, with optional cursor-based pagination.

Input parameters:

- `cursor` (string): Opaque pagination cursor from a previous response for retrieving the next page
- `id` (string, required): Unique identifier (UUID) of the conversation
- `limit` (integer): Maximum number of messages to return per page

### `neuron_takeover_conversation` (~56 tokens)

Takeover Conversation

Transfer control of a conversation from the bot to a human agent. The bot will stop auto-responding until the conversation is released.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the conversation to take over

### `neuron_release_conversation` (~51 tokens)

Release Conversation

Release a conversation back to the bot, returning control from a human agent. The bot will resume auto-responding.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the conversation to release

### `neuron_send_message` (~101 tokens)

Send Message

Send a message to an existing conversation. Supports text, image, and document message types with optional media attachments.

Input parameters:

- `content` (string, required): Message content to send
- `id` (string, required): Unique identifier (UUID) of the conversation
- `mediaUrl` (string): URL of media to attach (required for image/document message types)
- `messageType` (string): Type of message: 'text' (default), 'image', or 'document'

### `neuron_compose_message` (~191 tokens)

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.

Input parameters:

- `channelId` (string, required): Unique identifier (UUID) of the WhatsApp channel to send through
- `contactName` (string): Display name for the recipient contact
- `mediaUrl` (string): URL of media to attach (required for non-text message types)
- `messageType` (string): Type of message: 'text' (default), 'image', or 'document'
- `sendAt` (string): ISO 8601 date-time for scheduled delivery (e.g., '2025-12-31T10:00:00Z'). Message sends immediately if omitted.
- `text` (string, required): Message text content
- `to` (string, required): Recipient phone number (E.164 format, e.g., '2348012345678')

### `neuron_send_whatsapp` (~220 tokens)

Send WhatsApp Message

Send a WhatsApp message to a phone number or group. Auto-resolves which channel to use (org default > first connected). Supports text, image, audio, video, and document types.

Input parameters:

- `channelId` (string): Unique identifier (UUID) of a specific channel to override auto-resolution
- `contactName` (string): Display name for the recipient contact
- `mediaUrl` (string): URL of media to attach (required for non-text message types)
- `messageType` (string): Message type: 'text' (default), 'image', 'audio', 'video', or 'document'
- `sendAt` (string): ISO 8601 date-time for scheduled delivery (e.g., '2025-12-31T10:00:00Z'). Message sends immediately if omitted.
- `text` (string, required): Message text content
- `to` (string, required): Recipient: phone number (e.g., '2348012345678') or group JID (e.g., '120363XXX@g.us')

### `neuron_edit_message` (~78 tokens)

Edit Message

Edit the content of a previously sent message in a conversation. Only the message sender can edit their messages.

Input parameters:

- `content` (string, required): New text content to replace the existing message
- `id` (string, required): Unique identifier (UUID) of the conversation
- `msgId` (string, required): Unique identifier (UUID) of the message to edit

### `neuron_delete_message` (~58 tokens)

Delete Message

Permanently delete a specific message from a conversation. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the conversation
- `msgId` (string, required): Unique identifier (UUID) of the message to delete

### `neuron_close_conversation` (~48 tokens)

Close Conversation

Close an active conversation, marking it as completed. The bot will stop responding and the conversation is archived.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the conversation to close

### `neuron_create_knowledge_base` (~70 tokens)

Create Knowledge Base

Create a new knowledge base to store and organize information, documents, and entries.

Input parameters:

- `description` (string): Optional description of the knowledge base purpose
- `name` (string, required): Name of the knowledge base
- `rootInstruction` (string): Optional root instruction or context for the knowledge base

### `neuron_list_knowledge_bases` (~22 tokens)

List Knowledge Bases

Retrieve all knowledge bases accessible to the current user.

### `neuron_get_knowledge_base` (~36 tokens)

Get Knowledge Base

Retrieve detailed information about a specific knowledge base by its ID.

Input parameters:

- `id` (string, required): Unique identifier of the knowledge base

### `neuron_update_knowledge_base` (~83 tokens)

Update Knowledge Base

Update the properties of an existing knowledge base such as name, description, or root instruction.

Input parameters:

- `description` (string): New description for the knowledge base
- `id` (string, required): Unique identifier of the knowledge base to update
- `name` (string): New name for the knowledge base
- `rootInstruction` (string): New root instruction or context

### `neuron_delete_knowledge_base` (~40 tokens)

Delete Knowledge Base

Permanently delete a knowledge base and all its associated entries and documents.

Input parameters:

- `id` (string, required): Unique identifier of the knowledge base to delete

### `neuron_create_kb_entry` (~131 tokens)

Create Knowledge Base Entry

Add a new entry (note, document, or information piece) to a knowledge base.

Input parameters:

- `content` (string, required): Content or body of the entry
- `folder` (string): Folder to organize the entry: 'general', 'skills', 'contexts', 'documents', or 'faqs' (default: general)
- `id` (string, required): Unique identifier of the knowledge base
- `metadata` (object): Optional metadata key-value pairs for the entry
- `source` (string): Source type of the entry (default: manual)
- `title` (string, required): Title of the entry

### `neuron_list_kb_entries` (~113 tokens)

List Knowledge Base Entries

Retrieve entries from a knowledge base with optional filtering and pagination.

Input parameters:

- `folder` (string): Filter entries by folder ('general', 'skills', 'contexts', 'documents', 'faqs')
- `id` (string, required): Unique identifier of the knowledge base
- `limit` (number): Maximum number of entries to return per page
- `page` (number): Page number for pagination (starts at 1)
- `source` (string): Filter entries by source type ('manual', 'document', 'url')

### `neuron_update_kb_entry` (~132 tokens)

Update Knowledge Base Entry

Update the content, title, folder, or source of an existing knowledge base entry.

Input parameters:

- `content` (string): New content for the entry
- `entryId` (string, required): Unique identifier of the entry to update
- `folder` (string): New folder: 'general', 'skills', 'contexts', 'documents', or 'faqs'
- `kbId` (string, required): Unique identifier of the knowledge base
- `metadata` (object): New metadata key-value pairs
- `source` (string): New source type for the entry
- `title` (string): New title for the entry

### `neuron_delete_kb_entry` (~51 tokens)

Delete Knowledge Base Entry

Permanently delete a specific entry from a knowledge base.

Input parameters:

- `entryId` (string, required): Unique identifier of the entry to delete
- `kbId` (string, required): Unique identifier of the knowledge base

### `neuron_upload_document` (~88 tokens)

Upload Document

Upload a text document to a knowledge base. The document will be automatically chunked and indexed for semantic search.

Input parameters:

- `content` (string, required): Text content of the document to upload
- `filename` (string, required): Name of the file being uploaded
- `folder` (string): Folder path to organize the document within the knowledge base
- `id` (string, required): Unique identifier of the knowledge base

### `neuron_search_knowledge` (~70 tokens)

Search Knowledge

Perform semantic search across all entries and documents in a knowledge base to find relevant information.

Input parameters:

- `id` (string, required): Unique identifier of the knowledge base to search
- `limit` (number): Maximum number of search results to return
- `q` (string, required): Search query text to find relevant entries

### `neuron_list_kb_bots` (~39 tokens)

List Knowledge Base Bots

Retrieve all bots that are connected to or using a specific knowledge base.

Input parameters:

- `id` (string, required): Unique identifier of the knowledge base

### `neuron_ingest_knowledge` (~173 tokens)

Ingest Knowledge

Ingest content into a knowledge base. Supports deduplication via externalId and optional LLM processing (summarize, extract_facts, or custom instruction).

Input parameters:

- `content` (string, required): Content to ingest
- `externalId` (string): Unique external ID for deduplication (e.g. file path, URL)
- `folder` (string): Folder: 'general', 'skills', 'contexts', 'documents', or 'faqs' (default: general)
- `knowledgeBaseId` (string, required): Knowledge base ID to ingest into
- `processing` (object): Optional LLM processing before storage
- `source` (string): Source type (default: mcp)
- `sourceUrl` (string): Source URL for reference
- `title` (string, required): Title for the knowledge entry

### `neuron_sync_knowledge` (~44 tokens)

Sync Knowledge

Trigger a synchronization operation to refresh embeddings, reindex content, or update the knowledge base state.

Input parameters:

- `id` (string, required): Unique identifier of the knowledge base to synchronize

### `neuron_create_tool` (~159 tokens)

Create Tool

Create a custom API tool that the bot can invoke during conversations to fetch external data or trigger actions.

Input parameters:

- `authType` (string): Authentication type for the endpoint
- `botId` (string, required): Unique identifier (UUID) of the bot to create the tool for
- `config` (object, required): Tool configuration specifying the endpoint and request details
- `description` (string, required): Description of what the tool does and when the bot should use it
- `name` (string, required): Human-readable name for the tool
- `rateLimit` (number): Maximum number of requests per minute allowed for this tool
- `timeoutMs` (number): Request timeout in milliseconds (default: 30000)
- `type` (string, required): Type of the tool integration

### `neuron_list_tools` (~47 tokens)

List Tools

Retrieve all custom API tool integrations configured for a specific bot, including their endpoints and configuration.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to list tools for

### `neuron_update_tool` (~133 tokens)

Update Tool

Modify an existing custom API tool's configuration, including its endpoint, authentication, or request template.

Input parameters:

- `authType` (string): Updated authentication type
- `config` (object): Updated tool configuration
- `description` (string): Updated description of the tool's purpose
- `id` (string, required): Unique identifier (UUID) of the tool to update
- `name` (string): Updated human-readable name for the tool
- `rateLimit` (number): Updated maximum requests per minute
- `timeoutMs` (number): Updated request timeout in milliseconds
- `type` (string): Updated type of the tool integration

### `neuron_delete_tool` (~52 tokens)

Delete Tool

Permanently remove a custom API tool integration from a bot. The bot will no longer be able to invoke this tool in conversations.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the tool to delete

### `neuron_test_tool` (~63 tokens)

Test Tool

Execute a dry-run test of a custom API tool with sample arguments to verify the endpoint responds correctly.

Input parameters:

- `args` (object, required): Sample arguments object to pass to the tool for testing
- `id` (string, required): Unique identifier (UUID) of the tool to test

### `neuron_add_tool_secret` (~96 tokens)

Add Tool Secret

Store or update a secret credential (API key, token, etc.) for a custom tool integration. Secrets are encrypted at rest.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the tool to add the secret to
- `key` (string, required): Secret key name used in templates (e.g., 'API_KEY', 'AUTH_TOKEN')
- `value` (string, required): Secret value to store securely (will be encrypted)

### `neuron_remove_tool_secret` (~74 tokens)

Remove Tool Secret

Permanently delete a stored secret from a custom tool integration. The tool will lose access to this credential.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the tool to remove the secret from
- `key` (string, required): Secret key name to remove (e.g., 'API_KEY', 'AUTH_TOKEN')

### `neuron_create_webhook` (~144 tokens)

Create Webhook

Register a new inbound webhook endpoint that triggers bot actions when called by an external service.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to create the webhook for
- `eventType` (string): Type of event this webhook handles (e.g., 'order.created', 'payment.received')
- `isActive` (boolean): Whether the webhook is active and accepting requests (default: true)
- `name` (string, required): Human-readable name for the webhook
- `processingPrompt` (string): Prompt instructions to guide bot processing of incoming webhook data
- `slug` (string): URL-friendly slug for the webhook endpoint (auto-generated if omitted)

### `neuron_list_webhooks` (~48 tokens)

List Webhooks

Retrieve all inbound webhooks configured for a specific bot, including their status and configuration.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to list webhooks for

### `neuron_update_webhook` (~107 tokens)

Update Webhook

Modify an existing inbound webhook's configuration, such as its name, event type, or processing prompt.

Input parameters:

- `eventType` (string): Updated event type this webhook handles
- `id` (string, required): Unique identifier (UUID) of the webhook to update
- `isActive` (boolean): Whether the webhook should be active and accepting requests
- `name` (string): Updated human-readable name of the webhook
- `processingPrompt` (string): Updated prompt instructions for processing webhook data

### `neuron_delete_webhook` (~49 tokens)

Delete Webhook

Permanently remove an inbound webhook from a bot. External services will no longer be able to trigger this endpoint.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the webhook to delete

### `neuron_get_webhook_logs` (~80 tokens)

Get Webhook Logs

Retrieve execution logs for an inbound webhook to monitor incoming requests and debug processing issues.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the webhook to get logs for
- `limit` (number): Number of log entries per page (default: 20)
- `page` (number): Page number for pagination (default: 1)

### `neuron_list_reflections` (~69 tokens)

List Reflections

Retrieve pending reflections that the bot has generated from conversations, awaiting human review. Optionally filter by approval status.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to list reflections for
- `status` (string): Filter reflections by approval status (default: all statuses)

### `neuron_approve_reflection` (~48 tokens)

Approve Reflection

Approve a bot-generated reflection to incorporate the learned insight into the bot's future behavior and responses.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the reflection to approve

### `neuron_reject_reflection` (~46 tokens)

Reject Reflection

Reject a bot-generated reflection to prevent it from being incorporated into the bot's learned behavior.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the reflection to reject

### `neuron_sync_reflections` (~50 tokens)

Sync Reflections

Synchronize all approved reflections into the bot's active knowledge base, applying learned insights to future conversations.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to sync reflections for

### `neuron_list_channels` (~27 tokens)

List Channels

Retrieve all WhatsApp channels configured in the current organization, including their type and connection status.

### `neuron_create_channel` (~151 tokens)

Create Channel

Create a new WhatsApp channel with either Meta Cloud API or Baileys (direct WhatsApp) integration. Meta Cloud channels require metaPhoneNumberId and metaAccessToken.

Input parameters:

- `metaAccessToken` (string): Meta Access Token (required for meta_cloud type)
- `metaPhoneNumberId` (string): Meta Phone Number ID (required for meta_cloud type)
- `name` (string, required): Display name for the channel
- `phoneNumber` (string): Phone number for the channel (E.164 format, e.g., '+2348012345678')
- `type` (string, required): Integration type: 'meta_cloud' for Meta Cloud API or 'baileys' for direct WhatsApp connection

### `neuron_get_channel` (~44 tokens)

Get Channel

Retrieve detailed information about a specific WhatsApp channel, including its configuration, type, and connection status.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the channel

### `neuron_update_channel` (~116 tokens)

Update Channel

Update configuration of an existing WhatsApp channel. Only provided fields are modified; omitted fields remain unchanged.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the channel to update
- `metaAccessToken` (string): New Meta Access Token (meta_cloud channels only)
- `metaPhoneNumberId` (string): New Meta Phone Number ID (meta_cloud channels only)
- `name` (string): New display name for the channel
- `phoneNumber` (string): New phone number for the channel (E.164 format)

### `neuron_delete_channel` (~45 tokens)

Delete Channel

Permanently delete a WhatsApp channel and disconnect any active sessions. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the channel to delete

### `neuron_assign_bot_to_channel` (~65 tokens)

Assign Bot to Channel

Assign a bot to handle incoming messages on a specific WhatsApp channel. Replaces any previously assigned bot.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to assign
- `id` (string, required): Unique identifier (UUID) of the channel

### `neuron_unassign_bot_from_channel` (~54 tokens)

Unassign Bot from Channel

Remove the bot assignment from a WhatsApp channel. The channel will stop auto-responding to messages.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the channel to unassign the bot from

### `neuron_start_channel_session` (~62 tokens)

Start Channel Session

Start a Baileys (direct WhatsApp) session for the channel. Generates a QR code for device pairing. Only applicable to Baileys-type channels.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the Baileys channel to start

### `neuron_stop_channel_session` (~53 tokens)

Stop Channel Session

Stop the active Baileys session for the channel and disconnect from WhatsApp. The channel can be restarted later.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the Baileys channel to stop

### `neuron_get_channel_status` (~48 tokens)

Get Channel Status

Retrieve the current connection status and session details for a specific channel (e.g., connected, disconnected, qr_pending).

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the channel

### `neuron_request_pair_code` (~86 tokens)

Request Pair Code

Request a numeric pairing code for a Baileys channel as an alternative to QR code scanning. Requires the phone number to pair with.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the Baileys channel
- `phoneNumber` (string, required): Phone number to generate the pair code for (E.164 format, e.g., '+2348012345678')

### `neuron_list_channel_groups` (~41 tokens)

List Channel Groups

Retrieve all WhatsApp groups that the channel is participating in, including group metadata.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the channel

### `neuron_get_group_participants` (~73 tokens)

Get Group Participants

Retrieve the list of participants in a specific WhatsApp group accessible through a channel.

Input parameters:

- `groupJid` (string, required): JID (Jabber ID) of the WhatsApp group (e.g., '120363XXX@g.us')
- `id` (string, required): Unique identifier (UUID) of the channel

### `neuron_list_whatsapp_contacts` (~60 tokens)

List WhatsApp Contacts

Retrieve contacts from the WhatsApp account connected to this channel, with optional search filtering.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the channel
- `q` (string): Search query to filter contacts by name or phone number

### `neuron_get_channel_events` (~76 tokens)

Get Channel Events

Retrieve the event log for a channel, including connection events, message events, and errors. Supports pagination.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the channel
- `limit` (integer): Number of events to return per page
- `page` (integer): Page number for pagination (starts at 1)

### `neuron_get_channel_qr` (~52 tokens)

Get Channel QR Code

Retrieve the current QR code for pairing a Baileys channel with WhatsApp. A session must be started first.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the Baileys channel

### `neuron_list_bot_channels` (~43 tokens)

List Bot Channels

Retrieve all WhatsApp channels connected to a specific bot, including primary and secondary connections.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot

### `neuron_add_bot_channel` (~70 tokens)

Add Bot Channel

Connect an additional WhatsApp channel to a bot as a secondary number. The bot will respond to messages on this channel.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot
- `channelId` (string, required): Unique identifier (UUID) of the WhatsApp channel to connect

### `neuron_remove_bot_channel` (~67 tokens)

Remove Bot Channel

Disconnect a WhatsApp channel from a bot. The bot will no longer respond to messages on this channel.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot
- `channelId` (string, required): Unique identifier (UUID) of the WhatsApp channel to disconnect

### `neuron_browse_pool` (~151 tokens)

Browse Pool

Browse the shared marketplace pool of published bots, tools, knowledge bases, and reflections with optional filtering by type, category, tags, or search query.

Input parameters:

- `category` (string): Filter by category name
- `featured` (boolean): When true, return only featured items
- `limit` (number): Number of items per page (default: 20)
- `page` (number): Page number for pagination (default: 1)
- `query` (string): Free-text search query to filter pool items by name or description
- `tags` (string): Filter by tags (comma-separated list, e.g., 'ai,chatbot')
- `type` (string): Filter by resource type

### `neuron_get_pool_item` (~52 tokens)

Get Pool Item

Retrieve detailed information about a specific item in the marketplace pool, including its description, category, tags, and install count.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the pool item to retrieve

### `neuron_list_published` (~23 tokens)

List My Published Items

List all items the current organization has published to the marketplace pool.

### `neuron_list_installed` (~23 tokens)

List Installed Items

List all items the current organization has installed from the marketplace pool.

### `neuron_publish_to_pool` (~194 tokens)

Publish to Pool

Publish a bot, tool, knowledge base, or reflection to the shared marketplace pool for other organizations to discover and install.

Input parameters:

- `category` (string): Category name for organizing the resource in the pool
- `defaultSecrets` (object): Pre-filled secrets auto-populated on install, e.g. { OAUTH2_TOKEN_URL: 'https://...' }
- `description` (string): Detailed description of the resource for the pool listing
- `name` (string, required): Display name for the pool listing
- `setupInstructions` (string): Step-by-step setup guide shown after installation (tool_template only, max 5000 chars)
- `sourceId` (string, required): Unique identifier (UUID) of the source resource to publish
- `tags` (array): List of tags for improved discoverability (e.g., ['ai', 'customer-support'])
- `type` (string, required): Type of resource to publish to the pool

### `neuron_update_pool_item` (~190 tokens)

Update Pool Item

Update a pool item you have published — metadata (name, description, category, tags) and content fields (setupInstructions, defaultSecrets for tool_template items). The underlying resource is re-snapshotted and version is bumped on every update.

Input parameters:

- `category` (string): New category name for the pool listing
- `defaultSecrets` (object): Updated pre-filled secrets auto-populated on install, e.g. { OAUTH2_TOKEN_URL: 'https://...' }
- `description` (string): New detailed description for the pool listing
- `id` (string, required): Unique identifier (UUID) of the pool item to update
- `name` (string): New display name for the pool listing
- `setupInstructions` (string): Updated setup guide shown after installation (tool_template only, max 5000 chars)
- `tags` (array): New list of tags for the pool listing

### `neuron_unpublish_from_pool` (~51 tokens)

Unpublish from Pool

Permanently remove a published item from the marketplace pool. Organizations that installed this item will retain their copies.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the pool item to unpublish

### `neuron_install_from_pool` (~134 tokens)

Install from Pool

Install a resource from the marketplace pool into the current organization. Choose 'fork' for an independent copy or 'subscribe' to receive future updates from the publisher.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the pool item to install
- `mode` (string, required): Installation mode: 'fork' creates an independent copy, 'subscribe' links to publisher updates
- `targetBotId` (string): UUID of the bot to attach the installed resource to (for tool_template or knowledge_base types)
- `targetKbId` (string): UUID of the knowledge base to install into (for knowledge_base types)

### `neuron_pull_pool_update` (~59 tokens)

Pull Pool Update

Pull the latest updates for a subscribed pool resource to sync with the publisher's changes. Only applies to items installed with 'subscribe' mode.

Input parameters:

- `installId` (string, required): Unique identifier (UUID) of the installed resource to pull updates for

### `neuron_toggle_featured` (~52 tokens)

Toggle Featured Status

Toggle the featured status of a pool item. Featured items appear prominently in the marketplace. Requires admin privileges.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the pool item to feature or unfeature

### `neuron_get_organization` (~45 tokens)

Get Organization

Retrieve detailed information about a specific organization, including its name, settings, and configuration.

Input parameters:

- `orgId` (string, required): Unique identifier (UUID) of the organization to retrieve

### `neuron_update_organization` (~60 tokens)

Update Organization

Update organization settings such as name, description, or configuration preferences. Only provided fields are changed.

Input parameters:

- `name` (string): New display name for the organization
- `orgId` (string, required): Unique identifier (UUID) of the organization to update

### `neuron_update_whatsapp_credentials` (~110 tokens)

Update WhatsApp Credentials

Update WhatsApp Business API credentials for the organization. These credentials are required for sending messages via the WhatsApp Cloud API.

Input parameters:

- `orgId` (string, required): Unique identifier (UUID) of the organization
- `whatsappAccessToken` (string, required): WhatsApp access token for API authentication (keep confidential)
- `whatsappBusinessAccountId` (string, required): WhatsApp Business Account ID from the Meta Business dashboard
- `whatsappPhoneNumberId` (string, required): WhatsApp phone number ID from the Meta Business dashboard

### `neuron_set_default_channel` (~86 tokens)

Set Default WhatsApp Channel

Set or clear the default WhatsApp channel for the organization. The default channel is used by neuron_send_whatsapp for auto-resolving which channel to send through.

Input parameters:

- `channelId` (string|null, required): Identifier (UUID) of the channel to set as default, or null to clear the default
- `orgId` (string, required): Unique identifier (UUID) of the organization

### `neuron_list_members` (~41 tokens)

List Organization Members

Retrieve a list of all members in the organization, including their roles and permissions.

Input parameters:

- `orgId` (string, required): Unique identifier (UUID) of the organization

### `neuron_invite_member` (~124 tokens)

Invite Organization Member

Send an invitation to a new member to join the organization. The invitee receives an email with a link to accept.

Input parameters:

- `canViewConversations` (boolean): Whether the invited member can view conversations (default: true)
- `email` (string, required): Email address of the person to invite
- `name` (string, required): Full name of the person being invited
- `orgId` (string, required): Unique identifier (UUID) of the organization
- `role` (string): Role to assign to the member (e.g., 'admin', 'agent', 'viewer')

### `neuron_list_invitations` (~46 tokens)

List Invitations

Retrieve a list of all pending invitations for the organization that have not yet been accepted or revoked.

Input parameters:

- `orgId` (string, required): Unique identifier (UUID) of the organization

### `neuron_revoke_invitation` (~65 tokens)

Revoke Invitation

Revoke a pending organization invitation so it can no longer be accepted. This action cannot be undone.

Input parameters:

- `invitationId` (string, required): Unique identifier (UUID) of the invitation to revoke
- `orgId` (string, required): Unique identifier (UUID) of the organization

### `neuron_update_member` (~79 tokens)

Update Member Permissions

Update a member's permissions within the organization, such as conversation access. Only provided fields are changed.

Input parameters:

- `canViewConversations` (boolean, required): Whether the member can view conversations
- `orgId` (string, required): Unique identifier (UUID) of the organization
- `userId` (string, required): Unique identifier (UUID) of the member to update

### `neuron_remove_member` (~65 tokens)

Remove Organization Member

Permanently remove a member from the organization. The member loses all access immediately. This action cannot be undone.

Input parameters:

- `orgId` (string, required): Unique identifier (UUID) of the organization
- `userId` (string, required): Unique identifier (UUID) of the member to remove

### `neuron_list_audit_logs` (~124 tokens)

List Audit Logs

Retrieve audit logs for the organization, showing a chronological record of actions performed by members. Supports filtering by action type and resource.

Input parameters:

- `action` (string): Filter by action type (e.g., 'CREATE', 'UPDATE', 'DELETE')
- `limit` (integer): Number of log entries per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)
- `resourceType` (string): Filter by resource type (e.g., 'USER', 'ORGANIZATION', 'BOT', 'CAMPAIGN')

### `neuron_list_builtin_tools` (~86 tokens)

List Built-in Tools

Retrieve all available built-in tools with their enabled/disabled status for a specific bot. Built-in tools include WhatsApp actions (send messages, delete messages, post status), utility functions (web search, QR codes, weather), scheduling, knowledge base search, and more.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to list built-in tools for

### `neuron_toggle_builtin_tool` (~135 tokens)

Toggle Built-in Tool

Toggle a built-in tool on or off for a specific bot. Enabled tools become available in the bot's conversations. Example tool IDs: delete_message, post_to_channel, post_status, web_search, send_direct_message, react_to_message, set_reminder, create_poll.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to toggle the tool for
- `enabled` (boolean, required): Whether to enable (true) or disable (false) the tool
- `toolId` (string, required): Identifier of the built-in tool (e.g., 'delete_message', 'post_status', 'web_search')

### `neuron_bulk_toggle_builtin_tools` (~68 tokens)

Bulk Toggle Built-in Tools

Enable or disable multiple built-in tools at once for a bot. More efficient than toggling tools individually.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to update tools for
- `settings` (array, required): Array of tool toggle settings to apply in bulk

### `neuron_create_outbound_webhook` (~163 tokens)

Create Outbound Webhook

Register a new outbound webhook that sends HTTP POST requests to an external URL when specified bot events occur. Supported events: message.created, message.assistant, conversation.created, conversation.escalated, conversation.closed, bot.paused, bot.resumed.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to create the outbound webhook for
- `eventTypes` (array, required): Array of event types that should trigger this webhook
- `filterPrompt` (string): Optional LLM prompt to selectively filter which events are forwarded (e.g., 'only forward escalations about billing')
- `name` (string, required): Human-readable name for the outbound webhook
- `url` (string, required): Destination URL that will receive webhook event payloads (HTTPS recommended)

### `neuron_list_outbound_webhooks` (~54 tokens)

List Outbound Webhooks

Retrieve all outbound webhooks configured for a specific bot, including their target URLs and subscribed event types.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to list outbound webhooks for

### `neuron_update_outbound_webhook` (~120 tokens)

Update Outbound Webhook

Modify an existing outbound webhook's configuration, including its destination URL, subscribed event types, or filter prompt.

Input parameters:

- `eventTypes` (array): Updated array of event types that should trigger this webhook
- `filterPrompt` (string): Updated LLM prompt for selectively filtering forwarded events
- `id` (string, required): Unique identifier (UUID) of the outbound webhook to update
- `name` (string): Updated human-readable name for the webhook
- `url` (string): Updated destination URL that will receive webhook event payloads (HTTPS recommended)

### `neuron_delete_outbound_webhook` (~50 tokens)

Delete Outbound Webhook

Permanently remove an outbound webhook. The external endpoint will no longer receive event notifications from this bot.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the outbound webhook to delete

### `neuron_get_outbound_webhook_logs` (~84 tokens)

Get Outbound Webhook Logs

Retrieve delivery logs for an outbound webhook to monitor event dispatch history and debug delivery failures.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the outbound webhook to get logs for
- `limit` (number): Number of log entries per page (default: 20)
- `page` (number): Page number for pagination (default: 1)

### `neuron_list_contacts` (~96 tokens)

List Contacts

Retrieve all contacts for the current organization with optional filtering by search term, tag, and pagination.

Input parameters:

- `limit` (integer): Number of contacts per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)
- `search` (string): Search term to filter contacts by name, phone number, or email address
- `tag` (string): Tag name to filter contacts by category

### `neuron_search_contacts` (~52 tokens)

Search Contacts

Search contacts by a query string across name, phone number, and email fields. Returns matching contacts ranked by relevance.

Input parameters:

- `q` (string, required): Search query string to match against contact name, phone, or email

### `neuron_get_contact` (~41 tokens)

Get Contact

Retrieve detailed information about a specific contact including their tags, notes, and associated lists.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the contact

### `neuron_create_contact` (~125 tokens)

Create Contact

Create a new contact in the organization's address book. If notes are provided, they are saved as a structured note entry with source tracking.

Input parameters:

- `email` (string): Email address of the contact
- `name` (string, required): Full name of the contact
- `notes` (string): Additional notes about the contact, saved as a structured entry
- `phone` (string, required): Contact phone number in E.164 format (e.g., +2348012345678)
- `tags` (array): Tags to categorize the contact (e.g., ['vendor', 'lagos'])

### `neuron_update_contact` (~138 tokens)

Update Contact

Update an existing contact's details. If notes are provided, they are appended as a new structured note entry without overwriting existing notes.

Input parameters:

- `email` (string): Updated email address for the contact
- `id` (string, required): Unique identifier (UUID) of the contact to update
- `name` (string): Updated full name for the contact
- `notes` (string): New note to append to the contact's existing notes
- `phone` (string): Updated phone number in E.164 format (e.g., +2348012345678)
- `tags` (array): Updated tags for the contact (replaces existing tags)

### `neuron_delete_contact` (~45 tokens)

Delete Contact

Permanently delete a contact and remove them from all contact lists. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the contact to delete

### `neuron_export_contacts` (~21 tokens)

Export Contacts

Export all contacts as a downloadable dataset for the current organization.

### `neuron_import_contacts` (~51 tokens)

Import Contacts

Bulk import multiple contacts into the organization's address book. Accepts an array of contact objects with name, phone, and optional fields.

Input parameters:

- `contacts` (array, required): Array of contact objects to import into the organization

### `neuron_populate_contacts` (~30 tokens)

Populate Contacts

Enrich existing contacts with additional data from connected messaging channels. Syncs profile information from linked platforms.

### `neuron_sync_whatsapp_contacts` (~33 tokens)

Sync WhatsApp Contacts

Synchronize contacts from all connected WhatsApp channels into the organization's contact database. Creates new contacts for unseen numbers.

### `neuron_semantic_search_contacts` (~100 tokens)

Semantic Search Contacts

Search contacts using natural language AI-powered semantic search. Finds contacts based on the meaning of their notes — skills, services, schedules, preferences, etc. Returns ranked results with relevance scores and AI-generated match reasons.

Input parameters:

- `limit` (integer): Maximum number of results to return (default: 10, max: 20)
- `query` (string, required): Natural language search query (e.g., 'who can deliver to Lagos on Monday?')

### `neuron_audio_contact` (~78 tokens)

Extract Contact from Audio

Transcribe an audio recording and extract contact information (name, phone, email, notes, tags). Automatically saves the extracted contact to the organization's address book.

Input parameters:

- `audioBase64` (string, required): Base64-encoded audio data containing spoken contact information
- `audioFormat` (string): Audio format hint for decoding (default: 'webm')

### `neuron_list_contact_lists` (~100 tokens)

List Contact Lists

Retrieve all contact lists for the current organization with optional filtering by search term, type, and pagination.

Input parameters:

- `limit` (integer): Number of items per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)
- `search` (string): Search term to filter lists by name or slug
- `type` (string): Filter by list type: 'static', 'dynamic', or 'merged'

### `neuron_get_contact_list` (~47 tokens)

Get Contact List

Retrieve detailed information about a specific contact list, including member count and configuration.

Input parameters:

- `idOrSlug` (string, required): Unique identifier (UUID) or URL-friendly slug of the contact list

### `neuron_create_contact_list` (~145 tokens)

Create Contact List

Create a new contact list. Slug is auto-generated from name if not provided. For dynamic lists, provide criteria with rules and/or an AI prompt.

Input parameters:

- `criteria` (object): Dynamic list criteria object: { rules?: { operator, conditions }, aiPrompt?, aiMaxResults? }
- `description` (string): Human-readable description of the list's purpose
- `name` (string, required): Display name for the contact list
- `refreshSchedule` (string): Refresh schedule for dynamic lists (default: 'manual')
- `slug` (string): URL-friendly identifier (auto-generated from name if omitted)
- `type` (string): List type (default: 'static')

### `neuron_update_contact_list` (~124 tokens)

Update Contact List

Update an existing contact list's name, slug, description, criteria, or refresh schedule.

Input parameters:

- `criteria`: Updated dynamic list criteria. Set to null to clear existing criteria.
- `description` (string): Updated description of the list's purpose
- `idOrSlug` (string, required): Unique identifier (UUID) or URL-friendly slug of the contact list to update
- `name` (string): Updated display name for the list
- `refreshSchedule` (string): Updated refresh schedule for dynamic lists
- `slug` (string): Updated URL-friendly slug for the list

### `neuron_delete_contact_list` (~58 tokens)

Delete Contact List

Permanently delete a contact list. System-protected lists (e.g., 'Do Not Contact') cannot be deleted.

Input parameters:

- `idOrSlug` (string, required): Unique identifier (UUID) or URL-friendly slug of the contact list to delete

### `neuron_get_contact_list_members` (~98 tokens)

Get Contact List Members

Retrieve the members of a specific contact list with optional search filtering and pagination.

Input parameters:

- `idOrSlug` (string, required): Unique identifier (UUID) or URL-friendly slug of the contact list
- `limit` (integer): Number of items per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)
- `search` (string): Search term to filter members by name or phone number

### `neuron_add_to_contact_list` (~83 tokens)

Add to Contact List

Add one or more contacts to a list by contact ID or phone number. Phone numbers without existing contacts are auto-created as minimal contact records.

Input parameters:

- `entries` (array, required): Array of contacts to add, each identified by contactId or phone number
- `idOrSlug` (string, required): Unique identifier (UUID) or URL-friendly slug of the target contact list

### `neuron_remove_from_contact_list` (~71 tokens)

Remove from Contact List

Remove one or more contacts from a list by their contact IDs. Does not delete the contacts themselves.

Input parameters:

- `contactIds` (array, required): Array of contact UUIDs to remove from the list
- `idOrSlug` (string, required): Unique identifier (UUID) or URL-friendly slug of the contact list

### `neuron_merge_contact_lists` (~132 tokens)

Merge Contact Lists

Merge two or more contact lists into a single unified list, deduplicating entries. Window merge creates a virtual union; materialized merge creates a static copy.

Input parameters:

- `mergeType` (string, required): Merge strategy: 'window' (virtual union, stays in sync) or 'materialized' (static copy at merge time)
- `name` (string, required): Display name for the resulting merged list
- `slug` (string): URL-friendly slug for the merged list (auto-generated if omitted)
- `sourceListIds` (array, required): UUIDs or slugs of the source lists to merge (minimum 2)

### `neuron_find_contact_lists_for_contact` (~42 tokens)

Find Contact Lists for Contact

Retrieve all contact lists that a specific contact belongs to.

Input parameters:

- `contactId` (string, required): Unique identifier (UUID) of the contact to look up

### `neuron_refresh_contact_list` (~59 tokens)

Refresh Contact List

Trigger a refresh of a dynamic contact list. Re-evaluates criteria rules and/or AI prompt and materializes updated members.

Input parameters:

- `idOrSlug` (string, required): Unique identifier (UUID) or URL-friendly slug of the dynamic list to refresh

### `neuron_list_broadcasts` (~89 tokens)

List Broadcasts

Retrieve a paginated list of all broadcasts with optional filtering by status such as draft, sent, or scheduled.

Input parameters:

- `limit` (integer): Number of broadcasts per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)
- `status` (string): Filter by broadcast status (e.g., 'draft', 'sent', 'scheduled')

### `neuron_create_broadcast` (~222 tokens)

Create Broadcast

Create a new broadcast message in draft status. Provide recipients directly or use recipientSources to resolve from contact lists. The WhatsApp channel is auto-resolved if not specified.

Input parameters:

- `channelId` (string): Identifier (UUID) of the WhatsApp channel to send through (auto-resolved from default channel if omitted)
- `mediaUrl` (string): URL of media to attach (required for image or document message types)
- `message` (string, required): Message content to broadcast to recipients
- `messageType` (string): Type of message to send (e.g., 'text', 'image', 'document')
- `name` (string, required): Display name or label for the broadcast
- `recipientSources` (object): Resolve recipients dynamically from contact lists with filtering and exclusion
- `recipients` (array): Direct list of recipients (alternative to recipientSources)
- `scheduledAt` (string): ISO 8601 date-time for scheduled broadcast delivery (e.g., '2025-12-31T10:00:00Z'). Creates as draft if omitted.

### `neuron_get_broadcast` (~46 tokens)

Get Broadcast

Retrieve detailed information about a specific broadcast, including its status, message content, and recipient summary.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the broadcast to retrieve

### `neuron_get_broadcast_recipients` (~103 tokens)

Get Broadcast Recipients

Retrieve the paginated list of recipients for a specific broadcast with their individual delivery status.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the broadcast
- `limit` (integer): Number of recipients per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)
- `status` (string): Filter recipients by delivery status (e.g., 'delivered', 'failed', 'pending')

### `neuron_update_broadcast` (~114 tokens)

Update Broadcast

Update an existing broadcast's name, message content, or media before sending. The broadcast must still be in draft status.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the broadcast to update
- `mediaUrl` (string): New media URL to attach
- `message` (string): New message content to broadcast
- `messageType` (string): New message type (e.g., 'text', 'image', 'document')
- `name` (string): New display name or label for the broadcast

### `neuron_delete_broadcast` (~43 tokens)

Delete Broadcast

Permanently delete a broadcast and its recipient data. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the broadcast to delete

### `neuron_send_broadcast` (~53 tokens)

Send Broadcast

Send a broadcast message to all its recipients. The broadcast must be in draft status. This triggers message delivery and cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the broadcast to send

### `neuron_get_billing` (~26 tokens)

Get Billing Info

Retrieve the current billing information, subscription plan, and usage details for the organization.

### `neuron_checkout` (~48 tokens)

Checkout Subscription

Initiate a checkout session for a subscription plan upgrade. Returns a checkout URL or confirmation to complete the purchase.

Input parameters:

- `plan` (string, required): Subscription plan to purchase: 'pro' or 'business'

### `neuron_cancel_subscription` (~26 tokens)

Cancel Subscription

Cancel the current active subscription. Access continues until the end of the current billing period.

### `neuron_upload_media` (~116 tokens)

Upload Media

Upload a media file (image, video, audio, or document) by providing its base64-encoded content. Returns a URL for use in messages and broadcasts.

Input parameters:

- `base64` (string, required): Base64-encoded file content (without data URI prefix)
- `filename` (string, required): Original filename including extension (e.g., 'photo.jpg', 'report.pdf')
- `mimetype` (string, required): MIME type of the file (e.g., 'image/jpeg', 'image/png', 'application/pdf', 'video/mp4')

### `neuron_rewrite_text` (~89 tokens)

Rewrite Text

Rewrite or rephrase text using AI with specified tone, style, or instructions (e.g., make it more formal, translate, summarize).

Input parameters:

- `instruction` (string): Instructions for how to rewrite the text (e.g., 'make it more professional', 'translate to Spanish', 'summarize in 2 sentences')
- `text` (string, required): The original text to rewrite or transform

### `neuron_list_campaigns` (~89 tokens)

List Campaigns

Retrieve all campaigns for the current organization with optional status filtering and pagination.

Input parameters:

- `limit` (integer): Number of campaigns per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)
- `status` (string): Filter by campaign status: 'draft', 'active', 'paused', 'completed', 'stopped', or 'rejected'

### `neuron_get_campaign` (~43 tokens)

Get Campaign

Retrieve detailed information about a specific campaign including its status, budget, participants, and delivery metrics.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the campaign

### `neuron_campaign_marketplace` (~61 tokens)

Browse Campaign Marketplace

Browse available campaigns in the marketplace that your organization can join to earn rewards by sending messages.

Input parameters:

- `limit` (integer): Number of campaigns per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)

### `neuron_create_campaign` (~195 tokens)

Create Campaign

Create a new outreach campaign with target audience, messaging template, and schedule configuration. Requires a Pro or Business plan.

Input parameters:

- `deadline` (string, required): Campaign deadline in ISO 8601 date format (e.g., '2025-12-31')
- `description` (string): Campaign description shown in the marketplace listing
- `guidelines` (string): Instructions and guidelines for campaign participants
- `message` (string, required): The WhatsApp message template to send to contacts
- `requireMutualContact` (boolean): Only allow sends to contacts who have previously responded (default: false)
- `rewardPerDelivery` (number, required): Reward per successful delivery in kobo (e.g., 5000 = NGN 50)
- `title` (string, required): Campaign title displayed in marketplace and dashboard
- `totalBudget` (number, required): Total campaign budget in kobo (e.g., 500000 = NGN 5,000)

### `neuron_update_campaign` (~167 tokens)

Update Campaign

Update a campaign that is in 'draft' or 'rejected' status. Active or completed campaigns cannot be modified.

Input parameters:

- `deadline` (string): Updated campaign deadline in ISO 8601 date format
- `description` (string): Updated marketplace description
- `guidelines` (string): Updated participant guidelines
- `id` (string, required): Unique identifier (UUID) of the campaign to update
- `message` (string): Updated WhatsApp message template
- `requireMutualContact` (boolean): Updated mutual contact requirement setting
- `rewardPerDelivery` (number): Updated reward per delivery in kobo (e.g., 5000 = NGN 50)
- `title` (string): Updated campaign title
- `totalBudget` (number): Updated total campaign budget in kobo

### `neuron_delete_campaign` (~48 tokens)

Delete Campaign

Permanently delete a campaign that is in 'draft' status. Active or funded campaigns cannot be deleted.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the draft campaign to delete

### `neuron_submit_campaign` (~49 tokens)

Submit Campaign for Review

Submit a draft campaign for admin review and approval. The campaign must be in 'draft' status.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the draft campaign to submit for review

### `neuron_fund_campaign` (~49 tokens)

Fund Campaign

Fund an approved campaign by deducting the total budget from the organization's wallet balance. Requires sufficient wallet funds.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the approved campaign to fund

### `neuron_join_campaign` (~67 tokens)

Join Campaign

Join a marketplace campaign as a participant to earn rewards by sending messages through your WhatsApp channel.

Input parameters:

- `channelId` (string, required): Unique identifier (UUID) of your WhatsApp channel to send messages from
- `id` (string, required): Unique identifier (UUID) of the campaign to join

### `neuron_get_eligible_contacts` (~50 tokens)

Get Eligible Contacts

Retrieve contacts eligible to receive a campaign message. Respects deduplication rules and mutual contact requirements.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the campaign to check eligibility for

### `neuron_send_campaign_message` (~73 tokens)

Send Campaign Messages

Send a campaign message to selected eligible contacts via WhatsApp. Requires the campaign to be in 'active' status and contacts to be eligible.

Input parameters:

- `contactIds` (array, required): Array of contact UUIDs to send the campaign message to
- `id` (string, required): Unique identifier (UUID) of the active campaign

### `neuron_my_participations` (~63 tokens)

My Campaign Participations

Retrieve all campaigns the current organization has joined as a participant, including earnings and delivery stats.

Input parameters:

- `limit` (integer): Number of participations per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)

### `neuron_campaign_participants` (~46 tokens)

List Campaign Participants

Retrieve all participants who have joined a campaign you own, including their delivery counts and earned rewards.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the campaign you own

### `neuron_pause_campaign` (~46 tokens)

Pause Campaign

Pause an active campaign to temporarily stop message delivery. Can be resumed later with the resume action.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the active campaign to pause

### `neuron_resume_campaign` (~37 tokens)

Resume Campaign

Resume a previously paused campaign to restart message delivery.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the paused campaign to resume

### `neuron_stop_campaign` (~51 tokens)

Stop Campaign

Permanently stop an active campaign and refund the remaining unspent budget to the organization's wallet. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the active campaign to stop

### `neuron_wallet_balance` (~24 tokens)

Wallet Balance

Retrieve the current wallet balance for the organization, including available and pending amounts.

### `neuron_wallet_transactions` (~77 tokens)

Wallet Transactions

Retrieve the wallet transaction history for the organization, with optional filtering by transaction type.

Input parameters:

- `limit` (integer): Number of transactions per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)
- `type` (string): Filter by transaction type: 'credit' or 'debit'

### `neuron_fund_wallet` (~80 tokens)

Fund Wallet

Initialize a wallet funding transaction via Paystack. Returns a checkout URL to complete the payment in a browser.

Input parameters:

- `amount` (integer, required): Amount to fund in the smallest currency unit — kobo for NGN (e.g., 500000 = NGN 5,000)
- `email` (string, required): Email address to receive the payment receipt

### `neuron_verify_wallet_funding` (~45 tokens)

Verify Wallet Funding

Verify a wallet funding transaction using the Paystack payment reference to confirm the payment was successful.

Input parameters:

- `reference` (string, required): Paystack payment reference returned from the checkout session

### `neuron_verify_bank_account` (~73 tokens)

Verify Bank Account

Verify a Nigerian bank account number via Paystack to confirm the account holder name before saving.

Input parameters:

- `accountNumber` (string, required): 10-digit Nigerian bank account number to verify
- `bankCode` (string, required): Nigerian bank code (e.g., '058' for GTBank, '044' for Access Bank)

### `neuron_save_bank_account` (~113 tokens)

Save Bank Account

Save a verified bank account as the organization's payout destination. Verify the account first using neuron_verify_bank_account.

Input parameters:

- `accountName` (string, required): Account holder name as returned from bank verification
- `accountNumber` (string, required): 10-digit Nigerian bank account number
- `bankCode` (string, required): Nigerian bank code (e.g., '058' for GTBank, '044' for Access Bank)
- `bankName` (string, required): Full name of the bank (e.g., 'Guaranty Trust Bank')

### `neuron_get_bank_account` (~24 tokens)

Get Bank Account

Retrieve the saved bank account details currently configured as the organization's payout destination.

### `neuron_request_payout` (~69 tokens)

Request Payout

Request a payout to transfer funds from the organization wallet to the linked bank account. A bank account must be saved first.

Input parameters:

- `amount` (integer, required): Amount to transfer in the smallest currency unit — kobo for NGN (e.g., 100000 = NGN 1,000)

### `neuron_list_payouts` (~61 tokens)

List Payouts

Retrieve the payout history for the organization, including amounts, statuses, and timestamps.

Input parameters:

- `limit` (integer): Number of payout records per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)

### `neuron_create_blog_post` (~373 tokens)

Create Blog Post

Create a new blog post in draft or published status with specified title, content, and optional metadata such as tags, excerpt, and SEO fields. Content supports full markdown (GFM) AND raw HTML — images/GIFs via ![alt](url), videos via <video>, YouTube/Loom embeds via <iframe>, collapsible sections via <details>/<summary>, plus <mark>, <kbd>, <abbr>, <div> with inline styles, etc.

Input parameters:

- `authorType` (string, required): Whether the post is authored by an individual user or the organization
- `content` (string, required): Full body content of the blog post in markdown format. Supports raw HTML inline via rehype-raw. Rich content options: images/GIFs via ![alt](url), videos via <video src="url" controls></video>, embed…
- `coverImageUrl` (string): URL of the cover image displayed at the top of the post
- `excerpt` (string): Short summary or preview text for the blog post
- `seoDescription` (string): Meta description for search engine result snippets
- `seoKeywords` (array): List of SEO keywords for search engine optimization
- `seoTitle` (string): Custom SEO title override for search engine results
- `status` (string): Initial publication status of the post (default: 'draft')
- `tags` (array): List of tag names or slugs to categorize the post
- `title` (string, required): Title of the blog post (max 500 characters)

### `neuron_list_blog_posts` (~125 tokens)

List Blog Posts

Retrieve a paginated list of blog posts with optional filtering by status, author type, author ID, or tag.

Input parameters:

- `authorId` (string): Filter posts by author identifier (UUID)
- `authorType` (string): Filter posts by author type
- `limit` (number): Number of results per page (default: 20)
- `page` (number): Page number for pagination (default: 1)
- `status` (string): Filter posts by publication status
- `tag` (string): Filter posts by tag slug (e.g., 'announcements')

### `neuron_get_blog_post` (~49 tokens)

Get Blog Post

Retrieve a single blog post by its URL-friendly slug, including full content and metadata.

Input parameters:

- `slug` (string, required): URL-friendly slug of the blog post (e.g., 'my-first-post')

### `neuron_update_blog_post` (~211 tokens)

Update Blog Post

Update an existing blog post's content, metadata, status, or SEO fields. Only provided fields are changed.

Input parameters:

- `content` (string): New body content in markdown format. Supports raw HTML inline via rehype-raw: images/GIFs via ![alt](url), videos via <video>, YouTube/Loom embeds via <iframe>, collapsible sections via <details>/<su…
- `coverImageUrl` (string): New URL for the cover image
- `excerpt` (string): New short summary or preview text
- `id` (string, required): Unique identifier (UUID) of the blog post to update
- `seoDescription` (string): New meta description for search engines
- `seoKeywords` (array): New list of SEO keywords
- `seoTitle` (string): New custom SEO title override
- `status` (string): New publication status for the post
- `title` (string): New title for the blog post

### `neuron_delete_blog_post` (~44 tokens)

Delete Blog Post

Permanently delete a blog post by its ID. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the blog post to delete

### `neuron_publish_blog_post` (~48 tokens)

Publish Blog Post

Publish a blog post, making it publicly visible. The post must be in 'draft' status.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the blog post to publish

### `neuron_list_newsletters` (~85 tokens)

List Newsletters

Retrieve a paginated list of all WhatsApp Channel newsletters for the organization, with optional filtering by WhatsApp session channel.

Input parameters:

- `channelId` (string): Filter newsletters by WhatsApp session channel identifier (UUID)
- `limit` (integer): Number of items per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)

### `neuron_create_newsletter` (~88 tokens)

Create Newsletter

Create a new WhatsApp Channel newsletter for one-way broadcast updates. Requires a connected Baileys session on the specified channel.

Input parameters:

- `channelId` (string, required): Identifier (UUID) of the WhatsApp session channel to create the newsletter on
- `description` (string): Description of the newsletter's purpose and content
- `name` (string, required): Display name of the newsletter visible to subscribers

### `neuron_get_newsletter` (~44 tokens)

Get Newsletter

Retrieve detailed information about a specific WhatsApp Channel newsletter, including subscriber count and metadata.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the newsletter to retrieve

### `neuron_update_newsletter` (~71 tokens)

Update Newsletter

Update the name or description of an existing WhatsApp Channel newsletter. Only provided fields are changed.

Input parameters:

- `description` (string): New description for the newsletter
- `id` (string, required): Unique identifier (UUID) of the newsletter to update
- `name` (string): New display name for the newsletter

### `neuron_delete_newsletter` (~48 tokens)

Delete Newsletter

Permanently delete a WhatsApp Channel newsletter and remove it from WhatsApp. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the newsletter to delete

### `neuron_post_to_newsletter` (~122 tokens)

Post to Newsletter

Post a message to a WhatsApp Channel newsletter. All subscribers receive the message. Provide at least one of text or mediaUrl. This triggers delivery and cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the newsletter to post to
- `mediaUrl` (string): URL of the media file to attach (required for image, video, or document types)
- `messageType` (string): Type of message to send (default: 'text')
- `text` (string): Message text or caption to post to the newsletter

### `neuron_refresh_newsletter` (~52 tokens)

Refresh Newsletter

Re-fetch metadata (name, description, subscriber count) for a WhatsApp Channel newsletter from WhatsApp to synchronize local data.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the newsletter to refresh

### `neuron_sync_newsletters` (~57 tokens)

Sync Newsletters

Synchronize and import WhatsApp Channels from a connected WhatsApp session into Neuron. Discovers channels created outside Neuron.

Input parameters:

- `channelId` (string, required): Identifier (UUID) of the WhatsApp session channel to sync newsletters from

### `neuron_browse_list_pool` (~126 tokens)

Browse List Pool

Browse verified contact lists available in the shared marketplace pool. Filter by category, region, or search term.

Input parameters:

- `category` (string): Filter by audience category (e.g., 'delivery', 'tech', 'consumers')
- `limit` (number): Number of items per page (default: 20)
- `page` (number): Page number for pagination (default: 1)
- `region` (string): Filter by geographic region (e.g., 'lagos', 'abuja')
- `search` (string): Search term to filter by description or category

### `neuron_submit_to_list_pool` (~157 tokens)

Submit List to Pool

Submit a contact list to the shared pool marketplace for other organizations to discover and use for ad distribution.

Input parameters:

- `category` (string, required): Audience category (e.g., 'delivery', 'tech', 'consumers', 'food')
- `channelId` (string, required): Unique identifier (UUID) of the WhatsApp channel used for sending messages
- `demographics` (object): Demographic information about the contact list audience
- `description` (string): Human-readable description of the audience and its characteristics
- `listId` (string, required): Unique identifier (UUID) of the contact list to submit
- `pricePerDelivery` (number, required): Price per successful message delivery in kobo (e.g., 5000 = NGN 50)

### `neuron_create_ad_request` (~170 tokens)

Create Ad Request

Create an ad distribution request to send a message to contacts in pool lists matching target demographics. Deducts from wallet upon approval.

Input parameters:

- `budget` (number, required): Total ad budget in kobo (e.g., 500000 = NGN 5,000)
- `mediaUrl` (string): Media URL for non-text messages (required when messageType is 'image', 'video', or 'document')
- `message` (string, required): The ad message content to distribute to matched contacts
- `messageType` (string): Message content type: 'text', 'image', 'video', or 'document' (default: 'text')
- `targetDemographics` (object, required): Demographic criteria to match against pool list entries
- `targetGoal` (number, required): Target number of successful message deliveries

### `neuron_list_ad_requests` (~93 tokens)

List Ad Requests

Retrieve all ad requests for the current organization with optional status filtering and pagination.

Input parameters:

- `limit` (number): Number of items per page (default: 20)
- `page` (number): Page number for pagination (default: 1)
- `status` (string): Filter by request status: 'draft', 'pending_review', 'approved', 'active', 'paused', 'completed', or 'rejected'

### `neuron_get_ad_request_analytics` (~53 tokens)

Get Ad Request Analytics

Retrieve delivery analytics and performance breakdown for a specific ad request, including delivery rates and cost metrics.

Input parameters:

- `adRequestId` (string, required): Unique identifier (UUID) of the ad request to get analytics for

### `neuron_get_ad_request` (~46 tokens)

Get Ad Request

Get detailed information about a specific ad request, including pool selections if targeting mode is manual.

Input parameters:

- `adRequestId` (string, required): Unique identifier (UUID) of the ad request

### `neuron_update_ad_request` (~229 tokens)

Update Ad Request

Update a draft or rejected ad request. Only draft and rejected ad requests can be edited. Rejected requests revert to draft on update.

Input parameters:

- `adRequestId` (string, required): Unique identifier (UUID) of the ad request to update
- `budget` (number): Updated budget in kobo
- `mediaUrl` (string): Updated media URL (set to null to clear)
- `message` (string): Updated ad message content
- `messageType` (string): Updated message type: 'text', 'image', 'video', or 'document'
- `selectedGroupPoolEntryIds` (array): Group pool entry UUIDs for manual group targeting
- `selectedPoolEntryIds` (array): Pool entry UUIDs for manual contact targeting
- `targetDemographics` (object): Updated demographic targeting criteria
- `targetGoal` (number): Updated target number of deliveries
- `targetType` (string): Target type: 'contacts' or 'groups'
- `targetingMode` (string): Targeting mode: 'auto' for system matching or 'manual' for hand-picked pool entries

### `neuron_delete_ad_request` (~49 tokens)

Delete Ad Request

Permanently delete a draft ad request. Only ad requests in draft status can be deleted.

Input parameters:

- `adRequestId` (string, required): Unique identifier (UUID) of the draft ad request to delete

### `neuron_submit_ad_request` (~62 tokens)

Submit Ad Request for Review

Submit a draft ad request for admin review. The request must be in draft status. After submission, an admin must approve it before it can be funded.

Input parameters:

- `adRequestId` (string, required): Unique identifier (UUID) of the draft ad request to submit

### `neuron_fund_ad_request` (~70 tokens)

Fund Ad Request

Fund an approved ad request from the organization wallet. This debits the budget amount and activates the campaign for distribution. If wallet balance is insufficient, returns shortfall information instead of an error.

Input parameters:

- `adRequestId` (string, required): Unique identifier (UUID) of the approved ad request to fund

### `neuron_pause_ad_request` (~51 tokens)

Pause Ad Request

Pause an active ad request campaign. Distribution stops until resumed. Only active ad requests can be paused.

Input parameters:

- `adRequestId` (string, required): Unique identifier (UUID) of the active ad request to pause

### `neuron_resume_ad_request` (~54 tokens)

Resume Ad Request

Resume a paused ad request campaign. Distribution resumes from where it left off. Only paused ad requests can be resumed.

Input parameters:

- `adRequestId` (string, required): Unique identifier (UUID) of the paused ad request to resume

### `neuron_stop_ad_request` (~57 tokens)

Stop Ad Request

Stop an active or paused ad request campaign permanently. Any remaining unspent budget is refunded to the organization wallet. This cannot be undone.

Input parameters:

- `adRequestId` (string, required): Unique identifier (UUID) of the ad request to stop

### `neuron_send_reaction` (~115 tokens)

Send Reaction

Send or remove an emoji reaction on a WhatsApp message. Pass an empty emoji string to remove a reaction.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `emoji` (string, required): Emoji character (e.g. '👍', '❤️'), or empty string to remove reaction
- `messageId` (string, required): WhatsApp message ID to react to
- `to` (string, required): Chat JID (e.g. '2348012345678@s.whatsapp.net' or group JID)

### `neuron_send_sticker` (~70 tokens)

Send Sticker

Send a WebP sticker image via WhatsApp. Only supported on Baileys channels.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `stickerUrl` (string, required): URL to a WebP sticker image
- `to` (string, required): Recipient JID or phone number

### `neuron_send_location` (~98 tokens)

Send Location

Send a location pin via WhatsApp with coordinates and optional name/address.

Input parameters:

- `address` (string): Street address
- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `latitude` (number, required): Latitude in decimal degrees
- `longitude` (number, required): Longitude in decimal degrees
- `name` (string): Location name (e.g. 'Eko Hotel')
- `to` (string, required): Recipient JID or phone number

### `neuron_send_contact_card` (~105 tokens)

Send Contact Card

Send a vCard contact card via WhatsApp with name, phone, and optional organization.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `contactName` (string, required): Full name of the contact to share
- `contactOrg` (string): Organization or company name
- `contactPhone` (string, required): Phone number in international format (e.g. '+2348012345678')
- `to` (string, required): Recipient JID or phone number

### `neuron_forward_message` (~86 tokens)

Forward Message

Forward a WhatsApp message from one chat to another. Uses copy-send approach — the message content is re-sent to the destination.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `from` (string, required): Source chat JID
- `messageId` (string, required): WhatsApp message ID to forward
- `to` (string, required): Destination chat JID

### `neuron_mark_as_read` (~71 tokens)

Mark as Read

Mark a WhatsApp message as read, sending read receipts to the sender.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `chatJid` (string, required): Chat JID the message belongs to
- `messageId` (string, required): WhatsApp message ID to mark as read

### `neuron_set_presence` (~68 tokens)

Set Presence

Set typing indicator or online/offline presence on a WhatsApp chat. Only supported on Baileys channels.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `to` (string, required): Chat JID to set presence for
- `type` (string, required): Presence type

### `neuron_get_group_invite_link` (~69 tokens)

Get Group Invite Link

Get the invite link for a WhatsApp group. Only supported on Baileys channels where the bot is a group admin.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `groupJid` (string, required): Group JID (ending in @g.us)

### `neuron_update_group_subject` (~74 tokens)

Update Group Subject

Update the name/subject of a WhatsApp group. Requires the bot to be a group admin.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `groupJid` (string, required): Group JID (ending in @g.us)
- `subject` (string, required): New group name/subject

### `neuron_update_group_description` (~77 tokens)

Update Group Description

Update the description of a WhatsApp group. Requires the bot to be a group admin.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `description` (string, required): New group description (can be empty string to clear)
- `groupJid` (string, required): Group JID (ending in @g.us)

### `neuron_update_group_settings` (~97 tokens)

Update Group Settings

Change WhatsApp group settings: 'announcement' (only admins send), 'not_announcement' (everyone sends), 'locked' (only admins edit info), 'unlocked' (everyone edits info). Requires admin.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `groupJid` (string, required): Group JID (ending in @g.us)
- `setting` (string, required): Group setting to apply

### `neuron_update_group_members` (~118 tokens)

Update Group Members

Add, remove, promote, or demote members in a WhatsApp group. Provide phone numbers or JIDs. Requires admin privileges.

Input parameters:

- `action` (string, required): Action to perform on the participants
- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `groupJid` (string, required): Group JID (ending in @g.us)
- `participants` (array, required): Array of phone numbers or JIDs (e.g. ['2348012345678'] or ['2348012345678@s.whatsapp.net'])

### `neuron_set_group_join_approval` (~91 tokens)

Set Group Join Approval

Enable or disable join approval mode for a WhatsApp group. When enabled, join requests must be manually approved by admins. Requires admin.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `enabled` (boolean, required): true to require admin approval for joins, false to allow direct joins
- `groupJid` (string, required): Group JID (ending in @g.us)

### `neuron_handle_join_requests` (~91 tokens)

Handle Join Requests

Approve or reject pending join requests for a WhatsApp group. Requires admin privileges.

Input parameters:

- `action` (string, required): Whether to approve or reject the join requests
- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `groupJid` (string, required): Group JID (ending in @g.us)
- `participants` (array, required): Array of phone numbers or JIDs of requesters

### `neuron_revoke_group_invite` (~67 tokens)

Revoke Group Invite

Revoke the current group invite link and generate a new one. The old link will stop working. Requires admin.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `groupJid` (string, required): Group JID (ending in @g.us)

### `neuron_leave_group` (~67 tokens)

Leave Group

Make the bot leave a WhatsApp group. This action is irreversible — the bot will need to be re-added by an admin.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `groupJid` (string, required): Group JID (ending in @g.us)

### `neuron_send_poll` (~118 tokens)

Send Poll

Send a poll message via WhatsApp. Polls support 2-12 options and optional multi-select. Only supported on Baileys channels.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `name` (string, required): Poll question/title
- `options` (array, required): Poll answer options (2-12 items)
- `selectableCount` (integer): Max selections allowed. 0 = unlimited (default). 1 = single-choice.
- `to` (string, required): Recipient JID or phone number (individual or group)

### `neuron_update_profile_name` (~47 tokens)

Update Profile Name

Update the bot's WhatsApp display name on the given channel.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `name` (string, required): New display name

### `neuron_update_profile_picture` (~54 tokens)

Update Profile Picture

Update the bot's WhatsApp profile picture from an image URL.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `imageUrl` (string, required): URL of the image to set as profile picture

### `neuron_remove_profile_picture` (~38 tokens)

Remove Profile Picture

Remove the bot's WhatsApp profile picture, reverting to the default.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)

### `neuron_update_profile_status` (~47 tokens)

Update Profile Status

Update the bot's WhatsApp status/bio text.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `status` (string, required): New status/bio text

### `neuron_get_privacy_settings` (~51 tokens)

Get Privacy Settings

Fetch the bot's current WhatsApp privacy settings (last seen, online, profile picture, status, read receipts, groups add).

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)

### `neuron_update_privacy_setting` (~127 tokens)

Update Privacy Setting

Update a specific WhatsApp privacy setting. Settings: lastSeen (all/contacts/contact_blacklist/none), online (all/match_last_seen), profilePicture (all/contacts/contact_blacklist/none), status (all/contacts/contact_blacklist/none), readReceipts (all/none), groupsAdd (all/contacts/contact_blacklist).

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `setting` (string, required): Privacy setting to update
- `value` (string, required): New value for the setting (see description for allowed values per setting)

### `neuron_block_contact` (~78 tokens)

Block Contact

Block a WhatsApp contact. Blocked contacts cannot message the bot or see its profile.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `jid` (string, required): Contact JID or phone number to block (e.g. '2348012345678' or '2348012345678@s.whatsapp.net')

### `neuron_unblock_contact` (~48 tokens)

Unblock Contact

Unblock a previously blocked WhatsApp contact.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `jid` (string, required): Contact JID or phone number to unblock

### `neuron_get_blocklist` (~41 tokens)

Get Blocklist

Fetch the list of all blocked WhatsApp contacts for the bot on the given channel.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)

### `neuron_get_business_profile` (~84 tokens)

Get Business Profile

Fetch the WhatsApp Business profile of an external contact, including description, website, category, and business hours.

Input parameters:

- `channelId` (string, required): WhatsApp channel identifier (UUID)
- `jid` (string, required): Contact JID or phone number to look up (e.g. '2348012345678' or '2348012345678@s.whatsapp.net')

### `neuron_list_social_channels` (~27 tokens)

List Social Channels

Retrieve all social media channels (Instagram, Twitter/X) configured in the current organization.

### `neuron_create_social_channel` (~117 tokens)

Create Social Channel

Create a new social media channel with platform credentials. Supports Instagram and Twitter/X. Credentials should be the full session JSON including account, cookies, headers, and platform-specific tokens.

Input parameters:

- `credentials` (string): Session credentials as JSON string with account, session.cookies, session.headers, etc.
- `label` (string, required): Display name for the channel (e.g., 'Brand IG Account')
- `platform` (string, required): Social media platform: 'instagram' or 'twitter'
- `username` (string): Social media username (without @)

### `neuron_get_social_channel` (~47 tokens)

Get Social Channel

Retrieve detailed information about a specific social media channel, including its platform, credentials status, and connection state.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the social channel

### `neuron_update_social_channel` (~82 tokens)

Update Social Channel

Update an existing social media channel. Can update label, username, or refresh credentials.

Input parameters:

- `credentials` (string): Updated session credentials as JSON string
- `id` (string, required): Unique identifier (UUID) of the social channel to update
- `label` (string): New display name for the channel
- `username` (string): Updated social media username

### `neuron_delete_social_channel` (~47 tokens)

Delete Social Channel

Permanently delete a social media channel and disconnect any active sessions. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the social channel to delete

### `neuron_start_social_channel_session` (~48 tokens)

Start Social Channel Session

Start or reconnect a social media session for the channel. Initializes the platform client with stored credentials.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the social channel to start

### `neuron_stop_social_channel_session` (~46 tokens)

Stop Social Channel Session

Stop the active session for a social media channel. The channel can be restarted later.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the social channel to stop

### `neuron_get_social_channel_status` (~47 tokens)

Get Social Channel Status

Retrieve the current session status for a social media channel (e.g., connected, disconnected, error).

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the social channel

### `neuron_validate_social_channel` (~50 tokens)

Validate Social Channel

Test whether the stored credentials for a social channel are still valid by making a test API call to the platform.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the social channel to validate

### `neuron_assign_bot_to_social_channel` (~75 tokens)

Assign Bot to Social Channel

Assign a bot to handle interactions on a specific social media channel. The bot will be able to use the channel's credentials for social media actions.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to assign
- `id` (string, required): Unique identifier (UUID) of the social channel

### `neuron_unassign_bot_from_social_channel` (~77 tokens)

Unassign Bot from Social Channel

Remove the bot assignment from a social media channel. The bot will lose access to the channel's social media credentials.

Input parameters:

- `botId` (string, required): Unique identifier (UUID) of the bot to unassign
- `id` (string, required): Unique identifier (UUID) of the social channel to unassign the bot from

### `neuron_list_scheduled_messages` (~95 tokens)

List Scheduled Messages

Retrieve a paginated list of scheduled messages for the current organization, with optional filtering by status (scheduled, sent, failed, cancelled).

Input parameters:

- `limit` (integer): Number of items per page (default: 20)
- `page` (integer): Page number for pagination (default: 1)
- `status` (string): Filter by status: 'scheduled', 'sent', 'failed', or 'cancelled'

### `neuron_get_scheduled_message` (~47 tokens)

Get Scheduled Message

Retrieve detailed information about a specific scheduled message, including its status, send time, and message content.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the scheduled message

### `neuron_update_scheduled_message` (~144 tokens)

Update Scheduled Message

Update the message content, media, or send time of a scheduled message. Only messages with status 'scheduled' can be updated.

Input parameters:

- `contactName` (string): Updated display name for the recipient
- `id` (string, required): Unique identifier (UUID) of the scheduled message to update
- `mediaUrl` (string): New media URL to attach
- `message` (string): New message text content
- `messageType` (string): New message type: 'text', 'image', 'audio', 'video', or 'document'
- `sendAt` (string): New ISO 8601 date-time for scheduled delivery (must be in the future)

### `neuron_cancel_scheduled_message` (~57 tokens)

Cancel Scheduled Message

Cancel a scheduled message to prevent it from being sent. Only messages with status 'scheduled' can be cancelled. This action cannot be undone.

Input parameters:

- `id` (string, required): Unique identifier (UUID) of the scheduled message to cancel

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/conquext-neuron/mcp#diagnostics

## Score history

- 2026-08-03: 70
- 2026-08-02: 69
- 2026-08-01: 69
- 2026-07-31: 68
- 2026-07-30: 68
- 2026-07-29: 67
- 2026-07-28: 66
- 2026-07-27: 66
- 2026-07-26: 65

## Links

- Remote endpoint: https://mcp.neuron.ng/mcp
- Changelog RSS feed: https://verifymcp.io/servers/conquext-neuron/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/conquext-neuron/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/conquext-neuron/mcp
