Skip to main content
Glama
README.md
# TalkToPlanB MCP Server

Let AI assistants (Claude Desktop, and any [Model Context Protocol](https://modelcontextprotocol.io) client) use **[TalkToPlanB](https://talktoplanb.duckdns.org/)** — list chat rooms, read messages, and send messages.

It wraps the TalkToPlanB developer REST API and talks MCP over **stdio**.

## Tools

| Tool | Description |
|---|---|
| `whoami` | Account info for the current API key (user id, username, scopes). |
| `list_rooms` | List your group chats and direct messages (returns room ids). |
| `read_messages` | Read recent messages in a room (`roomId`, optional `limit`). |
| `send_message` | Send a message by `roomId` **or** `toPhone` (plus `text`). |

## 1. Get an API key

1. Open the developer portal: <https://talktoplanb.duckdns.org/portal>
2. Register / log in, create a key, and grant the `messages:read` and `messages:send` scopes.
3. 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):

```json
{
  "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 |
|---|---|---|
| `TALKTOPLANB_API_KEY` | ✅ | — |
| `TALKTOPLANB_BASE_URL` | ❌ | `https://talktoplanb.duckdns.org` |

## 3. Local development

```bash
cd mcp-server
npm install
npm run build      # compiles src → dist
TALKTOPLANB_API_KEY=ttpb_... npm start
```

## 4. Publish to npm (so `npx talktoplanb-mcp` works for everyone)

```bash
cd mcp-server
npm login
npm publish --access public
```

After 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`).
- `stdout` carries the MCP protocol; all logs go to `stderr`.
- The server only does what your API key is allowed to do (its scopes).

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: listing rooms, reading messages, sending messages, and retrieving account info. No overlap.

Naming Consistency5/5

All tool names follow a consistent lowercase snake_case pattern with verb_noun structure (except 'whoami' which is a common command).

Tool Count5/5

4 tools is an appropriate count for a messaging server, covering essential operations without being too few or too many.

Completeness4/5

Covers core messaging operations (list, read, send) and account info. Minor gaps like room creation/deletion are absent but not critical.

Maintenance

ActivityInactive
ResponsivenessNo issues