Token导航 LogoToken导航TokenDH.com
BlackTwist MCP logo
数据服务未说明官方级别未说明来源级核验

BlackTwist MCP

MCP Server

BlackTwist MCP服务器是一个允许AI助手通过OAuth或API密钥连接并管理社交账号(如创建帖子、检查分析、管理草稿等)的服务。

工具数

25

提示词数

0

GitHub Stars

2

资源数

0
数据分析ClaudeAI助手集成Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

blacktwist

提供方

blacktwist

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

BlackTwist MCP服务器

BlackTwist MCP(模型上下文协议)服务器允许Claude、Cursor和其他MCP兼容客户端等AI助手与您的BlackTwist帐户进行交互,包括创建帖子、检查分析、管理草稿等。

快速开始

有两种方法可以连接到BlackTwist MCP服务器: 认证 (推荐给claude.ai)或 API密钥 (适用于桌面客户端和CLI工具)。

选项A:通过OAuth连接(claude.ai)

如果你正在使用 claude.ai 作为一个自定义连接器,OAuth是最简单的选择-不需要API密钥。

  1. 首选 claude.ai > 设置 > 集成 (或添加自定义连接器)
  2. 输入MCP服务器URL: https://blacktwist.app/api/mcp
  3. Claude将自动发现OAuth端点,注册自己,并重定向您使用BlackTwist帐户登录
  4. 登录后,连接就建立了——克劳德现在可以使用你的BlackTwist帐户了

OAuth令牌会自动刷新,因此除非您撤销访问权限,否则您不需要重新进行身份验证。

选项B:通过API密钥连接

对于 克劳德桌面版, 克劳德代码, 光标和其他不支持OAuth的MCP客户端使用API密钥。

1.生成API密钥

  1. 打开 BlackTwist 的 并前往 设置 (齿轮图标)
  2. 点击 主控程序 侧边栏中的选项卡
  3. 点击 创建API密钥,为其命名(例如“Claude Desktop”),然后单击 创建密钥
  4. 立即复制密钥,它不会再次显示

2.配置您的MCP客户端

将以下内容添加到MCP客户端配置中:

克劳德桌面版 (claude_desktop_config.json):

{
  "blacktwist": {
    "command": "npx",
    "args": [
      "-y",
      "mcp-remote@latest",
      "https://blacktwist.app/api/mcp",
      "--header",
      "Authorization:${BLACKTWIST_TOKEN}"
    ],
    "env": {
      "BLACKTWIST_TOKEN": "Bearer YOUR_API_KEY"
    }
  }
}

如果你正在使用node.js v22,那么你需要它 nvm 请确保使用正确的版本:

{
  "blacktwist": {
    "command": "/Users//.nvm/versions/node/v22.22.0/bin/npx",
    "args": [
      "-y",
      "mcp-remote@latest",
      "https://blacktwist.app/api/mcp",
      "--header",
      "Authorization:${BLACKTWIST_TOKEN}"
    ],
    "env": {
      "BLACKTWIST_TOKEN": "Bearer YOUR_API_KEY",
      "PATH": "/Users//.nvm/versions/node/v22.22.0/bin:/usr/local/bin:/usr/bin:/bin",
      "NODE_PATH": "/Users//.nvm/versions/node/v22.22.0/lib/node_modules"
    }
  }
}

克劳德代码

在终端中运行:

claude mcp add --transport http blacktwist https://blacktwist.app/api/mcp --header "Authorization: Bearer YOUR_API_KEY"

或编辑文件 .mcp.json 在项目根目录中:

{
  "mcpServers": {
    "blacktwist": {
      "type": "url",
      "url": "https://blacktwist.app/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

光标 (设置>MCP):

  • 姓名: blacktwist
  • 类型: url
  • 服务器URL: https://blacktwist.app/api/mcp
  • 标题: Authorization: Bearer YOUR_API_KEY

3.开始使用它

连接后,您可以向您的AI助手询问以下问题:

  • “列出我的关联社交帐户”
  • “明天上午9点在Threads上安排一篇帖子,说:刚刚发布了一项新功能!”
  • “编辑我的最新草稿,说:用更好的钩子更新副本”
  • “在我的帖子中添加第二篇关于产品发布的帖子”
  • “显示我过去7天的分析”
  • “我最好的发帖时间是什么时候?”
  • “列出我即将发布的计划帖子”

______________________________________________________________________

服务器详细信息

财产价值
统一资源定位符https://blacktwist.app/api/mcp
认证OAuth 2.1(PKCE)或承载令牌(API密钥)
运输流式HTTP(无状态)
协议通过HTTP POST经由JSON-RPC的MCP

______________________________________________________________________

团队背景(teamId)

大多数工具都接受可选 teamId 参数将操作范围限定到特定团队。

行为:

  1. 如果 teamId 是一个团队ID,该工具在该团队的上下文中运行(验证成员资格)。
  2. 如果 teamId"personal",该工具在 个人模式 (仅用户自己的数据,没有团队)。
  3. 如果 teamId 如果省略,工具将回退到用户的 当前活跃的团队 (来自用户设置)。如果没有团队处于活动状态,则相当于 "personal".

支持的工具 teamId: list_providers, list_posts, list_drafts, create_post, get_thread, delete_thread, reschedule_thread, list_time_slots, get_subscription, get_follow_up_templates以及所有分析工具。

无工具 teamId: list_teams (列出所有团队), get_user_settings (个人设置), list_viral_templates / list_viral_template_categories (全账户内容库), edit_post / edit_thread / get_thread_follow_up / set_thread_follow_up (基于线程的访问通过以下方式在内部处理团队身份验证 userCanAccessThread).

订阅访问权限: 需要付费计划的分析工具将首先检查用户自己的订阅。如果用户没有,系统还会检查用户所属的任何团队所有者是否有活动计划。这意味着团队成员可以通过团队所有者的订阅访问付费功能。

______________________________________________________________________

可用工具

提供商

list_providers

列出所有已连接的社交媒体帐户(Threads和Bluesky)。

参数类型必填说明
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。当设置为团队时,仅显示与该团队链接的提供者。

退货: 一系列供应商 id, provider, providerUserId, providerUsername, displayName, profilePicture.

注: 许多其他工具需要 providerId (the id 字段)或 providerUserId 从这个回答。

______________________________________________________________________

团队

list_teams

列出用户所属的所有团队,包括他们的角色和当前处于活动状态的团队。始终包括a "personal" 代表用户个人(非团队)帐户的条目。

参数:

退货: 一系列团队 id, name, role (OWNER, ADMIN, MEMBER, GUEST), isActive, createdAt.

个人条目已 id: "personal" 并被标记 isActive: true 当前未选择任何团队时。

注: 团队 id 可以传递为 teamId 其他工具(list_posts, list_drafts, create_post等等)。通过 "personal" 明确使用个人账户。当 teamId 如果省略,这些工具将自动使用用户当前活动的团队。

______________________________________________________________________

帖子和帖子

create_post

创建新帖子或帖子。一个帖子是链接在一起的多个帖子。

参数类型必填说明
providerIdstring提供者ID来自 list_providers
postsarrayYes帖子对象数组(见下文)
scheduleAtstringISO 8601日期时间。如果省略,则另存为草稿。没有时区偏移的时间(例如。 2025-03-15T09:00:00)以用户配置的时区进行解释。
autoRepost对象{ enabled: boolean, delays: string[] } 延迟为小时,例如。 ["168", "336"] 持续7天和14天。如果省略,则应用用户的默认自动转发设置。
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

自动应用的默认行为:

  • 自动转发: 如果 autoRepost 如果未提供,并且用户在设置中启用了自动转发,则默认延迟将应用于第一篇帖子。
  • 跟进(自动插入): 如果提供者启用了默认的后续模板,则会自动将其复制并附加到线程。回应包括 autoPlugApplied: true 当这种情况发生时。
  • 时区: 没有偏移的时间在用户的 notificationsTimezone 设置。

每个帖子对象:

字段类型必填描述
textstring发布内容
topicstring主题标签
mediaobject\[\]通过公共URL的媒体附件(请参阅 媒体附件)
spoilerRangesobject\[\]文本扰流板范围(请参见 剧透)
isSpoilerMediaboolean如果 true,此帖子中的所有媒体都标记为剧透(请参阅 剧透)

示例——单篇帖子:

{
  "providerId": "clx...",
  "posts": [{ "text": "Hello world!" }],
  "scheduleAt": "2025-03-15T09:00:00"
}

示例--线程:

{
  "providerId": "clx...",
  "posts": [
    { "text": "Thread time! Here's what I learned this week 🧵" },
    { "text": "1/ First lesson: consistency beats perfection" },
    { "text": "2/ Second lesson: engage with your community daily" }
  ],
  "scheduleAt": "2025-03-15T09:00:00"
}

媒体附件

接受的工具 media (create_post, edit_post, edit_thread, set_thread_follow_up)允许您通过公共URL附加图像和视频。服务器会下载、根据Threads规范进行验证,并自动上传。

每个媒体对象:

字段类型必填描述
urlstring图像或视频的公共URL
altTextstring辅助功能的Alt文本

线程图像规格:

  • 格式:JPEG、PNG
  • 最大文件大小:8 MB
  • 最大纵横比:10:1

视频规格:

  • 格式:MP4、MOV
  • 最大文件大小:1 GB
  • 持续时间:最多5分钟
  • 最大宽度:1920px

示例——带有图片的帖子:

{
  "providerId": "clx...",
  "posts": [
    {
      "text": "Check out this view!",
      "media": [
        {
          "url": "https://example.com/photo.jpg",
          "altText": "Sunset over the mountains"
        }
      ]
    }
  ],
  "scheduleAt": "2025-03-15T09:00:00"
}

扰流板(仅限线程)

扰流板允许您在Threads上的模糊效果后面隐藏部分文本或媒体。观众点击以显示隐藏的内容。

文本破坏者 被定义为字符范围数组:

字段类型必填描述
offsetnumberYes字符偏移量(0索引)
lengthnumberYes范围内的字符数
  • 每根立柱最多10个扰流板范围
  • 范围是指字符在 text 领域

媒体破坏者 每个帖子都有一个布尔标志。当 isSpoilerMediatrue,帖子中的所有媒体(图像和视频)都是模糊的,直到观众点击才能显示。

文本和媒体破坏者是独立的——一个帖子可以同时拥有两者,也可以两者都没有。

示例——带有文本扰流板的帖子:

{
  "providerId": "clx...",
  "posts": [
    {
      "text": "The winner is John!",
      "spoilerRanges": [{ "offset": 14, "length": 5 }]
    }
  ]
}

示例——带有媒体剧透的帖子:

{
  "providerId": "clx...",
  "posts": [
    {
      "text": "Spoiler alert! Check the image",
      "media": [{ "url": "https://example.com/reveal.jpg" }],
      "isSpoilerMedia": true
    }
  ]
}

作为回应 (list_posts, list_drafts, get_thread),每个帖子包括:

  • spoilerRanges:数组 { offset, length } (如果没有文本剧透,则为空)
  • isSpoilerMedia:boolean(true 如果媒体被破坏了)

______________________________________________________________________

list_posts

列出日期范围内已安排和已发布的帖子。

参数类型必填说明
fromstring开始日期(ISO 8601)
tostring结束日期(ISO 8601)
providerIdstring提供者ID(来自 list_providers).如果提供,则只返回此提供者的帖子。
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

list_drafts

列出所有草稿帖子(尚未安排)。

参数类型必填说明
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

get_thread

获取一个包含所有帖子、媒体和分析的特定帖子。

参数类型必填说明
threadIdstring线程ID
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

edit_post

编辑单个帖子的文本内容、主题或媒体。只有具有状态的帖子 READY (草稿或计划)可以编辑——发布、处理或失败的帖子都会被拒绝。使用 get_thread 首先检索帖子ID。

参数类型必填说明
postIdstring帖子ID(来自 get_thread)
contentstring新文本内容
topicstring新主题标记。通过 null 删除主题。
mediaobject\[\]通过公共URL替换所有媒体(请参阅 媒体附件).省略以保持现有媒体不变。
spoilerRangesobject\[\]替换文本扰流板范围(请参见 剧透).省略以保持不变。通过 [] 删除所有。
isSpoilerMediaboolean设置媒体扰流板标志。 true =模糊, false =拆下扰流板。省略以保持不变。

至少其中之一 content, topic, media, spoilerRanges,或 isSpoilerMedia 必须提供。

退货: postId, threadId, updated (对象指示哪些字段已更改)。

示例——更新文本:

{
  "postId": "clx...",
  "content": "Updated post content"
}

示例——更新文本并清除主题:

{
  "postId": "clx...",
  "content": "New content",
  "topic": null
}

edit_thread

通过添加、删除或重新排序帖子来编辑帖子。提供完整的所需职位清单——现有职位(含 id)更新,新帖子(没有 id)并删除不在列表中的现有帖子。只有所有帖子都有状态的线程 READY 可以编辑。

参数类型必填说明
threadIdstring线程ID
postsarray帖子的有序数组(最少1个)。顺序决定 postOrder (0索引)。见下文。

每个帖子对象:

字段类型必填描述
idstring现有帖子的帖子ID。省略在此职位上创建新职位。
textstring发布内容
topicstring主题标签
mediaobject\[\]通过公共URL的媒体附件(请参阅 媒体附件)
spoilerRangesobject\[\]文本扰流板范围(请参见 剧透)
isSpoilerMediaboolean如果 true,此帖子中的所有媒体都标记为剧透

新帖子继承 scheduledAt, provider, providerUserId,以及 teamId 从现有的线程。

退货: threadId, postsUpdated, postsCreated, postsDeleted, totalPosts.

示例——重新排序并添加帖子:

{
  "threadId": "abc123",
  "posts": [
    { "id": "existing-post-2", "text": "Now this is first" },
    { "id": "existing-post-1", "text": "Now this is second" },
    { "text": "Brand new third post" }
  ]
}

示例——删除一篇帖子(从列表中省略):

{
  "threadId": "abc123",
  "posts": [{ "id": "existing-post-1", "text": "Keep only this one" }]
}

delete_thread

永久删除一个帖子及其所有帖子。

参数类型必填说明
threadIdstring线程ID
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

reschedule_thread

更改线程的计划日期/时间。

参数类型必填说明
threadIdstring线程ID
scheduledAtstring新日期时间(ISO 8601)。没有时区偏移的时间将在用户配置的时区中解释。
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

______________________________________________________________________

分析

所有分析工具都需要 providerUserId (从 list_providers)并接受可选 teamId 范围访问。

需要付费计划: get_metric_timeseries, get_post_analytics,以及 get_follower_growth 需要付费计划(用户或团队所有者)。免费计划用户将获得: _“需要付费计划才能访问分析”_.其余工具(get_live_metrics, get_consistency, get_daily_recap, get_recommendations)所有计划都有。 日期范围:fromto 日期均包含在内。例如, from: "2026-03-01"to: "2026-03-08" 包括3月1日至3月8日的所有数据。

get_live_metrics

获取与前一时期相比的百分比变化的参与度指标。

参数类型必填说明
providerUserIdstring提供程序用户ID
fromstring开始日期(默认为7天前)
tostring结束日期(默认为现在)
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

退货: views, likes, replies, reposts, quotes --每个与 valuepercentageChange.

get_metric_timeseries

获取特定指标在日期范围内的每日数据点。

参数类型必填说明
providerUserIdstring提供程序用户ID
metricenum以下之一: VIEWS, LIKES, REPLIES, REPOSTS, QUOTES, ENGAGEMENT_RATE, FOLLOWERS_COUNT
fromstring开始日期(ISO 8601)
tostring结束日期(ISO 8601)
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

get_post_analytics

获取日期范围内帖子的每帖子参与度指标。

参数类型必填说明
providerUserIdstring提供程序用户ID
fromstring开始日期(ISO 8601)
tostring结束日期(ISO 8601)
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

退货: 最多100个帖子 views, likes, replies, reposts, quotes, engagementRate.

get_follower_growth

随着时间的推移,获取每日关注者数量。

参数类型必填说明
providerUserIdstring提供程序用户ID
fromstring开始日期(ISO 8601)
tostring结束日期(ISO 8601)
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

退货: 日常 followers 数据点和 totalGrowth.

get_consistency

获取365天发布一致性热图。

参数类型必填说明
providerUserIdstring提供程序用户ID
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

退货: days (数组 { date, count }), totalPosts, daysWithPosts, currentStreak, recordStreak.

get_daily_recap

获取昨天的总结。

参数类型必填说明
providerUserIdstring提供程序用户ID
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

退货: date, newFollowers, postsCount.

get_recommendations

根据您的分析模式获取发布建议。

参数类型必填说明
providerUserIdstring提供程序用户ID
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

退货: bestPostingHoursUtc, topPerformingPosts, currentStreak, recordStreak.

______________________________________________________________________

随访(自动插电)

在达到参与阈值(点赞、回复、转发)或时间延迟后,跟进系统会自动回复您的帖子。

get_follow_up_templates

列出为提供者保存的后续模板。

参数类型必填说明
userProviderIdstring提供者 idlist_providers
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。包含团队成员模板的范围。

get_thread_follow_up

获取特定线程的后续配置。

参数类型必填说明
threadIdstring线程ID

set_thread_follow_up

设置或更新线程的后续操作。

参数类型必填说明
threadIdstring线程ID
isEnabledboolean启用/禁用后续
textstring后续回复文本
imagesstring\[\]图像URL
delayTimeMinutesnumberNo延时触发器(分钟)
delayTimeMinutesEnabledboolean启用延时触发器
numberOfLikesnumber喜欢阈值
numberOfLikesEnabledboolean启用点赞触发器
numberOfRepliesnumber答复阈值
numberOfRepliesEnabledboolean启用回复触发器
numberOfRepostsnumber重传阈值
numberOfRepostsEnabledboolean启用转发触发器
mediaobject\[\]通过公共URL的媒体附件(请参阅 媒体附件)

______________________________________________________________________

调度

list_time_slots

列出为提供商配置的发布时隙。时隙定义了首选的调度时间。

参数类型必填说明
providerIdstring提供者 idlist_providers
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

退货: 数组 { timeSlotHour, timeSlotMinute, weekDays } 哪里 weekDays[0-6] (0=星期日)。

______________________________________________________________________

病毒模板

浏览从高绩效帖子中提取的病毒帖子模板库。每个模板都包括结构、使用说明和原始示例帖子及其参与度指标。

需要付费计划: 以下两种工具都需要一个有效的付费计划(用户拥有的计划、终身交易或拥有付费计划的工作区的会员资格)。免费计划用户将获得: _“访问病毒帖子模板需要付费计划”_.

list_viral_templates

列出带有过滤、自由文本搜索、排序和分页功能的病毒帖子模板。

参数类型必填说明
searchstring自由文本搜索。与示例帖子文本匹配(不区分大小写)。
categorystring筛选到单个类别。使用由返回的值 list_viral_template_categoriescategories 先前响应的字段。
sortenum按参与后的示例排序: views (默认), likes, replies,或 engagementRate.下降。
pagenumberNo页码,1索引。默认为 1.
pageSizenumber每页项目数(1-50)。默认为 20高于50的值被限制在50。

退货: { templates, categories, totalCount, page, pageSize }.

每个模板:

字段类型描述
idstring模板ID
categorystring模板类别
templatestring模板结构
instructionsstring如何使用模板
exampleTextstring原始病毒帖子文本
viewsnumber示例帖子的浏览量
likesnumber喜欢示例帖子
repliesnumber示例帖子的回复数
engagementRatenumber示例帖子的参与率(点赞+回复/浏览)

list_viral_template_categories

列出所有可用的模板类别,并注明每个类别中的模板数量。在致电之前,作为发现步骤很有用 list_viral_templates 带着一个 category 过滤器。

参数:

退货: { categories: [{ category, templateCount }] },按类别按字母顺序排列。

______________________________________________________________________

账户

get_subscription

获取您当前的计划、剩余职位限制和帐户配额。

参数类型必填说明
teamIdstring团队ID。如果未提供,则使用活动团队。通过 "personal" 个人账户。

退货: planType, planName, isFreePlan, remainingPosts, limits (最大团队数、最大成员数、最大账户数)。

get_user_settings

获取您的用户设置,包括时区、日期格式和自动转发配置。

参数:

退货: notificationsTimezone, dateFormat, autoRepostEnabled, autoRepostDelays以及更多。

______________________________________________________________________

常见工作流

在下一个空闲时间安排帖子

  1. list_providers → 获取您的提供商ID
  2. list_time_slots → 查找可用插槽
  3. create_post → 安排下一个时隙时间

检查每周绩效

  1. list_providers → 获取您的提供商用户ID
  2. get_live_metrics → 看看本周与上周的对比
  3. get_recommendations → 获取改进建议

编辑现有帖子

  1. get_thread → 检索线程及其帖子ID
  2. edit_post → 更新特定帖子的文本、主题或媒体

向现有帖子添加帖子

  1. get_thread → 使用ID检索当前帖子
  2. edit_thread → 传递所有现有帖子(带ID)和新帖子(不带ID)

创建一个跟进帖子

  1. create_post → 创建并安排帖子(返回 threadId)
  2. set_thread_follow_up → 附上促销回复

______________________________________________________________________

提示

MCP服务器包括内置的提示——可重复使用的模板,指导您的AI助手完成多步骤的工作流程。在 克劳德桌面版,通过键入来访问它们 / 在聊天中。在 克劳德代码,跑 claude prompts 列出它们。

weekly-report

生成一份包含参与度指标、热门帖子、追随者增长和建议的每周绩效报告。

论据:

参数必填说明
providerUserId您的提供商用户ID

例子: _“为我的Threads帐户运行周报提示”_

content-ideas

根据你表现最佳的内容和发布模式生成帖子创意。

论据:

参数必填说明
providerUserId您的提供商用户ID
topic要关注的主题(例如“生产力”、“初创公司”)

例子: _“给我关于营销的内容想法”_

optimize-schedule

分析你的发帖模式,并建议本周的最佳发帖时间表。

论据:

参数必填说明
providerUserId您的提供商用户ID
providerId您的提供商ID

例子: _“帮助我优化我的发布时间表”_

draft-review

在发布之前,请查看您当前的草稿并获得改进建议。

论据:

例子: _“审阅我的草稿,并告诉我如何改进”_

monthly-recap

生成一份全面的月度回顾,包括关键指标、热门帖子和增长趋势。

论据:

参数必填说明
providerUserId您的提供商用户ID

例子: _“生成我的月度回顾”_

______________________________________________________________________

API密钥管理

  • 创建密钥: 设置>MCP>创建API密钥
  • 视图键: 设置>MCP(显示前缀、创建日期、上次使用时间)
  • 删除密钥: 单击任意按键旁边的垃圾图标
  • 端点: GET/POST/DELETE /api/user/mcp-keys

密钥在存储之前用SHA-256进行散列。原始密钥在创建时只显示一次。

______________________________________________________________________

认证

MCP服务器支持两种身份验证方法。两者都使用 Authorization: Bearer 头球

OAuth 2.1(适用于claude.ai和支持OAuth的客户端)

服务器实现 MCP授权规范 使用OAuth 2.1和PKCE(S256)。像claude.ai这样支持OAuth的客户端会自动处理流。

OAuth端点:

端点描述
GET /.well-known/oauth-protected-resource资源元数据(RFC 9728)
GET /.well-known/oauth-authorization-server授权服务器元数据(RFC 8414)
POST /api/mcp/oauth/register动态客户端注册(RFC 7591)
GET /api/mcp/oauth/authorize授权端点
POST /api/mcp/oauth/token代币交换和刷新
POST /api/mcp/oauth/revoke令牌撤销(RFC 7009)

它是如何工作的:

  1. 客户端通过众所周知的元数据发现OAuth端点
  2. 客户端使用动态客户端注册来注册自己
  3. 用户被重定向到使用其BlackTwist帐户登录(使用现有的BlackTwist登录)
  4. 登录后,会发出授权码并将其兑换为访问+刷新令牌
  5. 访问令牌在1小时后过期,并使用刷新令牌自动刷新(30天生存期)

API密钥(用于桌面客户端和CLI工具)

API密钥是以 bt_mcp_。默认情况下,它们不会过期,适用于不支持OAuth的客户端(Claude Desktop、Cursor、Claude Code CLI)。

API密钥管理 了解如何创建和管理密钥。

______________________________________________________________________

技术细节

  • 端点: POST /api/mcp (JSON-RPC)
  • 运输: WebStandardStreamableHTTPServerTransport@modelcontextprotocol/sdk
  • 模式: 无状态(无会话管理)
  • 认证: 带有PKCE(S256)或API密钥的OAuth 2.1通过 Authorization: Bearer 头球
  • 未经身份验证的发现: initializetools/list 无需身份验证即可调用,因此MCP注册表(如Glama)可以检查可用工具
  • 速率限制: 经过身份验证的请求的速率限制为每个IP每分钟60个请求。未经身份验证的发现请求限制为每个IP每分钟10个请求。
  • 源代码: src/libs/mcp/ (服务器、身份验证、oauth、工具), src/app/api/mcp/ (路由处理程序、OAuth端点)

目录标签

目录标签

数据分析ClaudeAI助手集成社交账号管理本地部署内容调度

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

25

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauthremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP