da mcp

用于文档编写(DA)的远程模型上下文协议(MCP)服务器。此服务器为Claude或ChatGPT等LLM助手提供了直接访问DA管理操作的权限。
特性
- 10 DA管理工具:用于管理DA存储库的全套工具
- 远程访问:可部署在Cloudflare Workers上,具有全球边缘分布
- 可流式传输的HTTP:用于远程服务器的现代MCP传输协议
- 令牌传递:通过授权头传递DA API令牌进行简单身份验证
- 生产就绪:错误处理、日志记录、CORS支持和健康检查
- TypeScript:全类型代码库,确保可靠性和可维护性
建筑
┌─────────────────┐
│ MCP Client │
│ (Claude/Cursor) │
└────────┬────────┘
│ Streamable HTTP
│ + DA Token
↓
┌─────────────────────────┐
│ DA MCP │
│ ┌──────────────────┐ │
│ │ MCP Server │ │
│ │ (10 Tools) │ │
│ └──────────────────┘ │
└───────────┬─────────────┘
│ HTTPS + Token
↓
┌─────────────────────────┐
│ DA Admin API │
│ (admin.da.live) │
└─────────────────────────┘项目结构
src/
├── index.ts # Cloudflare Worker entry point
├── mcp/
│ ├── server.ts # MCP server initialization
│ ├── tools.ts # Tool definitions (schemas)
│ └── handlers.ts # Tool implementation handlers
└── da-admin/
├── client.ts # DA Admin API client
└── types.ts # TypeScript types可用工具
| 工具 | 说明 |
|---|---|
da_list_sources | 列出存储库中的源和目录 |
da_get_source | 获取特定源文件的内容 |
da_create_source | 创建新的源文件 |
da_update_source | 更新现有源文件 |
da_delete_source | 删除源文件 |
da_copy_content | 在不同位置之间复制内容 |
da_move_content | 在不同位置之间移动内容 |
da_get_versions | 获取文件的版本历史记录 |
da_lookup_media | 查找媒体参考 |
da_lookup_fragment | 查找片段引用 |
先决条件
- Node.js 18+和npm
- Cloudflare帐户(免费版有效)
- Wrangler CLI已安装(
npm install -g wrangler) - DA管理员API令牌
安装
- 克隆和安装依赖关系:
git clone
cd da-mcp
npm install- 配置牧马人:
编辑 wrangler.toml 如果需要自定义部署设置。
发展
本地开发
使用热重载在本地运行服务器:
npm run dev服务器将在以下时间可用 http://localhost:8787
测试终点
- 健康检查:
http://localhost:8787/health - MCP端点:
http://localhost:8787/mcp
MCP检验员测试
- 启动本地服务器:
npm run dev - 打开 MCP检查员
- 配置连接:
- 类型: Streamable HTTP - 网址: http://localhost:8787/mcp - 标题: Authorization: Bearer YOUR_DA_TOKEN
部署
部署到Cloudflare Workers
# Deploy to production
npm run deploy
# Or deploy to development environment
wrangler deploy --env development公共URL
部署后,您的MCP服务器可以在以下位置访问:
- 直接MCP端点:\
https://da-mcp.adobeaem.workers.dev/mcp
- IMS通过AEM API路由器进行身份验证:\
https://mcp.adobeaemcloud.com/adobe/mcp/da\ (支持Adobe IMS登录。请参阅 认证 详见下文。)
客户端配置
克劳德桌面版
增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或同等版本:
{
"mcpServers": {
"da-live-admin": {
"type": "streamable-http",
"url": "https://da-mcp.adobeaem.workers.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_DA_USER_IMS_TOKEN"
}
}
}
}VS代码/光标
增添 .vscode/mcp.json 或光标设置:
{
"mcpServers": {
"da-admin-mcp-direct": {
"url": "https://da-mcp.adobeaem.workers.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_DA_USER_IMS_TOKEN"
}
},
"da-prod-mcp": {
"url": "https://mcp.adobeaemcloud.com/adobe/mcp/da"
}
}
}认证
服务器使用简单的令牌直通身份验证:
- 客户端在中发送DA Admin API令牌
Authorization头球 - 服务器提取令牌并将其传递给DA管理员API
- 对DA管理员API的所有请求都使用此令牌
授权头格式:
Authorization: Bearer YOUR_DA_USER_IMS_TOKEN或者简单地说:
Authorization: YOUR_DA_USER_IMS_TOKEN注: 如果您通过API路由器的公共(已验证)URL访问API,则由AEM API路由器自动处理IMS(Adobe Identity Management Service)登录。在这种情况下,你做 *不* 需要在中提供DA管理员API令牌 Authorization header——IMS登录流将为您提供身份验证。
使用示例
配置后,您可以要求您的AI助手执行DA操作:
Claude, can you list all the sources in the adobe/my-docs repository?Please get the content of docs/index.md from the adobe/my-docs repository.Create a new file at docs/new-page.md with some markdown content.API终点
GET /health
健康检查终结点返回服务器状态。
答复:
{
"status": "healthy",
"service": "da-mcp",
"version": "1.0.0",
"environment": "production",
"timestamp": "2025-01-07T12:00:00.000Z"
}POST /mcp
用于工具执行的MCP协议端点。需要 Authorization 带有DA Admin API令牌的标头。
错误处理
所有工具都包括全面的错误处理:
- 401未经授权:DA管理员令牌缺失或无效
- 404未找到:端点无效
- 408超时:请求时间超过30秒
- 500内部错误:服务器端错误及其详细信息
错误的格式便于LLM客户理解。
日志记录
服务器将重要事件和错误记录到Cloudflare Workers日志中:
# View logs in real-time
wrangler tail
# View logs for specific environment
wrangler tail --env production监控
监控您部署的Worker:
- Cloudflare仪表板:查看调用、错误和性能
- 牧马人尾巴:实时日志(
wrangler tail) - 健康端点:定期健康检查
/health
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 通过测试进行更改
- 提交拉取请求
