使用说明
功能基础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密钥
- 登录您的Featurebase帐户
- 导航到您的帐户设置
- 生成API密钥
- 确保其安全-永远不要将其提交给版本控制
配置选项
可以使用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(可选)
您可以设置它们:
- 在您的Claude Desktop配置中(见上面的示例)
- 在shell中导出:
export FEATUREBASE_API_KEY="your-api-key-here" - 运行服务器时:
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(必填):要更新的帖子IDtitle:新标题content:新内容status:新状态commentsAllowed:启用/禁用注释category:新类别sendStatusUpdateEmail:向支持者发送有关状态更改的电子邮件tags:新标签inReview:对帖子进行审查date:创建日期customInputValues:自定义字段值
delete_post
永久删除帖子。
参数:
id(必填):要删除的帖子ID
get_post_upvoters
获取支持帖子的用户列表。
参数:
submissionId(必填):岗位IDpage:页码(默认值:1)limit:每页结果数(默认值:10,最大值:100)
add_upvoter
在帖子中添加一个投票人。
参数:
id(必填):岗位IDemail(必填):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:答复的父评论IDisPrivate:将评论设置为私有(仅限管理员)sendNotification:通知选民(默认值:true)createdAt:设置创建日期author:以特定用户身份发布(对象名称、电子邮件、个人资料图片)
update_comment
更新现有评论。
参数:
id(必填):评论IDcontent:新内容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(必需):要更新的更改日志IDtitle:新标题htmlContent:新HTML内容markdownContent:新的降价内容changelogCategories:新类别(数组)
备注:要更改发布状态,请使用 publish_changelog 或 unpublish_changelog 工具。
publish_changelog
发布变更日志,并可选择向订阅者发送电子邮件通知。
参数:
id(必填):要发布的更改日志IDsendEmail(必填):是否向订阅者发送电子邮件通知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.
贡献
欢迎投稿!请随时提交拉取请求。
许可证
麻省理工学院