使用说明
导管
每个CMS都有一个连接。
Conduit是一个企业级MCP(模型上下文协议)服务器,通过单个接口提供对多个内容管理系统的统一访问。将您的AI助手连接到Contentful、Sanity、WordPress等,而无需为每个助手编写自定义集成。
特性
- 统一API -跨平台所有CMS操作的单一界面
- 多CMS支持 -同时连接到多个CMS平台
- 企业就绪 -内置缓存、速率限制和审计日志记录
- 类型安全 -完全支持TypeScript,具有全面的类型定义
- 可扩展 -易于添加新CMS平台的适配器架构
支持的CMS平台
无头CMS
| 平台 | 读 | 写 | 搜索 | 媒体 |
|---|---|---|---|---|
| 满足 | ✅ | ✅ | ✅ | ✅ |
| 理智 | ✅ | ✅ | ✅ | ✅ |
| WordPress | ✅ | ✅ | ✅ | ✅ |
企业CMS
| 平台 | 读 | 写 | 搜索 | 媒体 |
|---|---|---|---|---|
| Sitecore XM Cloud | ✅ | ❌* | ✅ | ✅ |
| Sitecore XP | ✅ | ✅ | ✅ | ✅ |
| 翁布拉科 | ✅ | ❌* | ✅ | ✅ |
| 优化 | ✅ | ❌* | ✅ | ✅ |
*通过内容交付API只读。Sitecore XP支持通过SSC进行写入。
快速开始
安装
npm install conduit-mcp
配置
创建 conduit.yaml 文件:
# Single CMS mode
adapter:
type: contentful
credentials:
spaceId: ${CONTENTFUL_SPACE_ID}
accessToken: ${CONTENTFUL_ACCESS_TOKEN}
middleware:
cache:
enabled: true
ttlMs: 60000
rateLimit:
enabled: true
windowMs: 60000
maxRequests: 100
或连接多个CMS平台:
# Multi-CMS mode (Enterprise)
adapters:
contentful:
type: contentful
credentials:
spaceId: ${CONTENTFUL_SPACE_ID}
accessToken: ${CONTENTFUL_ACCESS_TOKEN}
sanity:
type: sanity
credentials:
projectId: ${SANITY_PROJECT_ID}
dataset: production
token: ${SANITY_TOKEN}
wordpress:
type: wordpress
credentials:
url: ${WORDPRESS_URL}
username: ${WORDPRESS_USERNAME}
applicationPassword: ${WORDPRESS_APP_PASSWORD}
跑步
# Using npx
npx conduit-mcp
# Or with environment variable
CONDUIT_CONFIG=/path/to/conduit.yaml npx conduit-mcp
MCP客户端配置
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"conduit": {
"command": "npx",
"args": ["conduit-mcp"],
"env": {
"CONTENTFUL_SPACE_ID": "your-space-id",
"CONTENTFUL_ACCESS_TOKEN": "your-token"
}
}
}
}
可用工具
| 工具 | 说明 |
|---|---|
content_list |
使用过滤器和分页列出内容 |
content_get |
按ID获取单个内容项 |
content_search |
跨内容的全文搜索 |
content_create |
创建新内容 |
content_update |
更新现有内容 |
media_list |
列出媒体资产 |
media_get |
获取单一媒体资产 |
schema_list |
列出可用内容类型 |
schema_get |
获取内容类型架构 |
health_check |
检查适配器连接 |
中间件
缓存
具有可配置TTL的LRU缓存:
middleware:
cache:
enabled: true
ttlMs: 60000 # 1 minute
maxSize: 500 # Max entries
速率限制
滑动窗口速率限制器:
middleware:
rateLimit:
enabled: true
windowMs: 60000 # 1 minute window
maxRequests: 100 # Max requests per window
审计日志
基于Pino的结构化日志记录:
middleware:
audit:
enabled: true
level: info # debug, info, warn, error
logFile: ./audit.log # Optional file output
程序化使用
import { ConduitServer, loadConfig } from "conduit-mcp";
const config = await loadConfig("./conduit.yaml");
const server = new ConduitServer(config);
await server.start();
Sitecore X射线(高级)
X-Ray是一个用于Sitecore XP安装的全面审计和知识图系统。
特性
- 12分析算法:孤立检测、未使用的模板、断开的链接、安全分析等
- 健康评分:A-F等级,有可操作的建议
- 知识图谱:可视化项目、模板、渲染之间的关系
- 分层扫描:高效处理超过10万件物品
MCP工具
| 工具 | 说明 |
|---|---|
xray_scan |
开始新的审核扫描 |
xray_status |
检查扫描进度 |
xray_report |
获取问题和健康评分 |
xray_graph |
获取知识图数据 |
xray_health |
快速健康检查 |
看 docs/reference/XRAY.md 获取完整文档。
添加自定义适配器
实施 ICMSAdapter 接口:
import { BaseAdapter, type AdapterConfig } from "conduit-mcp";
export class MyAdapter extends BaseAdapter {
readonly name = "mycms";
readonly displayName = "My CMS";
async initialize(config: AdapterConfig) {
// Initialize client
}
async listContent(filter) {
// Implement
}
// ... implement other methods
}
发展
# Install dependencies
npm install
# Run in development mode
npm run dev
# Run tests
npm test
# Type check
npm run typecheck
# Build
npm run build
环境变量
无头CMS
| 变量 | 描述 |
|---|---|
CONTENTFUL_SPACE_ID |
内容空间ID |
CONTENTFUL_ACCESS_TOKEN |
有内容的交付API令牌 |
SANITY_PROJECT_ID |
Sanity项目ID |
SANITY_TOKEN |
Sanity API代币 |
WORDPRESS_URL |
WordPress网站URL |
WORDPRESS_USERNAME |
WordPress用户名 |
WORDPRESS_APP_PASSWORD |
WordPress应用程序密码 |
企业CMS
| 变量 | 描述 |
|---|---|
SITECORE_API_KEY |
Sitecore Experience Edge API密钥(XM云) |
SITECORE_ENDPOINT |
Sitecore边缘端点(可选) |
SITECORE_SITE_NAME |
Sitecore站点名称 |
SITECORE_XP_URL |
Sitecore XP实例URL |
SITECORE_XP_USERNAME |
sitecore XP用户名 |
SITECORE_XP_PASSWORD |
Sitecore XP密码 |
SITECORE_XP_DOMAIN |
Sitecore域(默认:Sitecore) |
UMBRACO_URL |
Umbraco实例URL |
UMBRACO_API_KEY |
Umbraco API密钥 |
OPTIMIZELY_URL |
优化实例URL |
OPTIMIZELY_CLIENT_ID |
OAuth客户端ID |
OPTIMIZELY_CLIENT_SECRET |
OAuth客户端密钥 |
文档
许可证
麻省理工学院©Twofold Tech
