talktoplanb-mcp
TalkToPlanB MCP Server
Let AI assistants (Claude Desktop, and any Model Context Protocol client) use TalkToPlanB — list chat rooms, read messages, and send messages.
It wraps the TalkToPlanB developer REST API and talks MCP over stdio.
Tools
Tool | Description |
| Account info for the current API key (user id, username, scopes). |
| List your group chats and direct messages (returns room ids). |
| Read recent messages in a room ( |
| Send a message by |
Related MCP server: mcp-server-matrix
1. Get an API key
Open the developer portal: https://talktoplanb.duckdns.org/portal
Register / log in, create a key, and grant the
messages:readandmessages:sendscopes.Copy the key (looks like
ttpb_xxxxxxxx...).
2. Use it with Claude Desktop
Add this to your Claude Desktop config
(%APPDATA%\Claude\claude_desktop_config.json on Windows,
~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"talktoplanb": {
"command": "npx",
"args": ["-y", "talktoplanb-mcp"],
"env": {
"TALKTOPLANB_API_KEY": "ttpb_your_key_here"
}
}
}
}Restart Claude Desktop, then try: “List my TalkToPlanB rooms” or “Send a TalkToPlanB message to +60123456789 saying hello.”
Environment variables
Variable | Required | Default |
| ✅ | — |
| ❌ |
|
3. Local development
cd mcp-server
npm install
npm run build # compiles src → dist
TALKTOPLANB_API_KEY=ttpb_... npm start4. Publish to npm (so npx talktoplanb-mcp works for everyone)
cd mcp-server
npm login
npm publish --access publicAfter publishing, you can list it on MCP registries (mcp.so, Glama, Smithery) —
see ../marketing/listing-checklist.md.
Notes
Requires Node.js 18+ (uses the built-in
fetch).stdoutcarries the MCP protocol; all logs go tostderr.The server only does what your API key is allowed to do (its scopes).
Available Tools
4 toolslist_roomsA
List the TalkToPlanB chat rooms (group chats and direct messages) the account belongs to. Returns room ids you can use with read_messages and send_message.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It clearly describes the tool as a list operation, specifying scope (group chats and DMs) and returned data (room ids). It does not mention any destructive or complex behavior, which is appropriate for a zero-parameter read-only 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 with no superfluous information. The first sentence states the purpose, the second adds value by linking to sibling tools. Every word earns its place.
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?
Given no parameters and no output schema, the description is sufficiently complete. It tells the agent what the tool does and what the output can be used for. A minor improvement could be specifying the output format (e.g., list of objects with id and name), but the current text is adequate.
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?
There are no parameters, so schema coverage is 100%. The description adds no parameter information (none needed). Baseline score of 4 is appropriate for a param-free tool.
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 tool lists chat rooms (group chats and direct messages) the account belongs to, specifying the resource and verb. It distinguishes itself from sibling tools by mentioning the returned room ids are usable with read_messages and send_message.
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 this tool (before read_messages or send_message to get room ids) but does not explicitly state when not to use it or provide alternative tools for other contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_messagesA
Read recent messages in a TalkToPlanB room. Provide a roomId obtained from list_rooms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many recent messages to return (default 50, max 200) | |
| roomId | Yes | The room ID to read messages from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavior; it states the tool reads recent messages but omits details like order, marking as read, or error conditions. Adequate for a simple read operation.
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 with essential information front-loaded; no unnecessary words.
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?
Given the tool's simplicity, good schema, and no output schema, the description is mostly complete but could specify the return format or message ordering for higher completeness.
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 descriptions for both parameters; the description adds minimal extra meaning ('recent messages', source of roomId) beyond the schema, meeting the baseline.
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 'Read', the resource 'messages', and the context 'in a TalkToPlanB room', distinguishing it from sibling tools like list_rooms and send_message.
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 provides a prerequisite (obtain roomId from list_rooms) and implies when to use the tool, but does not explicitly mention when to avoid it or directly compare to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageA
Send a TalkToPlanB message. Provide text plus EITHER roomId (an existing room from list_rooms) OR toPhone (the recipient’s phone number, which finds or creates a direct message).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The message text to send | |
| roomId | No | Target room ID (use this OR toPhone) | |
| toPhone | No | Recipient phone number (use this OR roomId) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that toPhone may create a direct message, but lacks details on success/failure responses, error conditions, authentication, or rate limits.
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, front-loaded sentences convey all essential information without redundancy or filler.
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?
For a simple send operation with no output schema, the description explains usage modes and parameter sources. However, it does not describe the response format or return value, which would be helpful for an agent.
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%, but the description adds value by clarifying the mutual exclusivity of roomId and toPhone, and explaining the source and effect of each parameter beyond the schema descriptions.
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 tool sends a TalkToPlanB message, specifies the two mutually exclusive targets (roomId or toPhone), and distinguishes from sibling tools like list_rooms, read_messages, and whoami.
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 explicitly advises to use roomId from list_rooms or toPhone to find/create a direct message, guiding when to use each parameter. It indirectly suggests alternatives via sibling names but does not explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiA
Get information about the TalkToPlanB account that owns the current API key (user id, username, scopes).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully conveys that this is a read-only operation with no side effects. It adds value by specifying the returned fields beyond the empty schema.
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?
The description is a single, well-structured sentence that conveys all necessary information without redundancy.
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?
Given no output schema, the description adequately lists the return values (user id, username, scopes). For a zero-parameter read tool, this is 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?
The tool has no parameters, so schema coverage is 100%. The description does not need to add parameter information, and it correctly omits it. Baseline score 4.
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 'Get' and the resource 'TalkToPlanB account', listing specific fields (user id, username, scopes). It distinguishes itself from sibling tools that deal with rooms or 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 usage for retrieving account info, but does not explicitly state when to use it versus alternatives. However, the sibling tools are for different purposes, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.1- First observed
list_rooms - First observed
read_messages - First observed
send_message - First observed
whoami
TDQS
Each tool has a clear, distinct purpose: listing rooms, reading messages, sending messages, and retrieving account info. No overlap.
All tool names follow a consistent lowercase snake_case pattern with verb_noun structure (except 'whoami' which is a common command).
4 tools is an appropriate count for a messaging server, covering essential operations without being too few or too many.
Covers core messaging operations (list, read, send) and account info. Minor gaps like room creation/deletion are absent but not critical.
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
Messaging tools for AI agents: send messages, manage chats, groups and channels.
1Collaboration layer for AI agents. Publish assets, send messages, manage threads and contacts.
WhatsApp CRM for AI agents: search contacts, read chats, manage the sales pipeline, send messages.
Carbon Voice MCP serves as a bridge that connects AI assistants like ChatGPT, Claude, and Cursor to a user's Carbon Voice account, turning voice messages and conversations into a private, on-demand knowledge base. It provides 28 specialized tools for comprehensive voice messaging management, including creating and sending messages, accessing conversation history with instant transcription, running AI actions (summarization, TLDR generation, meeting notes), and managing workspace collaboration through folders, contacts, and team communications.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with WhatsApp through the WAHA (WhatsApp HTTP API) platform. Supports chat management, message operations including sending/receiving messages, and marking chats as read.52229ISC
- AlicenseAqualityFmaintenanceEnables AI assistants to interact with Matrix, the open decentralized communication protocol, allowing them to send and read messages, manage rooms, and perform other Matrix operations through natural language.163MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage WhatsApp: list chats, send and receive messages, download media, and transcribe voice notes via the unofficial Baileys library.33MIT
- AlicenseAqualityCmaintenanceEnables LLM agents to operate WhatsApp through the Evolution API, providing tools to list groups, fetch message history, and send text messages to groups or individual phone numbers.4MIT
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/JMLEE850623/talktoplanb-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server