gogo-channel
v2.0.1
Published
MCP server connecting Claude Code to a shared PocketBase instance for team communication
Maintainers
Readme
cc-channel
An MCP server that connects Claude Code to a shared PocketBase instance for team communication. Developers install it as an MCP server and Claude can then read/post messages, share workflow updates, and coordinate across the team — all without leaving their AI session.
1. PocketBase Setup
Create a PocketBase collection named messages with the following fields:
| Field | Type | Required | Notes |
|------------|--------|----------|--------------------------------|
| channel | Text | Yes | e.g. general, releases |
| author | Text | Yes | Display name of the poster |
| content | Text | Yes | Message body |
| metadata | JSON | No | Arbitrary JSON payload |
| created | Auto | — | Auto-set by PocketBase |
API rules: Set the collection API rules to allow read/write for the token (or make it public for open teams).
2. Installation
Option A — npx (no install needed)
No installation required. Just add the MCP config below and npx will handle the rest.
Option B — global install
npm install -g cc-channel3. MCP Server Configuration
Add the following to your .claude/settings.json (or ~/.claude/settings.json for global config):
{
"mcpServers": {
"cc-channel": {
"command": "npx",
"args": ["cc-channel"]
}
}
}If you installed globally, you can also use:
{
"mcpServers": {
"cc-channel": {
"command": "cc-channel"
}
}
}4. First-Run Configuration
On first use, run the setup tool from within Claude Code:
Use the setup tool to configure cc-channel with:
pb_url: https://your-pocketbase-instance.com
token: your-pb-api-token
author: yournameThis saves your config to ~/.cc-channel.json:
{
"pb_url": "https://pb.example.com",
"token": "your-api-token",
"author": "alice"
}5. Available MCP Tools
| Tool | Description |
|------------------|----------------------------------------------------------------------|
| setup | Configure pb_url (first-run) |
| login | Browser-based authentication |
| logout | Clear local session |
| whoami | Show current session (team, project, channels) |
| read_channel | Read recent messages from a channel |
| post_message | Post a message to a channel |
| list_channels | List all channels that have messages |
| create_issue | Create a tracked issue |
| list_issues | List issues with filters |
| get_issue | Get an issue's full detail + comments |
| update_issue | Update an issue (status, assignee, etc.) |
| comment_issue | Comment on an issue |
| list_mentions | List @mentions (with workflow-drift TIP when CLAUDE.md is stale) |
| sync_workflow | Fetch current workflow blocks; propose Edit/Write actions to Claude |
| edit_workflow | (super-admin) Update default or per-project workflow body server-side |
| announce_jira | Post a short "picking up Jira ticket" message to the project channel |
Workflow versioning
The gogo-channel MCP injects a set of workflow rules into your folder's
CLAUDE.md (so Claude Code knows when to surface mentions, update issues,
broadcast deploys, and announce Jira tickets). The rules live server-side
in PocketBase and are versioned per scope:
default— one row, shared by all teams.project— optional, one row per project, appended after the default.
Common flows
- First install (or new folder): run
sync_workflow. It will propose inserting the current blocks into CLAUDE.md and ask you to confirm. - Upstream update: any call to
list_mentionschecks for drift between your CLAUDE.md and the server. If the server has bumped to a newer version, a TIP appears at the bottom of the mentions output. Runsync_workflowto apply the update. - Edit (super-admin only):
edit_workflow scope=default body="…"oredit_workflow scope=project project=v2 body="…". The server auto-bumps the version; users will be nudged on their nextlist_mentions.
Marker format in CLAUDE.md
Each block is wrapped in paired open/close marker comments:
<!-- gogo-channel:workflow:scope=default:v=5 -->
## gogo-channel workflow
…rules…
<!-- /gogo-channel:workflow:scope=default -->You may hand-edit the body — drift detection only triggers when the server version is higher than yours, so local tweaks are preserved.
read_channel
{
"channel": "general",
"limit": 20
}post_message
{
"channel": "releases",
"content": "v1.2.3 deployed to production",
"metadata": {
"ticket": "V2-1234",
"pr": "https://github.com/org/repo/pull/99"
}
}list_channels
No parameters required.
setup
{
"pb_url": "https://pb.example.com",
"token": "your-api-token",
"author": "alice"
}6. Example Usage in Claude Code
Read the last 10 messages in #releasesPost to #bugs: "Checkout flow crashes on iOS Safari — investigating now"List all available channelsRequirements
- Node.js >= 18
- A running PocketBase instance with the
messagescollection configured
