alexleventer
服务介绍
Marketo MCP 服务器
一个用于与Marketo API交互的Model Context Protocol服务器。该服务器提供了管理Marketo表单的工具,包括列出、克隆和审批表单等功能。
前提条件
- Node.js (v14 或更高版本)
- Marketo API 凭证(客户端ID和客户端密钥)
- 启用了API访问权限的Marketo实例
- 安装了Claude Desktop
开始使用
1. 获取Marketo API凭证
- 登录到您的Marketo管理员面板
- 导航至 Admin > Integration > LaunchPoint
- 点击 New > New Service
- 填写服务详情:
- 服务:自定义
- 显示名称:例如,“MCP 服务器”
- 保存提供的客户端ID和客户端密钥
2. 配置环境变量
- 在根目录下创建一个
.env文件:
env
您的Marketo实例URL(必需)
示例: https://123-ABC-456.mktorest.com/rest
MARKETO_BASE_URL=your-marketo-instance-url
您的API凭证(必需)
MARKETO_CLIENT_ID=your-client-id
MARKETO_CLIENT_SECRET=your-client-secret
3. 安装与设置
bash
安装依赖
npm install
构建项目
npm run build
构建过程将在控制台输出配置设置
将这些设置复制到您的Claude Desktop开发者配置中
4. Claude Desktop 配置
- 打开Claude Desktop
- 转到开发者设置
- 粘贴在构建过程中输出的配置设置
- 保存配置
- 重启Claude Desktop
可用工具
获取表单列表
typescript
marketo_get_forms({
maxReturn: 200, // 可选,默认值: 200
offset: 0, // 可选,默认值: 0
status: 'draft' // 可选,'draft' 或 'approved'
})
根据ID获取表单
typescript
marketo_get_form_by_id({
formId: 1234
})
克隆表单
typescript
marketo_clone_form({
formId: 1234, // 要克隆的表单ID
name: "新表单名称", // 克隆表单的名称
description: "表单描述", // 可选
folderId: 5678 // 可选,目标文件夹ID
})
审批表单
typescript
marketo_approve_form({
formId: 1234,
comment: "由MCP服务器批准" // 可选
})
错误处理
常见的错误场景及解决方案:
-
认证错误
- 确认您的客户端ID和客户端密钥正确无误
- 检查您的Marketo中的API访问是否已启用
- 确保您的实例URL正确
-
权限错误
- 确认您的API用户具有足够的权限
- 检查表单操作的文件夹访问权限
-
速率限制
- 服务器自动处理令牌刷新
- 对于受速率限制的请求,考虑实现重试逻辑
最佳实践
-
环境管理
- 不要将
.env文件提交到版本控制系统 - 使用不同的凭据进行开发和生产
- 定期轮换您的API凭据
- 不要将
-
安全性
- 安全地存储凭据
- 使用环境变量来存放敏感数据
- 监控API访问日志
-
性能
- 在适当的情况下缓存表单数据
- 对大型表单列表使用分页
- 适当地处理速率限制
开发
项目结构
├── src/
│ ├── index.ts # 服务器入口点
│ ├── auth.ts # 令牌管理
│ └── constants.ts # 配置
├── .env # 环境变量(不在git中)
├── .env.example # 示例环境文件
└── .gitignore # Git忽略规则
您可以使用以下命令针对此服务器运行MCP检查器:npx @modelcontextprotocol/inspector node build/index.js
贡献
- 分叉仓库2. 创建特性分支
- 进行你的修改
- 提交一个拉取请求
支持
对于问题和疑问:
- 查看 Marketo REST API 文档
- 回顾上述常见错误场景
- 在仓库中提交一个问题