Tapatalk MCP Server

Tapatalk MCP Server

Connects AI assistants to thousands of Tapatalk-enabled forums, enabling browsing, reading, searching, and optional posting.

Category
访问服务器

README

Tapatalk MCP Server

An MCP (Model Context Protocol) server that connects AI assistants to any Tapatalk-enabled forum. This covers thousands of phpBB, vBulletin, XenForo, MyBB, and SMF forums that have the Tapatalk plugin installed.

Built specifically for use with Claude Code, but compatible with any MCP client.

What It Does

  • Browse forum structure and list topics
  • Read full thread content with posts, authors, and timestamps
  • Search topics and posts by keyword, user, forum, or date range
  • View user profiles and online status
  • Optionally create topics and post replies (disabled by default)

Requirements

  • Node.js 18+
  • A Tapatalk-enabled forum (the forum must have the Tapatalk/mobiquo plugin installed)

Installation

# Clone the repo
git clone <repo-url> tapatalk-mcp
cd tapatalk-mcp

# Install dependencies
npm install

# Build
npm run build

Configuration

All configuration is through environment variables.

Required

Variable Description Example
TAPATALK_FORUM_URL Base URL of the forum (no trailing slash) https://forums.example.com

Optional — Authentication

Variable Description Default
TAPATALK_USERNAME Forum username for authenticated access (none — guest mode)
TAPATALK_PASSWORD Forum password (none — guest mode)

When credentials are provided, the server logs in once on startup and automatically re-authenticates if the session expires. No background requests are made — re-login only happens when you actually use a tool and the session has gone stale.

Without credentials, the server operates in guest mode with access to public forums only.

Optional — Cloudflare Bypass

Variable Description Default
TAPATALK_CHROME_CDP_URL URL of a headless Chrome instance for Cloudflare-protected forums (none — direct requests)

Some forums use Cloudflare which blocks server-side requests. When configured, the server first tries a direct request. If it gets a 403, it automatically connects to the headless Chrome instance via CDP, navigates to the forum to establish Cloudflare clearance, then executes XML-RPC calls from within the browser context using the browser's real TLS fingerprint. The browser page is cached for 10 minutes and automatically reconnects when stale.

Example: TAPATALK_CHROME_CDP_URL=http://chrome:9222 (when running alongside a chromedp/headless-shell container).

Optional — Safety

Variable Description Default
TAPATALK_READ_ONLY When true, write tools are not registered at all true
TAPATALK_ALLOW_HTTP Must be true to allow non-HTTPS forum URLs false

Read-only mode is on by default. The write tools (tapatalk_new_topic, tapatalk_reply_post) are not even available to the AI unless you explicitly set TAPATALK_READ_ONLY=false.

HTTPS is enforced by default. If your forum only supports HTTP, you must explicitly opt in with TAPATALK_ALLOW_HTTP=true. Be aware this transmits credentials in plaintext.

Adding to Claude Code

Add the server to your Claude Code MCP configuration:

Read-only (recommended for getting started)

{
  "mcpServers": {
    "tapatalk": {
      "command": "node",
      "args": ["/path/to/tapatalk-mcp/dist/index.js"],
      "env": {
        "TAPATALK_FORUM_URL": "https://forums.example.com"
      }
    }
  }
}

With authentication (read-only)

{
  "mcpServers": {
    "tapatalk": {
      "command": "node",
      "args": ["/path/to/tapatalk-mcp/dist/index.js"],
      "env": {
        "TAPATALK_FORUM_URL": "https://forums.example.com",
        "TAPATALK_USERNAME": "your_username",
        "TAPATALK_PASSWORD": "your_password"
      }
    }
  }
}

This gives you access to private forums and features like unread topics, while keeping write operations disabled.

With Cloudflare bypass (headless Chrome)

{
  "mcpServers": {
    "tapatalk": {
      "command": "node",
      "args": ["/path/to/tapatalk-mcp/dist/index.js"],
      "env": {
        "TAPATALK_FORUM_URL": "https://forums.example.com",
        "TAPATALK_CHROME_CDP_URL": "http://localhost:9222"
      }
    }
  }
}

Requires a headless Chrome instance running with remote debugging enabled (e.g. chromedp/headless-shell:stable).

With write access

{
  "mcpServers": {
    "tapatalk": {
      "command": "node",
      "args": ["/path/to/tapatalk-mcp/dist/index.js"],
      "env": {
        "TAPATALK_FORUM_URL": "https://forums.example.com",
        "TAPATALK_USERNAME": "your_username",
        "TAPATALK_PASSWORD": "your_password",
        "TAPATALK_READ_ONLY": "false"
      }
    }
  }
}

Available Tools

Forum Browsing

Tool Description
tapatalk_get_config Get forum capabilities and Tapatalk version. Good for verifying connectivity.
tapatalk_get_forum List all forums/subforums in a tree structure. Returns forum IDs needed for other tools.
tapatalk_get_board_stats Total threads, posts, members, and online visitors.

Topic Listing

Tool Description
tapatalk_get_topics List topics in a specific forum. Supports pagination and filtering by stickies/announcements.
tapatalk_get_latest_topics Latest topics across all forums, ordered by date.
tapatalk_get_unread_topics Unread topics for the logged-in user. Requires authentication.
tapatalk_get_participated_topics Topics you've posted in. Requires authentication.

Reading Threads

Tool Description
tapatalk_get_thread Read posts in a topic. Returns post content, authors, timestamps, attachments. Paginated.
tapatalk_get_thread_by_unread Jump to the first unread post in a topic. Requires authentication.

Search

Tool Description
tapatalk_search_topics Search topics by keyword. Returns topic matches with short content previews.
tapatalk_search_posts Search individual posts by keyword. Returns post-level matches.
tapatalk_search_advanced Advanced search with filters: keywords, user, forum, date range, title-only mode.

User Info

Tool Description
tapatalk_get_user_info Get a user's profile by username or user ID.
tapatalk_get_online_users List currently online users.

Write Operations (requires TAPATALK_READ_ONLY=false)

Tool Description
tapatalk_new_topic Create a new topic in a forum. Posts publicly to the forum.
tapatalk_reply_post Reply to an existing topic. Posts publicly to the forum.

Usage Examples

Once configured, you can interact with the forum through Claude naturally:

  • "What forums are available?"
  • "Show me the latest topics in the General Discussion forum"
  • "Search for posts about 'firmware update'"
  • "Read the thread about the new release"
  • "Find all posts by user 'johndoe' in the last month"
  • "What's the total post count on this forum?"

Pagination

All list/search tools support pagination with page (1-based) and per_page (default 20, max 50) parameters. Responses include a meta object with:

{
  "meta": {
    "total": 142,
    "page": 1,
    "per_page": 20,
    "has_more": true
  }
}

Search results also include a search_id that can be passed back for efficient pagination through cached server-side results.

How It Works

The server communicates with the forum through Tapatalk's XML-RPC API, which is exposed at /mobiquo/mobiquo.php on any forum with the Tapatalk plugin installed. The MCP server:

  1. Translates MCP tool calls into XML-RPC method calls
  2. Handles Tapatalk's byte[] (base64-encoded string) parameter convention
  3. Manages session cookies for authentication
  4. Parses XML-RPC responses back into structured JSON

Checking if a forum supports Tapatalk

Visit https://your-forum.com/mobiquo/mobiquo.php in a browser. If you see a response (even an error page from the mobiquo script), Tapatalk is installed. If you get a 404, it's not.

Security

Credentials

  • Credentials are only accepted via environment variables, never CLI arguments
  • Passwords are never logged or included in tool responses
  • HTTPS is enforced by default

Read-Only Default

  • Write tools are not registered in read-only mode (the default) — they cannot be invoked at all
  • Write mode requires explicit opt-in via TAPATALK_READ_ONLY=false

Network

  • All requests go to a single fixed URL (the configured forum)
  • No redirects to other hosts are followed (SSRF prevention)
  • Response size is capped at 5MB
  • Request timeout is 15 seconds

Content Safety

  • Forum content (posts, titles, usernames) is returned as structured JSON data fields
  • No forum content is executed, interpreted, or used to construct API calls
  • All tool inputs are validated via Zod schemas before any API call is made

XML-RPC

  • Custom hand-written XML parser — no XXE vulnerability surface
  • All string inputs are XML-escaped before embedding in requests
  • Strict parsing that rejects malformed responses

Compatibility

This server works with any forum that has the Tapatalk plugin installed, including:

  • phpBB 3.x
  • vBulletin 4.x / 5.x
  • XenForo 1.x / 2.x
  • MyBB 1.8+
  • SMF 2.x
  • Kunena (Joomla)
  • WoltLab (WBB)

The Tapatalk API is standardized across all these platforms — the same MCP tools work regardless of the underlying forum software.

Development

# Watch mode (recompile on changes)
npm run dev

# Build once
npm run build

# Run directly
TAPATALK_FORUM_URL=https://your-forum.com node dist/index.js

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选