内容管理服务器

Featurebase MCP Server 是一个基于Node.js的模型上下文协议服务器,提供对Featurebase API的访问,用于管理帖子、评论和更新日志。

  • by eusthace811
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 eusthace811/featurebase-mcp

使用说明

功能基础MCP服务器

模型上下文协议(MCP)服务器,提供对功能库API的访问,用于管理帖子、评论和变更日志。内置原生Node.js 22+fetch API,实现最佳性能和最小依赖性。

特性

  • 岗位管理

    • 列出带有筛选选项的帖子
    • 创建新帖子
    • 更新现有帖子
    • 删除帖子
    • 获取投票人
    • 将投票人添加到帖子中
    • 解决后蛞蝓
    • 查找类似的提交
  • 评论管理

    • 获取帖子/更新日志的评论
    • 创建新评论或回复
    • 更新评论
    • 删除评论
  • 变更日志管理

    • 列出带有过滤功能的变更日志(草稿/实时)
    • 创建新的变更日志(HTML或Markdown)
    • 更新现有变更日志
    • 通过电子邮件通知发布/取消发布更改日志
    • 删除更改日志
    • 管理变更日志订阅者
    • 添加/删除订阅者

安装

来自GitHub(推荐)

使用npx直接从GitHub运行:

npx -y github:eusthace811/featurebase-mcp

来自npm(一旦发布)

npx -y featurebase-mcp

或全局安装:

npm install -g featurebase-mcp

来源

git clone https://github.com/eusthace811/featurebase-mcp.git
cd featurebase-mcp
pnpm install
pnpm build

用法

Claude桌面配置

将此服务器添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

在GitHub上使用npx(推荐)

{
  "mcpServers": {
    "featurebase": {
      "command": "npx",
      "args": [
        "-y",
        "github:eusthace811/featurebase-mcp",
        "--api-key",
        "your-api-key-here"
      ]
    }
  }
}

可选:添加 --org-url 如果你需要slug分辨率:

{
  "mcpServers": {
    "featurebase": {
      "command": "npx",
      "args": [
        "-y",
        "github:eusthace811/featurebase-mcp",
        "--api-key",
        "your-api-key-here",
        "--org-url",
        "https://your-org.featurebase.app"
      ]
    }
  }
}

使用npx和npm(一旦发布)

{
  "mcpServers": {
    "featurebase": {
      "command": "npx",
      "args": [
        "-y",
        "featurebase-mcp",
        "--api-key",
        "your-api-key-here"
      ]
    }
  }
}

使用全局安装

{
  "mcpServers": {
    "featurebase": {
      "command": "featurebase-mcp",
      "args": [
        "--api-key",
        "your-api-key-here"
      ]
    }
  }
}

使用本地安装

{
  "mcpServers": {
    "featurebase": {
      "command": "node",
      "args": [
        "/path/to/featurebase-mcp/build/index.js",
        "--api-key",
        "your-api-key-here"
      ]
    }
  }
}

替代方案:使用环境变量

您还可以使用环境变量代替CLI参数(或组合使用):

{
  "mcpServers": {
    "featurebase": {
      "command": "npx",
      "args": ["-y", "github:eusthace811/featurebase-mcp"],
      "env": {
        "FEATUREBASE_API_KEY": "your-api-key-here",
        "FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
      }
    }
  }
}

备注:CLI参数优先于环境变量。

获取API密钥

  1. 登录您的Featurebase帐户
  2. 导航到您的帐户设置
  3. 生成API密钥
  4. 确保其安全-永远不要将其提交给版本控制

配置选项

可以使用CLI参数(推荐)或环境变量配置服务器。

CLI参数(推荐)

  • --api-key:您的FeatureBase API密钥(必需)
  • --org-url:您组织的FeatureBase URL(例如,“https://feedback.spacelift.io“)。仅在使用时才需要 resolve_post_slug 工具。
  • --base-url:自定义API基本URL(默认为“https://do.featurebase.app/v2")

例子:

npx -y github:eusthace811/featurebase-mcp --api-key "your-api-key" --org-url "https://your-org.featurebase.app"

环境变量(备选)

  • FEATUREBASE_API_KEY:您的FeatureBase API密钥(如果未使用,则为必需 --api-key)
  • FEATUREBASE_ORG_URL:贵组织的FeatureBase URL(可选)
  • FEATUREBASE_BASE_URL:自定义API基本URL(可选)

您可以设置它们:

  1. 在您的Claude Desktop配置中(见上面的示例)
  2. 在shell中导出: export FEATUREBASE_API_KEY="your-api-key-here"
  3. 运行服务器时: FEATUREBASE_API_KEY="your-api-key-here" npx featurebase-mcp

备注:CLI参数优先于环境变量。

可用工具

帖子

list_posts

列出具有可选筛选功能的帖子。

参数:

  • id:按ID查找特定帖子
  • q:按标题或内容搜索帖子
  • category:按板名筛选(数组)
  • status:按状态ID筛选(数组)
  • sortBy:排序顺序(例如,“date:desc”、“upvotes:desc”)
  • startDate:在此日期之后创建的帖子
  • endDate:在此日期之前创建的帖子
  • limit:每页结果
  • page:页码

create_post

创建一个新帖子。

参数:

  • title (必填):职位名称(最少2个字符)
  • category (必填):董事会/类别名称
  • content:帖子内容
  • email:提交人的电子邮件
  • authorName:新用户的名称
  • tags:标记名数组
  • commentsAllowed:启用/禁用注释
  • status:职位状态
  • date:创建日期
  • customInputValues:自定义字段值

update_post

更新现有帖子。

参数:

  • id (必填):要更新的帖子ID
  • title:新标题
  • content:新内容
  • status:新状态
  • commentsAllowed:启用/禁用注释
  • category:新类别
  • sendStatusUpdateEmail:向支持者发送有关状态更改的电子邮件
  • tags:新标签
  • inReview:对帖子进行审查
  • date:创建日期
  • customInputValues:自定义字段值

delete_post

永久删除帖子。

参数:

  • id (必填):要删除的帖子ID

get_post_upvoters

获取支持帖子的用户列表。

参数:

  • submissionId (必填):岗位ID
  • page:页码(默认值:1)
  • limit:每页结果数(默认值:10,最大值:100)

add_upvoter

在帖子中添加一个投票人。

参数:

  • id (必填):岗位ID
  • email (必填):Upvoter的电子邮件
  • name (必填):投票人姓名

resolve_post_slug

将帖子slug转换为帖子ID,并获取完整的帖子详细信息。

参数:

  • slug (必填):从URL发布slug(例如,“spacectl堆栈本地预览目标”)

返回完整的帖子数据,包括ID、标题、内容和元数据。

get_similar_submissions

查找与给定查询文本类似的帖子。

参数:

  • query (必填):搜索查询文本以查找类似的提交内容
  • locale:搜索区域设置(默认值:“en”)

根据内容相似性返回类似帖子的列表。

评论

get_comments

获取帖子或更新日志的评论。

参数:

  • submissionId:帖子ID或slug(如果没有changelogId,则需要)
  • changelogId:变更日志ID或slug(如果没有submissionId,则需要)
  • privacy:按隐私筛选(“公共”、“私人”、“全部”)
  • inReview:筛选审阅中的评论
  • commentThreadId:获取一个帖子中的所有评论
  • limit:每页结果(默认值:10)
  • page:页码(默认值:1)
  • sortBy:排序顺序(“最佳”、“顶部”、“新”、“旧”)

create_comment

创建新评论或回复。

参数:

  • content (必填):评论内容
  • submissionId:帖子ID或slug(如果没有changelogId,则需要)
  • changelogId:变更日志ID或slug(如果没有submissionId,则需要)
  • parentCommentId:答复的父评论ID
  • isPrivate:将评论设置为私有(仅限管理员)
  • sendNotification:通知选民(默认值:true)
  • createdAt:设置创建日期
  • author:以特定用户身份发布(对象名称、电子邮件、个人资料图片)

update_comment

更新现有评论。

参数:

  • id (必填):评论ID
  • content:新内容
  • isPrivate:设为私有(仅限管理员)
  • pinned:将评论固定到顶部
  • inReview:审阅评论
  • createdAt:更新创建日期

delete_comment

删除评论(如果有回复,则软删除)。

参数:

  • id (必填):要删除的评论ID

变更日志

list_changelogs

列出具有可选筛选功能的变更日志。

参数:

  • id:按ID查找特定的更改日志
  • q:按标题或内容搜索变更日志
  • categories:按类别名称筛选(数组)
  • state:按州筛选(“草稿”或“实时”)
  • limit:每页结果(最多100个)
  • page:页码
  • select:要返回的字段(例如,“id,title”或“title,state,categories”)

create_changelog

创建新的变更日志条目(从草稿状态开始)。

参数:

  • title (必填):变更日志标题
  • htmlContent:更改日志的HTML内容(使用此OR markdownContent)
  • markdownContent:变更日志的Markdown内容(使用this或htmlContent)
  • changelogCategories:类别标识符数组(例如,[“新”、“固定”、“改进”])

备注:使用 changelogCategories (不是 categories)创建变更日志时。

update_changelog

更新现有的更改日志(不更改发布状态)。

参数:

  • id (必需):要更新的更改日志ID
  • title:新标题
  • htmlContent:新HTML内容
  • markdownContent:新的降价内容
  • changelogCategories:新类别(数组)

备注:要更改发布状态,请使用 publish_changelog 或 unpublish_changelog 工具。

publish_changelog

发布变更日志,并可选择向订阅者发送电子邮件通知。

参数:

  • id (必填):要发布的更改日志ID
  • sendEmail (必填):是否向订阅者发送电子邮件通知
  • locales:要发布到的区域设置数组(如果未指定,默认为空数组=所有区域设置)
  • scheduledDate:未来按计划日期发布(ISO 8601格式)

备注:The locales 参数是可选的。如果没有提供,默认情况下,更改日志将发布到所有语言环境。

unpublish_changelog

取消发布更改日志(将状态从实时更改为草稿)。

参数:

  • id (必填):更改日志ID以取消发布
  • locales:要取消发布的区域设置数组(如果未指定,默认为空数组=所有区域设置)

备注:The locales 参数是可选的。如果没有提供,默认情况下,更改日志将从所有语言环境中取消发布。

delete_changelog

永久删除更改日志。

参数:

  • id (必填):要删除的更改日志ID

get_changelog_subscribers

获取更新日志订阅者列表。

参数:

  • limit:每页结果数(默认值:10,最大值:100)
  • page:页码(默认值:1)

add_changelog_subscriber

向更改日志更新添加订阅者。

参数:

  • email (必填):订阅者电子邮件
  • name (必填):认购人姓名

remove_changelog_subscriber

从更新日志中删除订阅者。

参数:

  • email (必填):要删除的订阅者电子邮件

发展

# Install dependencies
pnpm install

# Build TypeScript
pnpm build

# Run in development mode
pnpm dev

技术细节

  • Node.js:需要Node.js 22.0.0或更高版本
  • 依赖项:使用本机fetch API构建(无axios依赖项)
  • 包管理器:使用pnpm实现更快、更高效的安装
  • TypeScript:完全使用TypeScript 5.7+

安全

  • 永远不要在代码中硬编码API密钥
  • 对API键使用CLI参数或环境变量
  • 确保API密钥的安全并定期轮换
  • 如果没有有效的API密钥(通过 --api-key 争论或 FEATUREBASE_API_KEY 环境变量)

出版

此服务器可在以下位置使用:

有关发布说明,请参阅 发布.md.

贡献

欢迎投稿!请随时提交拉取请求。

许可证

麻省理工学院