Skip to main content
Glama
jackleeio

bnbot-mcp-server

by jackleeio
README.md
# bnbot-mcp-server

MCP Server for [BNBOT Chrome Extension](https://chromewebstore.google.com/detail/bnbot-your-ai-growth-agen/haammgigdkckogcgnbkigfleejpaiiln) - Control Twitter/X via AI assistants like OpenClaw or Claude Desktop.

## Architecture

```
AI Assistant (OpenClaw / Claude Desktop)
    ↓ stdio (MCP protocol)
bnbot-mcp-server (local Node.js process)
    ↓↑ WebSocket (ws://localhost:18900)
BNBOT Chrome Extension
    ↓ DOM operations
Twitter/X
```

## Setup

### 1. Install BNBOT Chrome Extension

Install from the Chrome Web Store.

### 2. Enable OpenClaw Integration

In the BNBOT extension sidebar, open **Settings** and turn on the **OpenClaw** toggle.

### 3. Configure Your AI Assistant

#### OpenClaw / Claude Desktop

Add to your MCP config:

```json
{
  "mcpServers": {
    "bnbot": {
      "command": "npx",
      "args": ["bnbot-mcp-server"]
    }
  }
}
```

#### Custom Port

```json
{
  "mcpServers": {
    "bnbot": {
      "command": "npx",
      "args": ["bnbot-mcp-server", "--port", "9999"]
    }
  }
}
```

### 4. Use It

Ask your AI assistant:
- "Scrape my Twitter timeline"
- "Search for tweets about AI"
- "Post a tweet saying hello world"
- "Navigate to my bookmarks and scrape them"

## Available Tools

### Scrape
| Tool | Description |
|------|-------------|
| `scrape_timeline` | Scrape tweets from the timeline |
| `scrape_bookmarks` | Scrape bookmarked tweets |
| `scrape_search_results` | Search and scrape results |
| `scrape_current_view` | Scrape currently visible tweets |
| `scrape_thread` | Scrape a tweet thread from URL |
| `account_analytics` | Get account analytics data |

### Tweet
| Tool | Description |
|------|-------------|
| `post_tweet` | Post a tweet with optional images |
| `post_thread` | Post a thread of tweets |
| `submit_reply` | Reply to a tweet |
| `quote_tweet` | Quote a tweet with optional comment |

### Engagement
| Tool | Description |
|------|-------------|
| `like_tweet` | Like a target tweet |
| `retweet` | Retweet a target tweet |
| `follow_user` | Follow a target user |

### Navigation
| Tool | Description |
|------|-------------|
| `navigate_to_tweet` | Go to a specific tweet |
| `navigate_to_search` | Go to search page |
| `navigate_to_bookmarks` | Go to bookmarks |
| `navigate_to_notifications` | Go to notifications |
| `navigate_to_following` | Go to following timeline |
| `return_to_timeline` | Go back to timeline |

### Status
| Tool | Description |
|------|-------------|
| `get_extension_status` | Check extension connection |
| `get_current_page_info` | Get current page info |

### Content
| Tool | Description |
|------|-------------|
| `fetch_wechat_article` | Fetch and extract WeChat article content |
| `fetch_tiktok_video` | Fetch TikTok metadata and download video locally |
| `fetch_xiaohongshu_note` | Fetch Xiaohongshu note content and metadata |

### Article
| Tool | Description |
|------|-------------|
| `open_article_editor` | Open X article editor via stable flow |
| `fill_article_title` | Fill article title field |
| `fill_article_body` | Fill article body (`plain` / `markdown` / `html`) |
| `upload_article_header_image` | Upload article header image |
| `publish_article` | Publish article (or keep draft) |
| `create_article` | End-to-end article creation flow |

## Testing

Use the MCP Inspector to test tools directly:

```bash
npx @modelcontextprotocol/inspector npx bnbot-mcp-server
```

## License

MIT

TDQS

B3.3/5.0

Scored across 31 tools

Disambiguation4/5

Each tool largely targets a distinct action or resource (navigation, scraping, posting, engagement, article creation), and descriptions clarify boundaries. The only notable overlap is create_article duplicating the granular open_article_editor, fill_article_title, fill_article_body, upload_article_header_image, and publish_article tools, which could confuse an agent about which path to use.

Naming Consistency4/5

Predominantly consistent snake_case verb_noun pattern (e.g., post_tweet, scrape_timeline, navigate_to_tweet, fetch_wechat_article). Minor deviations exist: retweet lacks a noun, account_analytics has no verb, and return_to_timeline uses 'return' instead of 'navigate'. Still highly readable and mostly predictable.

Tool Count2/5

31 tools is above the typical 3-15 range, and the article workflow is unnecessarily split into six granular tools plus a redundant create_article wrapper. While the breadth of Twitter automation and cross-platform fetching justifies many tools, the count feels heavy and includes clear redundancy.

Completeness4/5

Core Twitter/X lifecycle is well covered: navigation, scraping, posting, replying, liking, retweeting, quoting, following, analytics, and long-form articles. Minor gaps exist (e.g., delete tweet, bookmark/unbookmark, direct messages, reading notifications), but agents can accomplish most stated goals.

Maintenance

ActivityInactive
ResponsivenessNo issues