mcpField
P
PostPulse

PostPulse

远程服务
github.com/PostPulse媒体与设计11 天前更新
代码仓库

关于 PostPulse

PostPulse 是通过 PostPulse 平台管理社交账号和帖子的 MCP 服务。支持在 10 个社交平台排期发布、上传媒体、连接账号,以及查询帖子状态和指标。

主要功能

  1. 01在 10 个平台排期发布帖子
  2. 02通过 URL 或数据上传图片和视频
  3. 03列出并连接社交账号
  4. 04查询帖子状态、链接和指标
  5. 05使用 OAuth 2.0 身份验证

适用场景

  1. 01向已连接的社交账号排期发布帖子
  2. 02为计划发布的帖子上传媒体
  3. 03重新连接需要授权的账号
  4. 04查看发布结果和帖子指标

MCP 相关

通过托管或自托管的服务将 MCP 客户端连接到 PostPulse。提供账号管理、媒体上传、排期发布和帖子查询工具,以及账号资源;使用 OAuth 2.0 身份验证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.post-pulse.com
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

PostPulse MCP Server

smithery badge

一个 MCP(Model Context Protocol)服务,可将 AI 助手连接到 PostPulse——一个社交媒体管理平台。通过自然语言安排帖子发布时间、上传媒体,并管理 Instagram、Facebook、YouTube、TikTok、Threads、LinkedIn、Pinterest、X(Twitter)、Bluesky 和 Telegram 上的账户。

功能

  • 多平台发帖 — 通过单一界面为 10 个社交媒体平台安排帖子发布时间
  • 媒体管理 — 通过 URL 或二进制数据上传图片和视频,用于帖子
  • 账户管理 — 列出并管理所有已连接的社交媒体账户
  • 查看帖子 — 按日期范围列出帖子,并查看每个平台上的帖子状态、公开链接、错误和指标
  • 在聊天中连接社交账户 — 获取安全链接,无需打开 PostPulse 应用即可连接或重新连接账户
  • OAuth 2.0 身份验证 — 通过基于 Auth0 的令牌验证安全访问
  • 可流式 HTTP 传输 — 现代 MCP 传输协议,确保通信可靠

支持的平台

平台发布位置内容类型要求
InstagramFeed、Reels、Stories图片、视频商业账户
FacebookFeed、Reels、Stories图片、视频公共主页
YouTube视频、Shorts视频频道
TikTok视频、轮播图片、视频账户
Threads帖子图片、视频账户
LinkedIn帖子图片、视频个人账户
PinterestPin图片、视频、轮播(2–5 张图片)Board
X (Twitter)帖子图片、视频账户
Bluesky帖子图片账户
Telegram消息文本、图片、视频频道/聊天

快速开始

托管服务(推荐)

PostPulse 在 https://mcp.post-pulse.com 提供托管的 MCP 服务——无需进行任何设置。将 MCP 客户端指向此 URL,并通过 OAuth 进行身份验证。

MCP 客户端配置示例:

{
  "mcpServers": {
    "postpulse": {
      "url": "https://mcp.post-pulse.com"
    }
  }
}
通过 Smithery 安装

你也可以通过 Smithery 安装:

npx -y @smithery/cli install post-pulse/mcp-server --client claude
自行托管

如果你更希望自行运行服务:

  1. 克隆代码库:
git clone https://github.com/PostPulse/mcp-server-postpulse.git
cd mcp-server-postpulse
  1. 安装依赖并构建:
npm install
npm run build
  1. 启动服务:
npm start

也可以使用 Docker:

docker build -t mcp-server-postpulse .
docker run -p 3000:3000 mcp-server-postpulse
环境变量
变量默认值描述
HOST0.0.0.0服务绑定地址
PORT3000服务端口
PUBLIC_URL—面向公众的 URL(用于 OAuth 元数据发现)
POSTPULSE_AUTH_ISSUERhttps://auth.post-pulse.com/Auth0 颁发者 URL
POSTPULSE_AUTH_US_JWKS_URIhttps://dev-yb150m5gz2ss41sl.us.auth0.com/.well-known/jwks.json美国 Auth0 租户的 JWKS;留空则停用美国密钥集
POSTPULSE_AUTH_US_ISSUERSPOSTPULSE_AUTH_ISSUER 的值以逗号分隔的可信美国密钥颁发者
POSTPULSE_AUTH_EU_JWKS_URI—欧盟 Auth0 租户的 JWKS;留空则停用欧盟密钥集
POSTPULSE_AUTH_EU_ISSUERS—以逗号分隔的可信欧盟密钥颁发者
POSTPULSE_AUDIENCEhttps://api.post-pulse.comAPI 受众
POSTPULSE_API_URLhttps://api.post-pulse.comPostPulse API 基础 URL
REDIS_URL—用于会话/事件持久化的 Redis 连接 URL(必需)

工具

list_accounts

列出所有已连接的社交媒体账号及其 ID、平台、用户名和显示名称。在安排帖子或访问聊天前,先使用此工具发现可用账号。

**参数:**无

**返回:**账号对象的 JSON 数组(id、platform、username、name、needsReauthorization)。新用户尚无账号:结果为 [],并附带使用 connect_account 的提示。needsReauthorization: true 的账号必须先通过 connect_account 重新连接,才能发布帖子;结果会在第二个文本块中列出这些账号。

connect_account

获取安全的 PostPulse 链接,可直接在聊天中将社交媒体账号连接(或重新连接)到 PostPulse。用户在任意浏览器中打开链接后,会进入 PostPulse 页面,该页面会显示此社交媒体账号将关联到哪个 PostPulse 账号(邮箱地址经遮盖)。用户点击 Continue 并在平台上批准访问权限后,页面会显示“账号已连接 — 请返回聊天”。此工具不会等待连接完成:用户表示操作完成后,调用 list_accounts 确认账号已连接。

参数:

名称类型必填说明
platformstring二选一INSTAGRAM、FACEBOOK、YOUTUBE、TIKTOK、THREADS、LINKEDIN、X_TWITTER、BLUE_SKY、TELEGRAM、PINTEREST
accountIdnumber二选一重新连接现有账号(从 list_accounts 获取,通常是 needsReauthorization: true 的账号)。平台类型取自该账号

行为:

  • 对于新连接,工具会先检查用户是否可以添加账号(套餐或额度)。如果不可以,会返回原因和账单页面链接。
  • 链接只能使用一次,与用户的 PostPulse 账号绑定,有效期为 24 hours;只有用户在页面上点击 Continue 后,平台授权流程才会开始。不得分享此链接:完成连接的人会将自己的社交媒体账号关联到此 PostPulse 账号。
  • 如果短时间内请求了过多链接,工具会提示等待几分钟后重试。
  • Telegram 无法通过链接连接:工具会返回前往 https://post-pulse.com/app/accounts 连接的说明。
  • 新建 Facebook 连接时,每个所选 Page 都会创建一个 FACEBOOK_PAGE 账号:可直接向其发布帖子,无需调用 list_chats。对于 TELEGRAM 和重新连接的 FACEBOOK 账号,之后需要调用 list_chats 选择频道或 Page。
  • 支持 URL 模式 elicitation 的客户端还会显示原生的“打开此链接”对话框;文本结果中始终也会包含该链接。
  • 在浏览器中发生的错误(账号数量限制、账号已被其他 PostPulse 用户使用、链接已过期)会显示在页面上,而不会由工具返回。
list_chats

列出具有子目的地的账号的发布目的地。Facebook 账号发布到 Pages,Telegram 账号发布到 频道或聊天,Pinterest 账号发布到 画板。在这些平台上安排帖子前,请先调用此工具——在 schedule_post 中将返回的 id 用作 facebookPageId、telegramChannelId 或 pinterestBoardId。

仅支持平台为 FACEBOOK、TELEGRAM 或 PINTEREST 的账号。其他平台(包括代表单个 Page 的账号 FACEBOOK_PAGE)没有子目的地,应直接向其发布帖子。

参数:

名称类型必填说明
accountIdnumber是从 list_accounts 获取的账号 ID

**返回:**目的地对象的 JSON 数组(id、title、type、platform)。

upload_media

上传媒体文件(图片、视频),以供已排期的帖子使用。支持两种模式:从公开 URL 导入(自动处理),或直接以 base64 上传二进制数据。返回一个媒体键,可在 schedule_post 中引用。

参数:

名称类型必填描述
mediaUrlstring否要导入的媒体文件的公开 URL
mediaDatastring否以 base64 编码的媒体文件内容
mediaTypestring否MIME 类型(例如,image/jpeg、video/mp4)。使用 mediaData 时必填
mediaNamestring否上传媒体的文件名

必须提供 mediaUrl,或同时提供 mediaData 和 mediaType。

schedule_post

将社交媒体帖子排期到一个或多个已连接的账号。支持平台专属选项,例如发布类型(动态、短视频、快拍)、视频标题和话题标签。帖子使用 ISO-8601 时间戳排期到未来时间。

参数:

名称类型必填描述
accountIdnumber是来自 list_accounts 的账号 ID
platformstring是目标平台:INSTAGRAM、FACEBOOK、TELEGRAM、YOUTUBE、TIKTOK、THREADS、LINKEDIN、PINTEREST、X_TWITTER、BLUE_SKY
contentstring否帖子文本/说明文字
mediaPathsstring[]否upload_media 返回的媒体键
scheduledTimestring是ISO-8601 时间戳(例如,2025-01-15T10:00:00Z)
facebookPageIdstring是(Facebook)来自 list_chats 的 Facebook 公共主页 ID。平台为 FACEBOOK 时必填
telegramChannelIdstring是(Telegram)来自 list_chats 的 Telegram 频道/聊天 ID。平台为 TELEGRAM 时必填
pinterestBoardIdstring是(Pinterest)来自 list_chats 的 Pinterest 画板 ID。平台为 PINTEREST 时必填
publicationTypestring否FEED、REELS 或 STORY(Instagram/Facebook,默认为 FEED)
titlestring否视频标题(YouTube、TikTok)或 Pin 标题(Pinterest,最多 100 个字符)
topicTagstring否话题标签(Threads)
linkstring否点击 Pin 时打开的目标 URL(Pinterest)
altTextstring否Pin 图片的替代文本(Pinterest)
boardSectionIdstring否画板中的分区(Pinterest)
list_posts

按日期范围(根据排期时间)列出已排期或已发布的帖子,按时间从早到晚排列:ID、整体状态、排期时间、平台和文本。该 API 不支持分页,因此单次调用最多覆盖 93 天;更长的时间段需拆分为多次调用。未设置排期时间的草稿不会列出。

参数:

名称类型必填描述
fromDatestring是ISO-8601 日期(2026-10-01,该 UTC 日期的起始时间)或时间戳
toDatestring是ISO-8601 日期(2026-10-31,该 UTC 日期的结束时间)或时间戳
platformstring否仅列出此平台的帖子,平台名称以 list_accounts 返回值为准
statusstring否DRAFT、SCHEDULED、AWAITING_MEDIA、MEDIA_IMPORT_FAILED、IN_PROGRESS、COMPLETED、FAILED 或 PARTIALLY_COMPLETED
get_post

获取一条帖子及其在每个账号上的结果:平台、状态、已发布帖子的公开链接(url)、平台帖子 ID、错误消息、文本、附加媒体(文件名和类型),以及 PostPulse 最新的指标:

  • impressions、engagements、likes、shares、comments 和 profileClicks,这些指标适用于所有平台。平台未报告的指标为 null;
  • lastUpdatedTime;
  • platformAnalytics:平台针对该帖子的自有分析数据,使用平台的字段名称,例如 TikTok 上的 view_count,或 Threads 上的 views 和 quotes。字段取决于平台和帖子类型,因此不要期待固定的字段集合。平台未报告任何数据时,该值为 null。

每次调用都会从平台刷新已发布帖子的指标。

参数:

名称类型必填描述
postIdnumber是来自 list_posts 或 schedule_post 的帖子 ID

资源

postpulse://accounts

一个 MCP 资源,提供所有已连接社交媒体账号的列表。以 JSON 格式返回与 list_accounts 工具相同的数据,包括 needsReauthorization。

身份验证

此服务使用 Auth0 提供的 OAuth 2.0。OAuth 元数据可通过 /.well-known/oauth-protected-resource 和 /.well-known/oauth-authorization-server 发现。

无需现有的 PostPulse 账号:通过 MCP 客户端登录(使用 Google 或无密码电子邮件验证码)即可在首次使用时创建 PostPulse 账号。随后,用户可通过 connect_account 连接社交账号。

动态客户端注册(DCR)

支持 OAuth 的 MCP 客户端可以通过动态客户端注册(RFC 7591)自动注册。服务会在其 OAuth 元数据中公布 registration_endpoint,因此符合规范的客户端(例如 Claude Desktop、Cursor 等)会处理整个 OAuth 流程——注册、授权和令牌交换——用户无需进行任何手动设置。

预注册的客户端凭据

如果你已通过 PostPulse Developer Portal 创建客户端凭据,可以将 MCP 客户端配置为直接使用这些凭据,而非使用 DCR。在针对 PostPulse 授权服务器的 OAuth 授权码流程中,传入你的 client_id 和 client_secret。

HTTP 端点

路径用途
POST /、POST /sseMCP Streamable HTTP 传输(初始化 + 消息),需要 Bearer 令牌
带有 Mcp-Session-Id 的 GET /、GET /sse现有会话的 SSE 流
带有 Accept: text/html 的 GET /、GET /sse面向浏览器和爬虫的简易落地页(链接到设置指南和 API 文档)。没有会话时,任何其他 Accept 请求仍会得到 400
GET /health健康检查(ok)
GET /robots.txtUser-agent: * / Disallow: / — 此主机不是网站
GET /.well-known/*OAuth 元数据和 Smithery 服务卡片
其他所有路径404({"error":"Not found"} 或面向 HTML 客户端的纯文本)

每个响应都带有 X-Robots-Tag: noindex, nofollow,确保搜索引擎不会将此主机编入索引。

示例工作流

与 PostPulse MCP 服务的典型交互:

  1. 列出账号,查找已连接的社交媒体个人资料
  2. 连接账号(如果缺少相应平台),使用 connect_account
  3. 上传媒体(可选),准备图片或视频
  4. 安排帖子,添加内容、媒体和未来的发布时间
User: "Schedule an Instagram reel for tomorrow at 9am with the video at https://example.com/video.mp4 and caption 'Check this out!'"
首次运行(新用户)
User:      "Post 'Hello LinkedIn!' to my LinkedIn tomorrow at 10:00 UTC"
Assistant: list_accounts → [] ("No social accounts are connected yet")
           connect_account(platform: LINKEDIN) → link
           "Open this link, check the PostPulse account on the page, approve access on LinkedIn, then tell me when you are done."
User:      "Done"
Assistant: list_accounts → [{ id: 123, platform: LINKEDIN, ... }]
           schedule_post(accountId: 123, platform: LINKEDIN, content: "Hello LinkedIn!", scheduledTime: ...)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。