BotBell MCP Server
The BotBell MCP Server enables AI assistants to send push notifications to iOS/Mac devices and receive user replies through the BotBell app.
Send notifications (
botbell_send): Push messages (up to 4096 chars) with optional titles, URLs, image attachments, and plain text or Markdown formatting. Add a custom summary (up to 512 chars) for long messages.Interactive notifications: Attach up to 5 action buttons for quick replies or free-text input, with a configurable
reply_mode(open,actions_only, ornone).Fetch replies (
botbell_get_replies): Retrieve user responses from the BotBell app, including action button replies. Replies are consumed on fetch (configurable limit, default 20, max 100).Multi-bot management (PAT mode only): List existing bots and create new bots with a name and description.
Multi-account support: Configure additional bot tokens via environment variables to send notifications from multiple accounts using aliases.
Flexible authentication: Use either bot-specific tokens or a Personal Access Token for full account control.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BotBell MCP ServerSend a push notification to my phone saying the build is done"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BotBell MCP Server
Let AI assistants send push notifications to your iPhone / Mac.
What it does
After setup, your AI assistant (Claude, Cursor, etc.) can:
Send you notifications — task results, alerts, reminders push to your phone
Read your replies — you reply in the BotBell app, AI reads it and continues
Manage your bots — list, create bots (PAT mode only)
Related MCP server: MCP-Pushover Bridge
Authentication Modes
BotBell MCP Server supports two token types, auto-detected by prefix:
Token Type | Prefix | Scope | Best For |
Bot Token |
| Single bot only | Simple setup, one bot |
Personal Access Token (PAT) |
| All your bots | Multi-bot, full control |
Bot Token: Get it from the BotBell app when you create a bot. One token = one bot.
PAT: Create one at BotBell app > Settings > API Keys. One token controls all your bots.
Quick Start
1. Install BotBell app
Download from the App Store, create a Bot, and get your token.
2. Install MCP Server
npm install -g @botbell/mcp-server3. Configure Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Option A: PAT mode (recommended)
{
"mcpServers": {
"botbell": {
"command": "botbell-mcp",
"env": {
"BOTBELL_TOKEN": "pak_your_pat_here"
}
}
}
}Option B: Bot Token mode
{
"mcpServers": {
"botbell": {
"command": "botbell-mcp",
"env": {
"BOTBELL_TOKEN": "bt_your_token_here"
}
}
}
}4. Use it
Tell Claude:
"Send a notification to my phone saying the build is done"
"Analyze this log file and push the summary to my phone"
"Check if I have any replies in BotBell"
"List my bots" (PAT mode)
"Create a new bot called Deploy Alerts" (PAT mode)
Tools
PAT Mode (pak_ token)
botbell_list_bots
List all your bots. Use this to find the bot_id before sending.
botbell_create_bot
Create a new bot.
Parameter | Required | Description |
name | Yes | Bot name (max 50 chars) |
description | No | Bot description |
botbell_send
Send a push notification via a specific bot.
Parameter | Required | Description |
bot_id | Yes | Bot ID (use |
message | Yes | Message content (max 4096 chars) |
title | No | Notification title |
url | No | URL to attach (tappable) |
image_url | No | Image URL to attach |
actions | No | Quick reply buttons (max 5), see Actions |
botbell_get_replies
Check for user replies to a specific bot.
Parameter | Required | Description |
bot_id | Yes | Bot ID to check |
limit | No | Max replies to fetch (default 20) |
Bot Token Mode (bt_ token)
botbell_send
Send a push notification.
Parameter | Required | Description |
message | Yes | Message content (max 4096 chars) |
title | No | Notification title |
url | No | URL to attach (tappable) |
image_url | No | Image URL to attach |
actions | No | Quick reply buttons (max 5), see Actions |
botbell_get_replies
Fetch user replies from the BotBell app.
Parameter | Required | Description |
limit | No | Max replies to fetch (default 20) |
Extra Tokens
If you need to send notifications to bots from multiple accounts, you can configure additional Bot Tokens via the BOTBELL_EXTRA_TOKENS environment variable.
Format: alias1:bt_token1,alias2:bt_token2
{
"mcpServers": {
"botbell": {
"command": "botbell-mcp",
"env": {
"BOTBELL_TOKEN": "pak_your_pat_here",
"BOTBELL_EXTRA_TOKENS": "team-ops:bt_abc123,home:bt_xyz789"
}
}
}
}When extra tokens are configured:
The
aliasparameter becomes available onbotbell_sendandbotbell_get_repliesUse
aliasto route messages through a specific extra tokenIn PAT mode,
botbell_list_botsshows extra bots alongside your ownWithout
alias, the primary token (BOTBELL_TOKEN) is used as default
For Cursor / Other MCP Clients
Add to your MCP config:
{
"botbell": {
"command": "botbell-mcp",
"env": {
"BOTBELL_TOKEN": "pak_your_pat_here"
}
}
}Actions
Add interactive buttons to your notifications. Users can tap to reply without typing.
{
"message": "Deploy v2.3 to production?",
"actions": [
{ "key": "approve", "label": "Yes" },
{ "key": "reject", "label": "No" },
{ "key": "custom", "label": "Other...", "type": "input", "placeholder": "Enter reason" }
]
}Field | Required | Description |
key | Yes | Identifier returned when user taps (max 64 chars) |
label | Yes | Button text shown to user (max 64 chars) |
type | No |
|
placeholder | No | Placeholder for input field (max 128 chars) |
When the user taps an action, botbell_get_replies returns the action key along with the message content:
[2026-01-15T10:30:00.000Z] [action:approve] YesLightweight Alternatives
If MCP is more than you need:
SDKs — Call the REST API directly from your code:
Agent Skill — One command to install, zero dependencies, works with 30+ AI tools: BotBell Agent Skill
Links
Available Tools
2 toolsbotbell_get_repliesA
Check if the user has replied to your messages in the BotBell app. Messages are consumed on fetch (won't be returned again).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of replies to fetch (default 20, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors. It explicitly states that messages are consumed on fetch (won't be returned again), a critical behavioral trait. No other traits are discussed, but this is a key disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose. No unnecessary words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool's purpose and a key behavior, but given no output schema, it does not describe what is returned. For a simple one-parameter tool, it is partially complete but missing output details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the 'limit' parameter with 100% coverage. The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and the resource 'replied messages' in the BotBell app, distinguishing it from the sibling tool botbell_send which is for sending messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to check for replies) but does not explicitly contrast with botbell_send or state when not to use. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
botbell_sendA
Send a push notification to the user's iPhone/Mac via BotBell. You can include action buttons for quick replies. Use type 'input' to let the user type a custom response.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message content (required, max 4096 chars) | |
| title | No | Message title (optional) | |
| url | No | URL to attach (optional) | |
| image_url | No | Image URL to attach (optional) | |
| summary | No | Custom summary for long messages (optional, max 512 chars) | |
| format | No | Message format: 'text' (default) or 'markdown' for Markdown rendering | |
| actions_description | No | Description text shown above action buttons (optional, max 256 chars) | |
| actions | No | Quick reply buttons (max 5). Use type 'input' for free-text option. | |
| reply_mode | No | Controls how the recipient can reply: 'open' (default, free text + actions), 'actions_only' (only action buttons, no free text), 'none' (pure notification, no reply) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as success/failure behavior, authorization requirements, rate limits, or side effects. This is a significant gap for a notification tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the main functionality and a key feature (actions with input), but lacks information about return values, error handling, prerequisites, and integration with sibling tool. Adequate for basic use but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds minimal extra value by highlighting the 'input' type for actions, but mostly repeats schema information. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Send' and the resource 'push notification to the user's iPhone/Mac via BotBell'. It also distinguishes from the sibling tool 'botbell_get_replies' by focusing on sending, not retrieving.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes when to use action buttons and input type, but does not explicitly compare to sibling tool or state prerequisites/exclusions. Provides clear context for using actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have entirely distinct purposes: one sends notifications, the other checks for replies. There is no overlap or ambiguity.
Both tools follow a consistent botbell_ prefix and verb_noun pattern (get_replies, send), making them easy to distinguish and predict.
With only two tools, the server is minimal but covers the core send/reply cycle for a notification service. Slightly below average count but still reasonable.
The tools cover the essential operations for a push notification service: sending and retrieving replies. Minor gaps like history or subscription management are present but not critical for basic functionality.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Push notifications for AI agents - send instant iPhone notifications from any MCP client.
Reach your own phone from an AI agent: notifications, approval questions, reminders, ring, files.
Let your AI agent notify you by email, Slack, Discord, or webhook. One tool: send_notification.
Give your AI agent a memory and body on your iPhone: set alarms, ring your phone, over MCP.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to send push notifications through the kweenkl service. Allows users to receive contextual notifications from their AI when tasks are complete or important events occur.117MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to send push notifications to mobile devices via Pushover, allowing users to receive instant alerts for task completions, errors, reminders, and custom messages through their AI conversations.1202MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to send native macOS notifications for task completion alerts and reminders. Supports interactive features like custom system sounds, action buttons, and user replies directly from the notification center.201MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to send desktop notifications on macOS with rich formatting, urgency levels, and sound options.1261MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qq418716640/botbell-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server