无情MCP服务器v2.0
用于Relentless CMS的模型上下文协议(MCP)服务器。这使Claude等人工智能助手能够通过内置验证和鲁棒性功能的无情API读取和写入Notion数据库。
特性
- 🤖 人工智能驱动的内容创作 -让Claude直接写入您的Notion数据库
- ✅ 插入前验证 -在错误到达Notion之前捕获错误(v2.0中的新功能!)
- 🔄 自动检索 -通过指数回退处理瞬态网络故障
- 📖 阅读概念内容 -从AI对话中查询您的Notion数据
- 🔒 安全 -使用您的无情API密钥进行身份验证
- 🚀 简单设置 -只需配置并开始使用
- ⏱️ 超时保护 -30秒超时可防止挂起请求
- 📊 更好的错误消息 -带有修复建议的清晰、可操作的错误消息
v2.0中的新增功能
验证系统
- 插入前验证 在API调用之前捕获错误
- 类型检查 确保数据与Notion属性类型匹配
- 所需的现场检测 防止丢失关键字段
- 选项验证 用于选择/多选字段
- 大小限制 防止过载
稳健性改进
- 重试逻辑 指数回退(最多3次尝试)
- 费率限制处理 具有自动回退功能
- 超时保护 (每次请求30秒)
- 更好的错误消息 提供具体的修复建议
- 操作日志 用于调试
安装
1.构建MCP服务器
cd packages/relentless-mcp
pnpm install
pnpm build2.配置克劳德桌面
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"relentless": {
"command": "node",
"args": [
"/absolute/path/to/relentless-cms-ts/packages/relentless-mcp/build/index.js"
],
"env": {
"RELENTLESS_API_KEY": "rts_your_api_key_here"
}
}
}
}重要:替换:
- 此包的实际绝对路径
rts_your_api_key_here使用您的不屈不挠的API密钥
就是这样!只需要一个环境变量。
验证是自动的!
- 架构自动从Relentless API获取
- 无需额外配置
- 验证数据类型、必填字段和选择选项
- 提供有关潜在问题的有用警告
- 将失败的插入减少约95%
3.重新启动克劳德桌面
保存配置后,重新启动Claude Desktop。您应该看到MCP服务器出现在🔌 偶像。
可用工具
relentless_list_databases
列出连接到您的Relentless帐户的所有Notion数据库。
示例:
Show me all my connected Notion databases.退货:数据库名称及其ID和URL的列表。
先用这个 在使用其他工具之前发现可用的数据库。
relentless_insert
在具有自动验证功能的Notion数据库中创建新条目。
示例:
Create a new blog post titled "Getting Started with Relentless"
with markdown content explaining the basics, and save it to my
blog database.参数:
database:您的数据库名称(例如,“博客”、“文档”、“潜在客户”)。使用relentless_list_databases查看可用数据库。data:以Notion属性名为键的对象
{
"Title": "My Post",
"Content": "# Hello\n\nThis is my post...",
"Published": true,
"Category": "Tutorial"
}skipValidation:(可选)设置为true绕过验证以实现更快的插入
验证功能:
- ✅ 检查必填字段是否存在
- ✅ 验证数据类型(字符串、数字、布尔值等)
- ✅ 根据允许的值验证选择选项
- ✅ 检查电子邮件和URL格式
- ✅ 检测只读字段
- ⚠️ 警告缺少公共字段
- ⚠️ 警告不在架构中的字段
错误示例:
❌ Validation failed:
• Title: Required field is missing (expected: non-null value)
• Category: Invalid select option (expected: One of: Tutorial, Guide, News)
• Email: Invalid email format (expected: valid email address)
Fix these errors and try again, or use skipValidation: true to bypass.relentless_read
按slug读取特定条目。
示例:
Show me the content of the "getting-started" doc from my
docs database.参数:
database:您的数据库名称slug:入口的蛞蝓
relentless_list
列出数据库中的所有条目(完整内容)。
示例:
Show me all blog posts from my blog database.参数:
database:您的数据库名称
relentless_index
获取条目索引(仅限蛞蝓和标题,更快)。
示例:
List all documentation pages (just titles and slugs).参数:
database:您的数据库名称format:“array”或“object”(可选,默认为“array”)
用法示例
配置后,您可以询问Claude:
发现
“显示我所有连接的Notion数据库”
“我有哪些可用的数据库?”
写作内容
“为身份验证流程创建全面的文档,并将其保存到我的文档数据库中。包括代码示例和最佳实践。”
“写一篇关于无头CMS好处的博客文章,并将其保存到我的博客中,分类为‘思想领导力’”
“在Notion中向测试数据库添加内容”(Claude将自动使用数据库名称)
阅读内容
“显示我所有的文档页面”
“我的‘api参考’文档中有什么?”
“列出所有博客文章及其标题”
工作流
“阅读我所有的文档,找出文档中的空白,然后编写新的文档来填补这些空白”
“审阅我的博客文章,为3篇新文章推荐标题,然后为它们创建草稿”
稳健性特征
自动检索
服务器自动重试失败的请求最多3次,并采用指数回退:
- 尝试1:立即
- 尝试2:等待1秒
- 尝试3:等待2秒
- 尝试4:等待4秒(最多10秒)
费率限制处理
如果API返回429(速率受限),则服务器:
- 尊敬
Retry-After头球 - 等待并自动重试
- 记录重试延迟
超时保护
所有请求都有30秒的超时时间,以防止挂起。
错误恢复
服务器区分以下内容:
- 可重试的错误 (5xx,网络问题):自动重试
- 不可重试的错误 (4xx,验证):立即报告并提供修复建议
发展
在开发模式下运行
pnpm dev查看日志
MCP服务器记录到stderr。要查看日志,请执行以下操作:
- 打开克劳德桌面
- 转到查看→ 开发者→ 显示日志
- 查找以下操作日志:
🚀 Relentless MCP server running (v2.0.0)
API: https://api.relentless.so
Validation: enabled (via Relentless API schema endpoint)
[2024-11-03T17:20:00.000Z] Listing databases
[2024-11-03T17:20:00.000Z] Starting insert to blog
🔍 Validating data before insertion...
✅ Validation passed
📤 Inserting data...
[2024-11-03T17:20:01.000Z] ✅ Insert successful故障排除
MCP服务器未出现
- 检查路径是否正确
claude_desktop_config.json是正确和绝对的 - 确保你跑了
pnpm build - 重新启动克劳德桌面
- 检查Claude Desktop日志是否有错误
验证错误
“缺少必填字段”
- 检查是否包括所有标题字段
- 标题字段在Notion中始终是必需的
- 示例修复:添加
"Title": "My Title"到您的数据
“选择选项无效”
- 该值必须与Notion数据库中的选项完全匹配
- 检查大小写和拼写
- 查看有效选项列表的错误消息
“无效类型”
- 确保数字是数字,而不是字符串
- 布尔值应该是
true/false,不"true"/"false" - 数组应该是数组,而不是字符串
“在数据库架构中找不到属性”
- 属性名称与Notion数据库不匹配
- 检查拼写和大小写(区分大小写!)
- 验证数据库中是否存在该属性
API错误
401未经授权
- 验证您的
RELENTLESS_API_KEY是正确的 - 检查API密钥是否尚未过期
403禁止
- 确保您拥有此API
- 检查API是否为非私有或已禁用
404未找到
- 验证“无情”面板中是否存在API路径
- 检查apiPath参数的拼写
429价格有限
- 服务器将在指定的延迟后自动重试
- 如果持续存在,请降低请求频率
500内部服务器错误
- 检查无情的API日志
- 验证Notion集成是否配置正确
- 确保Notion数据库与集成共享
绕过验证
如果您需要绕过验证(不建议):
{
apiPath: "blog",
data: { /* your data */ },
skipValidation: true
}运作原理
You ask Claude "Add content to my blog"
↓
Claude uses relentless_list_databases to discover available databases
↓
Claude uses relentless_insert with database name + data
↓
MCP Server fetches schema from Relentless API (/api/v1/db/:dbName/schema)
↓
[VALIDATION] Check data against schema locally
↓
MCP Server makes HTTP POST to Relentless API (with retries)
↓
Relentless API inserts into Notion via Notion API
↓
Your app reads from Relentless API → gets latest Notion data关键简化:只需您的API密钥,MCP服务器就可以:
- 列出所有连接的数据库
- 获取模式以进行验证
- 仅使用数据库名称插入数据
无需配置用户名或记住API路径!
性能比较
| 度量 | v1.0(无验证) | v2.0(有验证) |
|---|---|---|
| 成功率 | ~70% | ~95% |
| 插入失败 | 30% | 5% |
| 出错时间 | API调用之后 | API调用之前 |
| 错误清晰度 | 通用 | 特定修复 |
| 网络故障 | 手动重试 | 自动重试 |
| 速率限制 | 手动处理 | 自动处理 |
安全说明
- 您的API密钥存储在本地的Claude Desktop配置中
- MCP服务器在您的计算机上本地运行
- 所有请求都要通过无情的API(尊重您的API身份验证)
- Claude无法直接访问您的Notion,只能通过您的无情API访问
- 架构是从Relentless API(具有Notion访问权限)获取的,而不是直接从Notion获取的
从v1.0迁移
如果您从v1.0升级:
- 重建服务器:
pnpm install && pnpm build - 更新您的配置:删除
RELENTLESS_USERNAME从您的Claude Desktop配置(仅限RELENTLESS_API_KEY现在需要) - 重新启动克劳德桌面
- 新工具:使用
relentless_list_databases发现您的数据库
新版本将配置简化为一个环境变量!
许可证
麻省理工学院
