使用说明
Workato MCP 服务
这个项目提供了一个与Workato API集成的模型上下文协议(MCP)服务器,使AI助手能够与Workato工作流、配方和数据进行交互。
什么是MCP?
模型上下文协议(MCP)是一项标准,允许人工智能助手连接到外部数据源和工具。此服务在人工智能助手与Workato自动化平台之间架起了一座桥梁。
先决条件
在运行此服务之前,您需要:
- Python 3.10+ 安装在您的系统上
- Git(一种分布式版本控制系统) 用于克隆仓库
- Workato API访问 (API令牌和基础URL)
- 支持MCP的AI助手 (如 Claude Desktop、Cursor 或其他)
安装
1. 克隆仓库
git clone <your-repository-url>
cd worka42
2. 安装依赖项
该项目采用 uv 用于依赖管理。如果没有,请先安装它:
# On Windows (PowerShell)
winget install --id=astral-sh.uv
# On macOS
brew install uv
# On Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
然后安装项目依赖项:
uv sync
3. 配置MCP
该项目包含一个智能包装脚本(run_mcp.py) 它能自动检测您的环境并使用正确的 Python 设置。
第一步: 将MCP模板复制到您的Cursor设置中:
# Windows
copy mcp.json.template %USERPROFILE%\.cursor\mcp.json
# macOS/Linux
cp mcp.json.template ~/.cursor/mcp.json
第二步: 编辑复制的文件,填写您的详细信息:
{
"mcpServers": {
"workato": {
"command": "python",
"args": ["/absolute/path/to/worka42/run_mcp.py"],
"env": {
"WORKATO_API_BASE_URL": "https://www.workato.com/api/",
"WORKATO_API_TOKEN": "your_workato_api_token_here"
}
}
}
}
重要提示:
- 替换
/absolute/path/to/worka42使用您的实际项目路径 - 替换
your_workato_api_token_here使用您的Workato API令牌
第三步: 重启光标以加载新的MCP配置。
包装脚本的工作原理
这个(或“该”) run_mcp.py 脚本自动检测您的环境:
- 如果
.venv存在 (跑步之后uv sync): 用途uv run python app/services/mcp_service.py - **如果没有
.venv**回退到直接(模式/方式)python app/services/mcp_service.py
这确保了在不同Python配置下的兼容性,同时保留了(原有)优势 uv的依赖管理。
⚠️ 重要提示: 永远不要把自己的 mcp.json 由于文件包含敏感的API密钥,请将其提交到版本控制中。该文件已添加至 .gitignore.
运行MCP服务
选项1:作为MCP服务器运行(推荐)
该服务旨在作为MCP服务器运行,以便AI助手能够连接到该服务器:
uv run python app/services/mcp_service.py
选项2:作为FastAPI服务器运行
你也可以将其作为独立的 FastAPI 服务器来运行以进行测试:
cd app
uv run uvicorn services.mcp_service:app --reload --host 0.0.0.0 --port 8000
连接AI助手
光标
- 打开光标
- 新闻界;媒体
Cmd/Ctrl + Shift + P打开命令面板 - 输入“MCP:连接到服务器”
- 选择您的
mcp.json文件 - Workato MCP 服务器将在您的 AI 对话中可用
其他兼容MCP的助手
大多数兼容MCP的助手都会寻找 mcp.json 在您的项目目录中放置文件,或者允许您在设置中指定其位置。
可用的MCP工具
一旦连接成功,您的AI助手将能够访问以下Workato操作:
食谱管理
- 列出食谱,并支持过滤和分页功能
- 获取食谱详情、版本及健康报告
- 查看配方作业及执行历史
连接管理
- 列出并管理Workato连接
- 查看连接器元数据和自定义连接器
数据操作
- 访问查找表和数据表
- 查询和操作Workato数据
项目管理
- 管理Workato项目和部署
- 查看项目属性和构建情况
用户管理
- 列出工作区成员及其权限
- 管理用户角色和权限
环境变量
你可以使用环境变量来配置服务:
export WORKATO_API_BASE_URL="https://www.workato.com/api/"
export WORKATO_API_TOKEN="your_token_here"
export LOG_LEVEL="INFO"
故障排除
常见问题
-
“MCP 包不可用”错误
- 确保你已安装所有依赖项:
uv sync - 验证FastMCP是否已安装:
uv run python -c "import mcp.server.fastmcp"
- 确保你已安装所有依赖项:
-
运行时提示“权限被拒绝”
- 确保你对Python文件有执行权限
- 试着和……一起跑步
uv run python -m app.services.mcp_service
-
AI助手无法连接或无法识别工具
- 检查MCP配置位置确保
mcp.json位于您的 Cursor 设置目录中(~/.cursor/或者%USERPROFILE%\.cursor\) - 验证项目路径确保其中的绝对路径是
mcp.json指向你的实际项目目录 - 测试包装脚本跑
python run_mcp.py从项目目录中查看是否能无错误地启动 - 检查环境变量验证
WORKATO_API_TOKEN已正确设置在mcp.json - 验证JSON确保
mcp.json是有效的JSON(没有尾随逗号,引号使用正确) - **重启光标(或:重置光标)**在更改MCP配置后,务必重启Cursor
- 检查MCP配置位置确保
-
“没有可用工具”或工具列表为空
- 测试包装脚本跑
python run_mcp.py验证MCP服务器是否正确启动 - 检查依赖项确保所有依赖项都已安装
uv sync - 验证API令牌测试您的Workato API令牌:
uv run python -c "from app.services.workato_service import WorkatoService; WorkatoService().get_user_info()" - 检查包装脚本确保
run_mcp.py位于您的项目根目录中
- 测试包装脚本跑
-
Workato API 错误
- 请验证您的API令牌是否有效且具有必要的权限
- 检查API基础URL是否正确
- 确保您的Workato帐户已启用API访问权限
调试步骤
-
测试包装脚本:
cd /path/to/worka42 python run_mcp.py -
检查工具是否已注册:
uv run python -c "from app.services.mcp_service import app; import asyncio; tools = asyncio.run(app.list_tools()); print('Tools count:', len(tools))" -
验证环境和依赖项:
# Check if dependencies are installed uv run python -c "import mcp.server.fastmcp; print('FastMCP available')" # Check environment variables uv run python -c "import os; print('API Token set:', bool(os.getenv('WORKATO_API_TOKEN')))" -
测试Workato API连接:
uv run python -c "from app.services.workato_service import WorkatoService; print('API test:', WorkatoService().get_user_info())"
调试模式
通过设置环境变量来启用调试日志记录:
export LOG_LEVEL="DEBUG"
发展
项目结构
worka42/
├── app/
│ ├── __init__.py # Package initialization
│ ├── services/
│ │ ├── __init__.py # Services package initialization
│ │ ├── mcp_service.py # Main MCP server
│ │ └── workato_service.py # Workato API client
│ ├── utils/
│ │ ├── __init__.py # Utils package initialization
│ │ ├── logging.py # Logging configuration
│ │ ├── params.py # Parameter parsing utilities
│ │ └── response_helpers.py # Response formatting utilities
│ ├── pyproject.toml # Python project configuration
│ └── uv.lock # uv dependency lock file
├── mcp.json.template # MCP configuration template
├── .gitignore # Git ignore rules
├── run_mcp.py # MCP server wrapper script
└── README.md # This file
实用模块
该项目包含几个实用模块 app/utils/:
- **
logging.py**使用loguru进行集中日志配置 - **
params.py**MCP工具的参数解析和验证实用程序 - **
response_helpers.py**标准化响应格式化功能
添加新的MCP工具
要添加新的MCP工具,请修改 app/services/mcp_service.py 并添加新功能 @app.tool 装饰器:
@app.tool("new_tool_name", "Description of what this tool does")
def new_tool_function(param1: str, param2: int) -> dict:
# Your tool implementation here
return {"result": "success"}
安全注意事项
- 永远不要提交API令牌 进行版本控制
- 使用环境变量 对于敏感配置
- 验证所有输入 在处理之前
- 实施适当的认证措施 如果公开提供服务
支持
对于以下相关问题:
- MCP协议检查一下 MCP文档
- **Workato API(Workato应用程序编程接口)**参考 Workato API 文档
- 本服务在项目仓库中打开一个问题(或议题)
许可证
[在此添加您的许可证信息]
