用于与 Modal 卷交互并在 Cursor 中部署 Modal 应用程序的 MCP 服务器实现。
git clone https://github.com/smehmood/modal-mcp-server.git
cd modal-mcp-server
uv 安装依赖项:uv sync
要在 Cursor 中使用此 MCP 服务器,请在您的 ~/.cursor/mcp.json 文件中添加以下配置:
{
"mcpServers": {
"modal-mcp-server": {
"command": "uv",
"args": [
"--project", "/path/to/modal-mcp-server",
"run", "/path/to/modal-mcp-server/src/modal_mcp/server.py"
]
}
}
}
请将 /path/to/modal-mcp-server 替换为您克隆的仓库的绝对路径。
uv 包管理器uv 进行依赖管理列出 Modal 卷 (list_modal_volumes)
列出卷内容 (list_modal_volume_contents)
volume_name: Modal 卷的名称path: 卷内的路径(默认:"/")复制文件 (copy_modal_volume_files)
volume_name: Modal 卷的名称paths: 路径列表,最后一个路径是目标位置["source.txt", "dest.txt"] 或 ["file1.txt", "file2.txt", "dest_dir/"]删除文件 (remove_modal_volume_file)
volume_name: Modal 卷的名称remote_path: 要删除的文件/目录的路径recursive: 递归删除的布尔标志(默认:false)上传文件 (put_modal_volume_file)
volume_name: Modal 卷的名称local_path: 要上传的本地文件/目录的路径remote_path: 卷内要上传到的路径(默认:"/")force: 覆盖现有文件的布尔标志(默认:false)下载文件 (get_modal_volume_file)
volume_name: Modal 卷的名称remote_path: 卷内要下载的文件/目录的路径local_destination: 下载文件保存的本地路径(默认:当前目录)force: 覆盖现有文件的布尔标志(默认:false)local_destination 可以将文件内容写入标准输出deploy_modal_app)
absolute_path_to_app: Modal 应用程序文件的绝对路径uv 进行依赖管理modal CLI所有工具均返回标准化格式的响应,具体取决于操作类型略有不同:
# JSON 操作(列出卷,列出内容):
{
"success": True,
"data": {...} # 来自 Modal CLI 的 JSON 数据
}
# 文件操作(上传,下载,复制,删除):
{
"success": True,
"message": "操作成功消息",
"command": "执行的命令字符串",
"stdout": "命令输出", # 如果有
"stderr": "错误输出" # 如果有
}
# 错误情况(所有操作):
{
"success": False,
"error": "描述出错原因的错误消息",
"command": "执行的命令字符串", # 对于文件操作
"stdout": "命令输出", # 如果可用
"stderr": "错误输出" # 如果可用
}
欢迎贡献!请随时提交拉取请求。
本项目采用 MIT 许可证 - 详情见 LICENSE 文件。