RSSFlow MCP Bridge
Acts as a secure gateway for remote MCP clients to interact with RSSFlow's local system, enabling AI models to access RSS data via tools like listing actions, querying summaries, and executing commands.
README
RSSFlow MCP Bridge
RSSFlow MCP Bridge is a high-performance gateway built on Cloudflare Workers. It acts as a secure link between remote MCP (Model Context Protocol) clients and the RSSFlow local system, enabling AI models to interact with your RSS data from anywhere.
π Features
- MCP v4.0 Protocol Support: Full implementation of Tool discovery and execution.
- Discovery-First Architecture: Automatically maps system capabilities, built-in AI commands, and available tags.
- Telegram Integration: Built-in webhook support for binding Telegram chats to RSSFlow keys.
- KV-Based Queuing: Robust message and result handling using Cloudflare KV.
- Edge Performance: Powered by Hono and optimized for Cloudflare edge execution.
π Deployment Guide
Choose between AI-assisted deployment (Quick) or manual deployment (Professional).
β±οΈ A. Quick Start (AI-Assisted)
If you prefer using an AI assistant to handle the setup, open this folder in your AI-powered editor (like Antigravity, Cursor, or Windsurf) and send this prompt:
"Help me deploy this RSSFlow Bridge. You need to check my environment, create a KV namespace named
RSSFLOW_BRIDGE_KV, fill the generated ID intowrangler.toml, and finally run the deployment command."
π οΈ B. Professional Deployment (Manual)
- Prerequisites: Ensure Wrangler CLI is installed and logged in via
npx wrangler login. - Setup KV: Run
npx wrangler kv:namespace create RSSFLOW_BRIDGE_KVand copy the generatedid. - Configure: Rename
wrangler.toml.exampletowrangler.tomland paste the KVidinto the configuration. - Secrets (Optional): For Telegram chat, run
npx wrangler secret put TG_BOT_TOKEN; for Feishu/Lark chat, see the Feishu/Lark configuration section below forFEISHU_APP_ID,FEISHU_APP_SECRET,FEISHU_VERIFICATION_TOKEN, andFEISHU_ENCRYPT_KEY. - Launch: Execute
npm install && npm run deploy.
π RSSFlow Integration Guide
Once deployed, you need to connect this bridge to your RSSFlow application:
-
Get the URL: After successful deployment, Cloudflare provides a URL ending in
.workers.dev(e.g.,https://rssflow-bridge.yourname.workers.dev). -
Configure RSSFlow:
- Open your RSSFlow client.
- Navigate to Settings -> MCP Settings.
- Generate Identity Key: Click "Generate New Key" to get a unique token (starting with
rf_v1_). - Save Settings: Paste your deployed Worker URL and ensure the Identity Key is saved.
-
Usage of Identity Key (Crucial!):
- External MCP Clients (e.g., Cursor/Claude Desktop):
- Type: Streamable HTTP (
streamableHttp). - URL: Must include the key as a query parameter.
- Example:
https://your-worker.dev/mcp?key=YOUR_IDENTITY_KEY
- Example:
- Type: Streamable HTTP (
- Telegram Binding: Send
/bind YOUR_IDENTITY_KEYto your bot to link the Telegram chat with your RSSFlow instance.
- External MCP Clients (e.g., Cursor/Claude Desktop):
-
Verify: The client will automatically attempt to communicate with your MCP environment through the bridge.
π§° Standard MCP Mode and Built-in Tools
Standard MCP mode is designed for MCP-compatible AI clients such as Cursor and Claude Desktop. After the client connects to https://<your-worker>.workers.dev/mcp?key=YOUR_IDENTITY_KEY via streamableHttp, it performs tool discovery first and then calls the built-in tools exposed by RSSFlow as needed.
1. Connection Settings
- Protocol type:
streamableHttp - Connection URL:
https://<your-worker>.workers.dev/mcp?key=YOUR_IDENTITY_KEY - Identity key: The
rf_v1_key generated in the RSSFlow client under MCP Settings. - Runtime dependency: The browser running the RSSFlow extension must stay open; otherwise remote MCP requests cannot be polled and processed by the local client.
2. Tool Discovery and Invocation Flow
- The MCP client connects to the Worker's
/mcpendpoint. - The Worker responds to standard MCP requests such as
initializeandtools/list, returning the available tool list. - When the client invokes a tool, the Worker writes the request into the Cloudflare KV queue.
- The local RSSFlow client polls the queue, executes the task, and sends the result back to the Worker.
- The Worker returns the execution result to the MCP client.
3. Built-in Tools
rssflow_list_actions: Capability map tool. Lists the current RSSFlow system instructions, built-in AI shortcuts, and available tags. Use this first when you are unsure which tags or commands are available.rssflow_query_summaries: News data query tool. Fetches raw news items and AI summaries for specific tags or time ranges. Best for reading, analysis, summarization, and Q&A workflows that need source material.rssflow_execute_command: Preset task execution tool. Runs RSSFlow built-in analysis tasks or report-generation workflows. Best when the user explicitly asks for a fixed-format output such as a report, podcast script, tweet, or deep research brief.
4. Usage Recommendations
- Call
rssflow_list_actionsfirst to retrieve available tags and commands before usingrssflow_query_summariesorrssflow_execute_command; this reduces missing-tag or command-mismatch issues. - Use
rssflow_query_summarieswhen the AI should fetch source material and perform its own analysis; userssflow_execute_commandwhen RSSFlow already provides the desired preset workflow. - Tool execution depends on the local RSSFlow client processing the queue. If the browser is closed or unreachable, MCP requests may time out.
π€ Telegram Chat Configuration
This Worker supports two distinct modes:
- Standard MCP Mode: For AI editors like Cursor/Claude Desktop, using
streamableHttp. - Telegram Chat Mode: For direct dialogue, notifications, and commands via a Telegram Bot.
1. Set Bot Token (TG_BOT_TOKEN)
You can set your bot key using either method:
- Method A (CLI - Recommended): Run
npx wrangler secret put TG_BOT_TOKENand enter your token when prompted. - Method B (Cloudflare Dashboard): Go to your Worker -> Settings -> Variables. Under Environment Variables, click "Add variable". Name:
TG_BOT_TOKEN, Value: your token. Click Save and deploy.
2. Multi-Bot Support (Advanced)
If you need to connect multiple bots simultaneously:
- Primary (Default) Bot: Env name is
TG_BOT_TOKEN. - Additional Bots: Env name follows the format
TG_BOT_TOKEN_YOUR_ID(e.g.,TG_BOT_TOKEN_MYBOT). - Webhook Activation Link:
- Default:
https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://<your-worker>.workers.dev/webhook/telegram/ - Named Bot:
https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://<your-worker>.workers.dev/webhook/telegram/YOUR_ID
- Default:
πͺ½ Feishu/Lark Chat Configuration
Feishu/Lark chat mode lets you talk to RSSFlow AI, receive pushes, and send commands through a Feishu/Lark bot. It is configured separately from Standard MCP mode: MCP clients still use /mcp?key=YOUR_IDENTITY_KEY, while Feishu/Lark event callbacks use /webhook/feishu.
1. Create a Feishu/Lark App and Enable Bot Capability
- Go to the Feishu Open Platform and create an internal enterprise app.
- In Credentials & Basic Info, copy the
App IDandApp Secret. - Enable Bot under App Capabilities, then publish or install the app into the target tenant or chat.
2. Configure Worker Environment Variables
It is recommended to store sensitive values as Cloudflare Worker secrets. FEISHU_APP_ID and FEISHU_APP_SECRET are required for Feishu/Lark replies and proactive pushes. FEISHU_VERIFICATION_TOKEN and FEISHU_ENCRYPT_KEY are optional; configure them only when you want to enable Feishu/Lark token verification or event encryption/signature verification.
npx wrangler secret put FEISHU_APP_ID
npx wrangler secret put FEISHU_APP_SECRET
Optional security settings:
npx wrangler secret put FEISHU_VERIFICATION_TOKEN
npx wrangler secret put FEISHU_ENCRYPT_KEY
FEISHU_APP_ID: The Feishu/Lark app ID. Used to obtaintenant_access_tokenand send messages.FEISHU_APP_SECRET: The Feishu/Lark app secret. Used to obtaintenant_access_tokenand send messages.FEISHU_VERIFICATION_TOKEN(optional): The Verification Token from Feishu/Lark event subscriptions. If this variable is not configured on the Worker, token verification is skipped.FEISHU_ENCRYPT_KEY(optional): The Encrypt Key from Feishu/Lark event subscriptions. When configured, the Worker verifies Feishu/Lark signatures and decrypts encrypted events. Configure it only if event encryption is enabled in Feishu/Lark or if you need signature verification.
You can also configure these values in the Cloudflare dashboard: Worker -> Settings -> Variables, then add them under Environment Variables / Secrets and click Save and deploy.
3. Configure Feishu/Lark Event Subscriptions
- In the Feishu Open Platform, open the app's Events & Callbacks page.
- Set the Request URL to:
https://<your-worker>.workers.dev/webhook/feishu. - If you want extra security checks, copy the Verification Token and Encrypt Key from Feishu/Lark into
FEISHU_VERIFICATION_TOKENandFEISHU_ENCRYPT_KEYon the Worker. They are not required for basic message receiving. - Add the event Receive message v2.0 (event type
im.message.receive_v1). - Save the configuration and ensure URL verification succeeds.
4. Grant Permissions and Bind RSSFlow
- Grant the required message permissions in the Feishu/Lark app, such as reading messages sent to the bot and sending messages to chats, then republish or reinstall the app as required by Feishu/Lark.
- Generate an identity key in the RSSFlow client under MCP Settings. It usually starts with
rf_v1_. - Send
/bind YOUR_IDENTITY_KEYin a direct chat with the bot or in a group where the bot is installed. - After binding succeeds, send text messages to the bot to enter the RSSFlow chat flow. Non-text messages are ignored.
5. Push and Reply Notes
- Feishu/Lark replies and proactive pushes depend on
FEISHU_APP_IDandFEISHU_APP_SECRET. Without these two variables, the Worker can receive and bind events but cannot send replies to Feishu/Lark. - After binding, the Worker records the mapping between the Feishu/Lark
chat_idand the RSSFlow identity key. Later/pushrequests use the bound target by default ifplatformandchatIdare not explicitly provided.
β οΈ Important Runtime Note
- Browser Must Stay Open: Since RSSFlow runs as a browser extension, the browser where the extension is installed must remain open. You don't need to keep the RSSFlow tab active, but the browser process must be running.
- Host Environment: The browser acts as the "host" for the MCP service. If the browser is closed, the remote gateway cannot reach your local data, causing MCP clients to time out.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.