ReplyFlow MCP Server
The ReplyFlow MCP Server helps indie developers manage Twitter replies by finding relevant discussions, generating reply drafts, and tracking conversations — no Twitter API key required.
replyflow_list: Search for tweets matching your project's niche keywords, filtered by all tweets, mentions, or timeline; posts are sorted by engagement and already-replied ones are marked.replyflow_generate: Generate AI-powered reply drafts for a specific tweet in a chosen style (casual, curious, supportive, thoughtful, or auto-inferred).replyflow_copy: Copy a reply to your clipboard while automatically logging it to history with the tweet ID and style used.replyflow_update_config: Update global or project-specific settings such as preferred reply style, niche keywords, project name, description, and URL.replyflow_config_status: View current configuration, active project, and full project list.replyflow_history: Browse past replies, optionally filtered by tweet ID, result count, or reply chain status (sent, replied, followed up).replyflow_switch_account: Switch between Twitter accounts (e.g., personal, work) using browser cookie authentication.
Uses OpenAI's API as an alternative for generating AI reply drafts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ReplyFlow MCP Servershow me tweets that need replies today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ReplyFlow MCP Server
给独立开发者用的 Twitter 回复管理 MCP 工具。 配置你的项目 → AI agent 自动找到相关讨论 → 你自然地参与交流。
一句话
ReplyFlow 是一个 MCP (Model Context Protocol) Server,提供多个 tool 帮你管理 Twitter 回复。任何支持 MCP 的 AI agent(Cursor、Claude Code、Windsurf、pi-agent)都能调用。
核心理念:项目中心化。配置项目和关键词后,AI agent 搜索相关推文,你选择感兴趣的自然参与。
后端使用 twitter-cli(Python),通过浏览器 Cookie 认证,无需 Twitter API Key,不受 API 配额限制。
Related MCP server: Twitter/X MCP Server
功能
replyflow_list — 按项目关键词搜索值得回复的帖子
只做 niche search(按项目关键词搜索),不再拉取 timeline/mentions。帖子按互动量排序,已回复的标记 replied: true。
参数 | 类型 | 说明 |
|
| 指定项目名,覆盖当前激活项目 |
replyflow_copy — 复制到剪贴板
自动记录回复历史,支持回复链追踪。
参数 | 类型 | 说明 |
|
| 回复内容 |
|
| 被回复的帖子 ID |
|
| 对话/线程 ID,用于回复链追踪 |
|
| 所回复的具体帖子 ID(与 tweetId 不同时) |
|
| 回复风格 |
replyflow_update_config — 对话中改配置
支持项目和全局配置。
参数 | 类型 | 说明 |
|
| 激活或创建项目 |
|
| 项目显示名称 |
|
| 项目描述 |
|
| 项目 URL |
|
| 项目关键词 |
|
| 保底关键词(项目无关键词时使用) |
|
| 切换首选回复风格 |
replyflow_config_status — 查看配置状态
返回当前项目信息、所有项目列表、配置详情。
replyflow_history — 查看回复历史
参数 | 类型 | 默认 | 说明 |
|
| — | 按帖子 ID 筛选 |
|
|
| 最近 N 条 |
|
| — | 按回复链状态筛选 |
replyflow_followups — 查看待跟进对话
检查已回复的帖子是否有新回复,返回需要跟进的对话列表。
参数 | 类型 | 说明 |
|
| 将指定条目标记为已跟进 |
调用时不传参数:先检查所有 sent 状态的帖子是否有新回复,再返回当前 replied 状态的待跟进列表。
回复链状态说明:
sent:已复制回复,尚未检测到新回复replied:对方已回复,需要跟进followed_up:已跟进处理
replyflow_switch_account — 切换 Twitter 账号
参数 | 类型 | 说明 |
|
| 账号名称(仅用于 twitter-cli 认证切换) |
快速开始
前置条件
安装 twitter-cli(Python 工具,使用浏览器 Cookie 认证):
pip3 install twitter-cli
# 首次认证(会在浏览器打开 Twitter 授权页面)
twitter status确认认证成功:
twitter whoami
# 应显示你的 Twitter 用户信息安装 ReplyFlow
npm install -g replyflow-mcp验证安装:
npx replyflow-mcp --help配置
# 交互式配置(项目信息 + 关键词 + 回复风格)
npx replyflow-mcp setup配置保存在 ~/.replyflow/config.json。
Docker
# 构建镜像
docker build -t replyflow-mcp .
# 运行 MCP Server(挂载配置目录)
docker run -i --rm \
-v ~/.replyflow:/root/.replyflow \
replyflow-mcp或者用 docker-compose:
docker compose up -dMCP 客户端配置
Cursor / Claude Code / Windsurf / pi-agent
{
"mcpServers": {
"replyflow": {
"command": "npx",
"args": ["replyflow-mcp"]
}
}
}Cursor 编辑 ~/.cursor/mcp.json,Claude Code 编辑 ~/.claude/mcp.json。
⚡ 无需任何环境变量 — twitter-cli 使用浏览器 Cookie 认证。
CLI 命令
npx replyflow-mcp # 启动 MCP Server
npx replyflow-mcp setup # 交互式配置
npx replyflow-mcp --help # 查看帮助Agent 对话示例
你:看看今天有什么值得回的帖子(关于我的项目)
Agent:→ replyflow_list → 返回按项目关键词搜索的帖子
你:给这条帖子写个回复
Agent:(自行生成回复内容)
你:用这个回复
Agent:→ replyflow_copy → 复制到剪贴板
你:切换到另一个项目
Agent:→ replyflow_update_config project=my-other-app
你:查一下我刚才回复过什么
Agent:→ replyflow_history → 返回最近 20 条记录
你:看看有没有人回复了我
Agent:→ replyflow_followups → 检查回复链,返回待跟进对话
你:这条已跟进
Agent:→ replyflow_followups markAsFollowedUp=1 → 标记为已跟进回复链追踪策略
推广策略 A:先正常参与讨论,对方回复后再自然地提项目。
Day 1: 发现相关讨论 → 回复帮助对方 → replyflow_copy 记录
Day 2: replyflow_followups 检测到对方回复了 → 再自然提项目
Day 3: 跟进后标记为已跟进项目结构
replyflow-mcp/
├── src/
│ ├── index.ts # MCP Server 入口 + 7 个 tool 定义
│ ├── config.ts # 配置管理 + 项目支持
│ ├── setup.ts # 交互式配置流程
│ ├── twitter.ts # twitter-cli 封装
│ └── history.ts # 回复历史记录 + 回复链追踪
├── tests/ # Vitest 测试
├── scratch/ # 设计文档和 tickets
├── LICENSE
├── package.json
└── README.mdLicense
MIT
Available Tools
7 toolsreplyflow_config_statusD
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replyflow_copyD
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Reply text to copy to clipboard | |
| style | No | Reply style used (recorded in history) | |
| tweetId | No | ID of the tweet being replied to (recorded in history) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replyflow_generateD
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | Reply style (default: curious, auto = AI infers from post tone) | |
| tweetId | Yes | ID of the tweet to reply to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replyflow_historyD
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of entries to return (default: 20) | |
| tweetId | No | Filter by tweet ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replyflow_listD
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter tweets to retrieve (all=timeline+mentions+trending, mentions=@mentions only, timeline=home timeline + trending) | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replyflow_switch_accountD
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account name to switch to (e.g. 'personal', 'work') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replyflow_update_configD
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | Preferred reply style | |
| keywords | No | Niche keywords for trending post search (replaces existing list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v1.0.0- First observed
replyflow_config_status - First observed
replyflow_copy - First observed
replyflow_generate - First observed
replyflow_history - First observed
replyflow_list - First observed
replyflow_switch_account - First observed
replyflow_update_config
TDQS
No tool descriptions are provided, making it impossible for an agent to distinguish between tools. The tool names alone are too vague and overlapping, e.g., 'copy', 'generate', and 'history' could refer to many different operations.
All tool names share the 'replyflow_' prefix, which is consistent, but the naming pattern varies: some are single verbs ('copy', 'generate', 'list'), some are nouns ('history'), and others are verb_noun ('switch_account', 'update_config') or noun_noun ('config_status') combinations. This mixed pattern reduces predictability.
With 7 tools, the count is well within the typical range of 3–15 tools, suggesting a focused and manageable scope for the server.
Based solely on tool names, there is no obvious create or delete operation, which are common in many domains. The lack of descriptions makes it impossible to assess completeness, but the set appears to have significant gaps for a typical workflow tool.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Draft, schedule and publish social posts to nine platforms from any AI agent.
- AntworkOAuthio.antwork
Draft, schedule, and publish social posts for your workspace straight from your AI.
Twitter (X) API alternative for AI agents: tweet search, profiles, followers. $0.0002 per result.
Let your AI agent run your social media. Connect it to Claude, ChatGPT, or any MCP-compatible tool in about a minute, and your agent can draft, schedule, and manage posts across all platforms
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to create and manage Twitter drafts through Typefully, including creating single tweets or threads, scheduling posts, and retrieving scheduled or published drafts.39MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Twitter/X through Playwright browser automation without requiring an official API key. It provides tools for posting content, searching tweets, reading feeds, and managing social interactions like follows and likes.3MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI agents and coding assistants with Twitter data access including tweets, user profiles, followers, and search functionality.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with X (Twitter) API v2 for posting tweets, searching, liking, retweeting, and more through natural language.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tiancaijb/replyflow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server