io.github.conquext/neuron
REMOTE · MCP.NEURON.NG · 2 COMPONENTS · SCANNED SEP 20
AI-powered WhatsApp chatbot platform with 196 tools for bots, campaigns, and contacts.
Available components
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. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (neuron_delete_bot). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability81
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 36562 tokens (~95/item across 383 items; 383 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 97% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 58 of 59 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "neuron_test_tool" implies "execute" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
- An AI judge read all 383 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.conquext/neuron MCP server?
io.github.conquext/neuron is a hosted endpoint at https://mcp.neuron.ng/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.neuron.ng
claude mcp add --transport http conquext-neuron 'https://mcp.neuron.ng/mcp'
{
"mcpServers": {
"conquext-neuron": {
"url": "https://mcp.neuron.ng/mcp"
}
}
} {
"servers": {
"conquext-neuron": {
"type": "http",
"url": "https://mcp.neuron.ng/mcp"
}
}
} [mcp_servers.conquext-neuron] url = "https://mcp.neuron.ng/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"conquext-neuron": {
"type": "remote",
"url": "https://mcp.neuron.ng/mcp",
"enabled": true
}
}
} openclaw mcp add conquext-neuron --url 'https://mcp.neuron.ng/mcp' --transport streamable-http
mcp_servers:
conquext-neuron:
url: "https://mcp.neuron.ng/mcp" {
"McpServers": {
"conquext-neuron": {
"Transport": "http",
"Url": "https://mcp.neuron.ng/mcp"
}
}
} assistant mcp add conquext-neuron -t streamable-http -u 'https://mcp.neuron.ng/mcp'
{
"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.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 0
- New tool “neuron_delete_flow_run”, which the server declares destructive security
- 15 Sept 26 0
- Tool “neuron_delete_persona” is now declared destructive security
- 14 Sept 26 0
- New tool “neuron_delete_event”, which the server declares destructive security
- New tool “neuron_delete_event_type”, which the server declares destructive security
- New tool “neuron_delete_override”, which the server declares destructive security
- New tool “neuron_delete_calendar”, which the server declares destructive security
- New tool “neuron_get_availability” functional
- New tool “neuron_get_available_slots” functional
- New tool “neuron_get_booking” functional
- New tool “neuron_get_calendar” functional
- New tool “neuron_get_event_type” functional
- New tool “neuron_google_calendar_disconnect” functional
- New tool “neuron_list_bookings” functional
- New tool “neuron_list_calendars” functional
- New tool “neuron_list_event_types” functional
- New tool “neuron_list_events” functional
- New tool “neuron_list_overrides” functional
- New tool “neuron_mark_no_show” functional
- New tool “neuron_reschedule_booking” functional
- New tool “neuron_set_override” functional
- New tool “neuron_team_availability” functional
- New tool “neuron_update_availability” functional
- New tool “neuron_update_booking_notes” functional
- New tool “neuron_update_calendar” functional
- New tool “neuron_update_event” functional
- New tool “neuron_update_event_type” functional
- New tool “neuron_google_calendar_status” functional
- New tool “neuron_complete_booking” functional
- New tool “neuron_confirm_booking” functional
- New tool “neuron_create_calendar” functional
- New tool “neuron_create_event” functional
- New tool “neuron_create_event_type” functional
- New tool “neuron_cancel_booking” functional
- 7 Sept 26 0
- New tool “neuron_delete_sms_campaign”, which the server declares destructive security
- New tool “neuron_list_sms_campaigns” functional
- New tool “neuron_get_sms_campaign” functional
- New tool “neuron_estimate_sms_campaign” functional
- New tool “neuron_pause_sms_campaign” functional
- New tool “neuron_resume_sms_campaign” functional
- New tool “neuron_send_sms_campaign” functional
- New tool “neuron_create_sms_campaign” functional
- “neuron_browse_list_pool” added an optional parameter “smsEnabled” cosmetic
- 6 Sept 26 0
- New tool “neuron_webagent_kill”, which the server declares destructive security
- New tool “neuron_webagent_stop”, which the server declares destructive security
- New tool “neuron_studio_transform_video” functional
- New tool “neuron_studio_transform_video_status” functional
- New tool “neuron_studio_upload_media” functional
- New tool “neuron_studio_voiceover” functional
- New tool “neuron_webagent_command_history” functional
- New tool “neuron_webagent_get_run” functional
- New tool “neuron_webagent_list_runs” functional
- New tool “neuron_webagent_open_launcher” functional
- New tool “neuron_webagent_run” functional
- New tool “neuron_studio_render” functional
- New tool “neuron_get_collection” functional
- New tool “neuron_get_collection_items” functional
- New tool “neuron_list_collections” functional
- New tool “neuron_studio_agent” functional
- New tool “neuron_studio_apply” functional
- New tool “neuron_studio_catalog” functional
- New tool “neuron_studio_generate_image” functional
- New tool “neuron_studio_generate_video” functional
- New tool “neuron_studio_generate_video_status” functional
- New tool “neuron_studio_import_media_url” functional
- New tool “neuron_studio_make” functional
- New tool “neuron_studio_rehost_media” functional
- New tool “neuron_studio_render_status” functional
- New tool “neuron_studio_save” functional
- New tool “neuron_studio_transcribe” functional
- 5 Sept 26 0
- New tool “neuron_enroll_members” functional
- 4 Sept 26 0
- New tool “neuron_remove_group_members”, which the server declares destructive security
- Tool “neuron_create_blog_post” rewrote its description, which is the text the model reads security
- Server version: 1.0.0 → 1.1.2 functional
- New tool “neuron_add_group_members” functional
- New tool “neuron_create_group” functional
- New tool “neuron_product_members” functional
- “neuron_update_product” added an optional parameter “membershipGraceDays” cosmetic
- “neuron_update_product” added an optional parameter “membershipGroupName” cosmetic
- “neuron_update_product” added an optional parameter “membershipGroupSlug” cosmetic
- “neuron_update_product” added an optional parameter “membershipInterval” cosmetic
- “neuron_update_blog_post” added an optional parameter “blocks” cosmetic
- “neuron_update_blog_post” added an optional parameter “tags” cosmetic
- “neuron_create_product” added an optional parameter “membershipInterval” cosmetic
- “neuron_create_product” added an optional parameter “membershipGroupSlug” cosmetic
- “neuron_create_product” added an optional parameter “membershipGroupName” cosmetic
- “neuron_create_product” added an optional parameter “membershipGraceDays” cosmetic
- “neuron_create_product” added an optional parameter “membership” cosmetic
- “neuron_create_blog_post” added an optional parameter “blocks” cosmetic
- “neuron_update_product” added an optional parameter “membership” cosmetic
- “neuron_create_blog_post” reworded the description of “content” cosmetic
- “neuron_update_blog_post” reworded the description of “content” cosmetic
- “neuron_create_blog_post” made “content” optional cosmetic
- 2 Sept 26 0
- New tool “neuron_duplicate_product” functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Probed https://mcp.neuron.ng/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=neuron.ng | CN=YE2,O=Let's Encrypt,C=US | 9 Sept 2026 | 8 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 57fed84ef3ca6edac3d49081ce603332901 |
| SANs: *.neuron.ng, neuron.ng | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.neuron.ng. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ng. | present | 45566 | 13 | Verified |
| neuron.ng. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000 |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.neuron.ng/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.neuron.ng/mcp | HTTPS enforced | 301 | https://mcp.neuron.ng/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
neuron_add_bot_channel Add Bot Channel ~70
Connect an additional WhatsApp channel to a bot as a secondary number. The bot will respond to messages on this channel.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | yes | Unique identifier (UUID) of the bot |
| channelId | string | yes | Unique identifier (UUID) of the WhatsApp channel to connect |
No output schema declared.
No examples provided.
neuron_add_group_members Add Members to Group ~186
Add members to an existing group, resolved from any combination of sources (other groups, contact lists, contacts, pasted phones, all contacts). Address the group by its id, slug, or JID.
| Name | Type | Req | Description |
|---|---|---|---|
| allContacts | boolean | – | Union the org's entire address book |
| contactIds | array | – | Existing contact ids |
| excludeListIds | array | – | Subtract every member of these lists |
| fromGroupIds | array | – | Copy/combine members live from these WhatsApp group JIDs |
| group | string | yes | Group id, slug, or JID (ending in @g.us) |
| listIds | array | – | Contact list ids or slugs — pulls every member |
| phones | array | – | Raw phone numbers, e.g. pasted from a CSV |
| tags | array | – | Keep only contacts carrying one of these tags |
No output schema declared.
No examples provided.
neuron_add_product_codes Add Product Codes ~65
Add more unique codes/keys to a 'pool' code product's stock. Each buyer receives one. Returns the product with the new remaining count.
| Name | Type | Req | Description |
|---|---|---|---|
| codes | array | yes | Unique codes/keys to append to the pool |
| id | string | yes | Product UUID |
No output schema declared.
No examples provided.
neuron_add_to_contact_list Add to Contact List ~83
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.
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | yes | Array of contacts to add, each identified by contactId or phone number |
| idOrSlug | string | yes | Unique identifier (UUID) or URL-friendly slug of the target contact list |
No output schema declared.
No examples provided.
neuron_add_tool_secret Add Tool Secret ~96
Store or update a secret credential (API key, token, etc.) for a custom tool integration. Secrets are encrypted at rest.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Unique identifier (UUID) of the tool to add the secret to |
| key | string | yes | Secret key name used in templates (e.g., 'API_KEY', 'AUTH_TOKEN') |
| value | string | yes | Secret value to store securely (will be encrypted) |
No output schema declared.
No examples provided.
neuron_apply_persona_to_bot Apply Persona Voice to Bot ~83
Give a bot this persona's voice: merges a delimited voice block into the bot's system prompt (idempotent — re-applying or swapping personas replaces it cleanly) and tags the bot's metadata with the persona id.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | yes | Bot UUID to apply the voice to. |
| id | string | yes | Persona UUID |
No output schema declared.
No examples provided.
neuron_apply_to_sell Apply to Sell ~47
Apply for seller access (digital products). Requires a Pro plan or higher; a platform admin then grants access.
| Name | Type | Req | Description |
|---|---|---|---|
| pitch | string | – | Short note on what you plan to sell |
No output schema declared.
No examples provided.
neuron_approve_reflection Approve Reflection ~48
Approve a bot-generated reflection to incorporate the learned insight into the bot's future behavior and responses.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Unique identifier (UUID) of the reflection to approve |
No output schema declared.
No examples provided.
neuron_assign_bot_to_channel Assign Bot to Channel ~65
Assign a bot to handle incoming messages on a specific WhatsApp channel. Replaces any previously assigned bot.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | yes | Unique identifier (UUID) of the bot to assign |
| id | string | yes | Unique identifier (UUID) of the channel |
No output schema declared.
No examples provided.
neuron_assign_bot_to_social_channel Assign Bot to Social Channel ~75
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.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | yes | Unique identifier (UUID) of the bot to assign |
| id | string | yes | Unique identifier (UUID) of the social channel |
No output schema declared.
No examples provided.
neuron_attach_knowledge_base Attach Knowledge Base ~93
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Unique identifier (UUID) of the bot |
| knowledgeBaseId | string | yes | Unique identifier (UUID) of the knowledge base to attach |
| priority | number | – | Priority level for knowledge base retrieval (higher values are checked first) |
No output schema declared.
No examples provided.
neuron_audio_contact Extract Contact from Audio ~78
Transcribe an audio recording and extract contact information (name, phone, email, notes, tags). Automatically saves the extracted contact to the organization's address book.
| Name | Type | Req | Description |
|---|---|---|---|
| audioBase64 | string | yes | Base64-encoded audio data containing spoken contact information |
| audioFormat | string | – | Audio format hint for decoding (default: 'webm') |
No output schema declared.
No examples provided.
neuron_block_contact Block Contact ~78
Block a WhatsApp contact. Blocked contacts cannot message the bot or see its profile.
| Name | Type | Req | Description |
|---|---|---|---|
| channelId | string | yes | WhatsApp channel identifier (UUID) |
| jid | string | yes | Contact JID or phone number to block (e.g. '2348012345678' or '2348012345678@s.whatsapp.net') |
No output schema declared.
No examples provided.
neuron_bot_api_chat Bot API Chat ~122
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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | yes | Bot API key with 'nrn_' prefix for authentication |
| contactName | string | – | Display name of the contact for conversation context |
| contactPhone | string | yes | Phone number of the contact sending the message (E.164 format, e.g., '+2348012345678') |
| message | string | yes | The message text to send to the bot |
No output schema declared.
No examples provided.
neuron_bot_api_get_bot Bot API Get Bot ~45
Retrieve configuration and status information about the bot associated with the provided API key.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | yes | Bot API key with 'nrn_' prefix for authentication |
No output schema declared.
No examples provided.
neuron_bot_api_get_messages Bot API Get Messages ~110
Retrieve message history for a specific conversation with cursor-based pagination. Requires a valid API key.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | yes | 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 | yes | Unique identifier (UUID) of the conversation to retrieve messages from |
| limit | number | – | Maximum number of messages to return (default: 50) |
No output schema declared.
No examples provided.
neuron_bot_api_list_conversations Bot API List Conversations ~109
Retrieve a paginated list of conversations managed by the bot. Supports filtering by conversation status. Requires a valid API key.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | yes | 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' |
No output schema declared.
No examples provided.
neuron_bot_api_send Bot API Send ~226
Send an outbound message through the bot API to a specified phone number. Supports text and media messages. Requires a valid API key.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | yes | 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 | yes | 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 | yes | Recipient's phone number (E.164 format, e.g., '+2348012345678') |
No output schema declared.
No examples provided.
neuron_browse_list_pool Browse List Pool ~153
Browse verified contact lists available in the shared marketplace pool. Filter by category, region, or search term.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
| smsEnabled | boolean | – | Only return lists whose owner opted into SMS campaigns (usable as curated audiences for neuron_create_sms_campaign) |
No output schema declared.
No examples provided.
neuron_browse_pool Browse Pool ~151
Browse the shared marketplace pool of published bots, tools, knowledge bases, and reflections with optional filtering by type, category, tags, or search query.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No output schema declared.
No examples provided.
neuron_build_persona Build Persona from Collection ~136
Distill a reusable voice from a Collection of mined content: analyzes the top-engagement items and reverse-engineers a voiceProfile (tone, diction, cadence, emoji/formatting habits, themes, dos/donts) + representative exemplars. Requires the collection to have >=3 usable samples. Runs an LLM call (a few seconds).
| Name | Type | Req | Description |
|---|---|---|---|
| collectionId | string | yes | Source Collection UUID (built by the web agent / content mining). |
| name | string | – | Persona name. Defaults to '<collection name> voice'. |
| sampleLimit | integer | – | How many top-engagement items to analyze (default 40). |
No output schema declared.
No examples provided.
neuron_build_persona_from_conversation Build Persona from WhatsApp Chat ~182
Distill a reusable voice from an existing WhatsApp conversation's stored messages — no extension needed. `author` picks whose voice: 'me' (owner's own outgoing texts), 'contact' (the other party), 'bot', or 'any'. For a group chat, pass senderName/senderPhone to isolate one participant. Requires >=3 usable text messages. Runs an LLM call.
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Whose voice to capture. Default 'me'. |
| conversationId | string | yes | Conversation UUID (from neuron_list_conversations). |
| limit | integer | – | How many recent messages to read (default 200). |
| name | string | – | – |
| senderName | string | – | For groups: match one participant by display name. |
| senderPhone | string | – | For groups: match one participant by phone. |
No output schema declared.
No examples provided.
neuron_build_persona_from_text Build Persona from Text ~272
Distill a reusable voice from raw text — no Collection or browser extension needed. Feed it pasted posts, a chat/dialogue transcript, WhatsApp-export text, or your own well-crafted writing sample, and it reverse-engineers a voiceProfile (tone, diction, cadence, emoji/formatting habits, themes, dos/donts) + exemplars. Provide `text` (auto-split into samples) and/or `samples` (already-split). Runs an LLM call (a few seconds).
| Name | Type | Req | Description |
|---|---|---|---|
| authorLabel | string | – | Who the voice belongs to, for a more grounded analysis. |
| description | string | – | – |
| name | string | – | Persona name. Defaults to '<author> voice' or 'Custom voice'. |
| platform | string | – | Optional metadata tag for the samples (e.g. 'whatsapp', 'x'). |
| samples | array | – | Pre-split writing samples (alternative or addition to `text`). |
| speaker | string | – | If `text` is a chat transcript, keep only this speaker's lines (name match) — so a group chat yields one person's voice. |
| text | string | – | A raw blob to distill: posts, a dialogue, a chat transcript, or a writing sample. Auto-split into samples. |
No output schema declared.
No examples provided.
neuron_bulk_toggle_builtin_tools Bulk Toggle Built-in Tools ~68
Enable or disable multiple built-in tools at once for a bot. More efficient than toggling tools individually.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | yes | Unique identifier (UUID) of the bot to update tools for |
| settings | array | yes | Array of tool toggle settings to apply in bulk |
No output schema declared.
No examples provided.
neuron_campaign_marketplace Browse Campaign Marketplace ~61
Browse available campaigns in the marketplace that your organization can join to earn rewards by sending messages.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of campaigns per page (default: 20) |
| page | integer | – | Page number for pagination (default: 1) |
No output schema declared.
No examples provided.
neuron_campaign_participants List Campaign Participants ~46
Retrieve all participants who have joined a campaign you own, including their delivery counts and earned rewards.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Unique identifier (UUID) of the campaign you own |
No output schema declared.
No examples provided.
neuron_cancel_approval Cancel Approval ~85
Cancel a still-pending approval (e.g. the upstream action was aborted). Fires the approval.cancelled callback. Requires a bot API key.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | yes | Bot API key with 'nrn_' prefix for authentication |
| approvalId | string | yes | The approval request id (UUID) to cancel |
| reason | string | – | Optional cancellation reason |
No output schema declared.
No examples provided.
neuron_cancel_booking Cancel Booking ~42
Cancel a confirmed or pending booking. Sends cancellation notifications to the invitee.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Booking UUID |
| reason | string | – | Cancellation reason |
No output schema declared.
No examples provided.
neuron_cancel_flow_run Cancel Flow Run ~40
Cancel a running or waiting flow execution. Steps already completed are not rolled back.
| Name | Type | Req | Description |
|---|---|---|---|
| runId | string | yes | UUID of the run to cancel. |
No output schema declared.
No examples provided.
neuron_cancel_scheduled_message Cancel Scheduled Message ~57
Cancel a scheduled message to prevent it from being sent. Only messages with status 'scheduled' can be cancelled. This action cannot be undone.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Unique identifier (UUID) of the scheduled message to cancel |
No output schema declared.
No examples provided.
neuron_cancel_subscription Cancel Subscription ~26
Cancel the current active subscription. Access continues until the end of the current billing period.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
neuron_checkout Checkout Subscription ~48
Initiate a checkout session for a subscription plan upgrade. Returns a checkout URL or confirmation to complete the purchase.
| Name | Type | Req | Description |
|---|---|---|---|
| plan | string | yes | Subscription plan to purchase: 'pro' or 'business' |
No output schema declared.
No examples provided.
neuron_close_conversation Close Conversation ~48
Close an active conversation, marking it as completed. The bot will stop responding and the conversation is archived.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Unique identifier (UUID) of the conversation to close |
No output schema declared.
No examples provided.
neuron_complete_booking Complete Booking ~34
Mark a confirmed booking as completed (e.g. after the meeting has happened).
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Booking UUID |
No output schema declared.
No examples provided.
neuron_compose_message Compose Message ~191
Compose and send a new message to a phone number via a specific channel. Automatically creates a new conversation if one does not exist.
| Name | Type | Req | Description |
|---|---|---|---|
| channelId | string | yes | 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 | yes | Message text content |
| to | string | yes | Recipient phone number (E.164 format, e.g., '2348012345678') |
No output schema declared.
No examples provided.
neuron_confirm_booking Confirm Booking ~32
Confirm a pending booking. Only works on bookings with status 'pending'.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Booking UUID |
No output schema declared.
No examples provided.
neuron_convert_lead Convert Lead to Contact ~67
Promote a phone-bearing lead into a contact (so it can be messaged / added to lists). Optionally add the new contact to a list.
| Name | Type | Req | Description |
|---|---|---|---|
| addToList | string | – | Contact list name to add the converted contact to. |
| id | string | yes | Lead UUID |
No output schema declared.
No examples provided.
neuron_create_ad_request Create Ad Request ~170
Create an ad distribution request to send a message to contacts in pool lists matching target demographics. Deducts from wallet upon approval.
| Name | Type | Req | Description |
|---|---|---|---|
| budget | number | yes | 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 | yes | The ad message content to distribute to matched contacts |
| messageType | string | – | Message content type: 'text', 'image', 'video', or 'document' (default: 'text') |
| targetDemographics | object | yes | Demographic criteria to match against pool list entries |
| targetGoal | number | yes | Target number of successful message deliveries |
No output schema declared.
No examples provided.
neuron_create_api_key Create API Key ~126
Create a new API key for programmatic access to a specific bot. Store the key securely as it cannot be retrieved later.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | yes | 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 | yes | Descriptive name for the API key to identify its purpose (e.g., 'Production CRM Integration') |
No output schema declared.
No examples provided.
neuron_create_blog_post Create Blog Post ~730
Create a new blog post. Body can be authored two ways: (1) `content` as markdown (GFM) + inline raw HTML, or (2) `blocks` — a structured array of typed layout blocks rendered as styled components (heroes, columns, callouts, code cards, embeds, CTAs, sanitized custom HTML). Prefer `blocks` for rich, magazine-style layouts; use `content` for simple prose. If both are given, `blocks` renders and `content` is kept as a fallback.
| Name | Type | Req | Description |
|---|---|---|---|
| authorType | string | yes | Whether the post is authored by an individual user or the organization |
| blocks | array | – | Structured layout blocks, rendered top-to-bottom as styled components. Each block is an object with a `type` and its fields: - hero: { type:'hero', title, kicker?, subtitle?, imageUrl?, align?:'left'… |
| content | string | – | Optional markdown body (GFM + inline raw HTML). Used when `blocks` is not provided, and kept as a fallback when it is. Rich options: , <video src controls>, <iframe> embeds (16:9), <detail… |
| 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 | yes | Title of the blog post (max 500 characters) |
No output schema declared.
No examples provided.
neuron_create_bot Create Bot ~471
Create a new AI bot with specified name, model, and behavior instructions. Returns the created bot object.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | Display name for the bot |
| responsibilities | array | – | Array of responsibility descriptions defining what the bot handles |
| systemPrompt | string | yes | 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 |
No output schema declared.
No examples provided.
neuron_create_broadcast Create Broadcast ~263
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.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | – | Identifier (UUID) of a bot to send through. Each recipient's channel is picked by the bot's load-balancer + sticky sessions. Takes precedence over channelId. |
| 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 | yes | Message content to broadcast to recipients |
| messageType | string | – | Type of message to send (e.g., 'text', 'image', 'document') |
| name | string | yes | 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. |
No output schema declared.
No examples provided.
neuron_create_calendar Create Calendar ~182
Create a new booking calendar with a name, timezone, and visibility setting.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | Hex color code (e.g. '#6366f1') |
| description | string | – | Calendar description |
| name | string | yes | Calendar display name |
| notifyEmail | boolean | – | Send email notifications for bookings |
| notifyEmailAddress | string | – | Host email address for notifications |
| notifyPhone | string | – | Host phone number for WhatsApp notifications |
| notifyWhatsapp | boolean | – | Send WhatsApp notifications for bookings |
| slug | string | – | URL slug (auto-generated from name if omitted) |
| timezone | string | – | IANA timezone (default: Africa/Lagos) |
| visibility | string | – | Visibility: 'public' for public booking page, 'org-link' for link-only, 'private' for no public access |
No output schema declared.
No examples provided.
neuron_create_campaign Create Campaign ~195
Create a new outreach campaign with target audience, messaging template, and schedule configuration. Requires a Pro or Business plan.
| Name | Type | Req | Description |
|---|---|---|---|
| deadline | string | yes | 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 | yes | The WhatsApp message template to send to contacts |
| requireMutualContact | boolean | – | Only allow sends to contacts who have previously responded (default: false) |
| rewardPerDelivery | number | yes | Reward per successful delivery in kobo (e.g., 5000 = NGN 50) |
| title | string | yes | Campaign title displayed in marketplace and dashboard |
| totalBudget | number | yes | Total campaign budget in kobo (e.g., 500000 = NGN 5,000) |
No output schema declared.
No examples provided.
neuron_create_channel Create Channel ~151
Create a new WhatsApp channel with either Meta Cloud API or Baileys (direct WhatsApp) integration. Meta Cloud channels require metaPhoneNumberId and metaAccessToken.
| Name | Type | Req | Description |
|---|---|---|---|
| metaAccessToken | string | – | Meta Access Token (required for meta_cloud type) |
| metaPhoneNumberId | string | – | Meta Phone Number ID (required for meta_cloud type) |
| name | string | yes | Display name for the channel |
| phoneNumber | string | – | Phone number for the channel (E.164 format, e.g., '+2348012345678') |
| type | string | yes | Integration type: 'meta_cloud' for Meta Cloud API or 'baileys' for direct WhatsApp connection |
No output schema declared.
No examples provided.
neuron_create_contact Create Contact ~176
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.
| Name | Type | Req | Description |
|---|---|---|---|
| doNotAutoRespond | boolean | – | If true, the bot will never auto-respond to this contact (manual/API and human sends still work) |
| doNotBroadcast | boolean | – | If true, this contact is permanently excluded from all broadcasts |
| string | – | Email address of the contact | |
| name | string | yes | Full name of the contact |
| notes | string | – | Additional notes about the contact, saved as a structured entry |
| phone | string | yes | Contact phone number in E.164 format (e.g., +2348012345678) |
| tags | array | – | Tags to categorize the contact (e.g., ['vendor', 'lagos']) |
No output schema declared.
No examples provided.
neuron_create_contact_list Create Contact List ~145
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.
| Name | Type | Req | Description |
|---|---|---|---|
| criteria | object | – | Dynamic list criteria object: { rules?: { operator, conditions }, aiPrompt?, aiMaxResults? } |
| description | string | – | Human-readable description of the list's purpose |
| name | string | yes | 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') |
No output schema declared.
No examples provided.
neuron_create_event Create Calendar Event ~163
Create a host-initiated event on a calendar. Supports attendees (with WhatsApp/email invitations), location, and daily/weekly/monthly recurrence.
| Name | Type | Req | Description |
|---|---|---|---|
| attendees | array | – | List of attendees to invite |
| calendarId | string | yes | Calendar UUID |
| description | string | – | Event description |
| endTime | string | yes | End time (ISO 8601) |
| locationType | string | – | Location type |
| locationValue | string | – | Location details |
| recurrenceRule | – | – | Recurrence rule — generates instances 12 weeks ahead |
| startTime | string | yes | Start time (ISO 8601, e.g. '2025-03-15T09:00:00Z') |
| title | string | yes | Event title |
No output schema declared.
No examples provided.
neuron_create_event_type Create Event Type ~266
Create a bookable event type on a calendar (e.g. '30-min consultation').
| Name | Type | Req | Description |
|---|---|---|---|
| bufferAfter | number | – | Buffer minutes after each booking |
| bufferBefore | number | – | Buffer minutes before each booking |
| calendarId | string | yes | Calendar UUID to add the event type to |
| color | string | – | Hex color code |
| currency | string | – | 3-letter currency code (e.g. 'NGN') |
| description | string | – | Description shown on the booking page |
| duration | number | – | Duration in minutes (default: 30) |
| locationType | string | – | Meeting location type |
| locationValue | string | – | Location details (URL, address, phone) |
| maxAdvance | number | – | Maximum advance booking in minutes |
| minNotice | number | – | Minimum notice in minutes before booking |
| name | string | yes | Event type name (e.g. 'Discovery Call') |
| price | number | – | Price for paid bookings |
| reminderMinutes | array | – | Array of reminder times in minutes before event (e.g. [1440, 60]) |
| requireConfirmation | boolean | – | Require host confirmation for new bookings |
| slotInterval | number | – | Slot interval in minutes (default: 15) |
No output schema declared.
No examples provided.
neuron_create_flow Create Flow ~629
Create a new automation flow. A flow is a directed graph of nodes connected by edges. The graph MUST start with at least one trigger node (entry point). Edges connect nodes via output handles. BEFORE BUILDING: call neuron_get_flow_catalog and read its `reference` — it carries the JSON shapes you cannot guess: the ConditionGroup + operator list for branch/filter/switch conditions, the `cases`/`assignments`/`weekdays` composite shapes, the handle wiring map, and copy-ready `examples`. Condition `field` on a logic node must be a {{template}} (e.g. '{{trigger.text}}'); on a trigger's config.conditions it is a raw payload path (e.g. 'text'). AFTER SAVING: the flow always saves, but the response includes a `warnings` array flagging likely bugs (unknown node type, missing required field, malformed conditions/cases/assignments, edges wired to a handle a node never emits, missing trigger). Always check it and fix any warnings — a warning means that part will silently no-op at run time. TEMPLATE RESOLUTION: Node config values support {{…}} templates resolved at runtime: {{trigger.text}} — the triggering message text {{trigger.contactPhone}} — the sender's phone {{trigger.senderName}} — the sender's name {{vars.myVar}} — a variable set by logic.set_variable {{nodes.n_abc.output.text}} — output from a previous node {{= amount * 1.1 }} — inline expression (arithmetic, comparisons, ternary) ERROR HANDLING: Any node's config can include __errorHandling: { continueOnFail: true, retryCount: 3, retryDelayMs: 1000 } to retry on failure with exponential backoff and/or continue on the 'error' handle instead of failing the run. WIRING RULES: - logic.branch: 'true' and 'false' handles - logic.switch / logic.ai_router: one handle per case id, plus 'default' - logic.wait_for_reply: 'default' (replied) and 'timeout' - logic.wait_for_approval: 'approved', 'rejected', 'timeout' - logic.wait_first_of: 'reply', 'event', 'timeout' - logic.loop: 'loop' (body) and 'don…
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional description of what the flow does. |
| enabled | boolean | – | Whether the flow should be active immediately (default: false). |
| graph | object | – | The flow graph — nodes and edges. Omit to create an empty flow (edit later in the UI). |
| name | string | yes | Human-readable name for the flow. |
No output schema declared.
No examples provided.
What is the io.github.conquext/neuron MCP server?
io.github.conquext/neuron is an MCP server listed in the public MCP registry as io.github.conquext/neuron. AI-powered WhatsApp chatbot platform with 196 tools for bots, campaigns, and contacts. This page covers its hosted endpoint (https://mcp.neuron.ng/mcp).
Is the io.github.conquext/neuron MCP server safe to use?
io.github.conquext/neuron scores 82 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.conquext/neuron MCP server expose?
io.github.conquext/neuron exposes 383 tools: neuron_register, neuron_login, neuron_refresh_token, neuron_switch_org, neuron_list_organizations, and 378 more. Their descriptions and schemas cost roughly 36,562 tokens of context every time the server is loaded.
Does the io.github.conquext/neuron MCP server require authentication?
No. We connected to io.github.conquext/neuron without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the io.github.conquext/neuron MCP server still maintained?
io.github.conquext/neuron is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.