关于 Modal MCP Server
Modal MCP Server 供 Cursor 用户管理 Modal 卷并部署 Modal 应用。它通过 MCP 工具提供卷文件操作和应用部署能力。
主要功能
- 01列出卷及其内容
- 02复制、删除、上传和下载文件
- 03部署 Modal 应用
适用场景
- 01检查 Modal 卷中的文件
- 02传输或清理卷文件
- 03从使用 uv 的项目部署应用
MCP 相关
向 MCP 客户端(包括 Cursor)提供 Modal 卷操作和应用部署工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Modal MCP 服务
用于在 Cursor 中与 Modal 卷交互并部署 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 替换为克隆仓库的绝对路径。
要求
- Python 3.11 或更高版本
uv包管理器- 已配置有效凭据的 Modal CLI
- 要支持 Modal 部署:
- 要部署的项目必须使用
uv管理依赖 - 必须在项目的虚拟环境中安装 Modal
- 要部署的项目必须使用
支持的工具
Modal 卷操作
-
列出 Modal 卷(
list_modal_volumes)- 列出环境中的所有 Modal 卷
- 返回 JSON 格式的卷信息
- 参数:无
-
列出卷内容(
list_modal_volume_contents)- 列出 Modal 卷中的文件和目录
- 参数:
volume_name:Modal 卷的名称path:卷内路径(默认值:/)
-
复制文件(
copy_modal_volume_files)- 在 Modal 卷内复制文件
- 参数:
volume_name:Modal 卷的名称paths:路径列表,最后一个路径为目标位置
- 示例:
["source.txt", "dest.txt"]或["file1.txt", "file2.txt", "dest_dir/"]
-
删除文件(
remove_modal_volume_file)- 从 Modal 卷中删除文件或目录
- 参数:
volume_name:Modal 卷的名称remote_path:要删除的文件或目录路径recursive:递归删除的布尔标志(默认值:false)
-
上传文件(
put_modal_volume_file)- 将文件或目录上传到 Modal 卷
- 参数:
volume_name:Modal 卷的名称local_path:要上传的本地文件或目录路径remote_path:卷内的上传目标路径(默认值:/)force:覆盖现有文件的布尔标志(默认值:false)
-
下载文件(
get_modal_volume_file)- 从 Modal 卷下载文件
- 参数:
volume_name:Modal 卷的名称remote_path:要下载的卷内文件或目录路径local_destination:保存下载文件的本地路径(默认值:当前目录)force:覆盖现有文件的布尔标志(默认值:false)
- 注意:将
-用作local_destination,可将文件内容写入 stdout
Modal 部署
- 部署 Modal 应用(
deploy_modal_app)- 部署 Modal 应用
- 参数:
absolute_path_to_app:Modal 应用文件的绝对路径
- 注意:包含 Modal 应用的项目必须:
- 使用
uv管理依赖 - 在其虚拟环境中安装
modalCLI
- 使用
响应格式
所有工具都以标准化格式返回响应,具体形式会根据操作类型略有不同:
# JSON operations (list volumes, list contents):
{
"success": True,
"data": {...} # JSON data from Modal CLI
}
# File operations (put, get, copy, remove):
{
"success": True,
"message": "Operation successful message",
"command": "executed command string",
"stdout": "command output", # if any
"stderr": "error output" # if any
}
# Error case (all operations):
{
"success": False,
"error": "Error message describing what went wrong",
"command": "executed command string", # for file operations
"stdout": "command output", # if available
"stderr": "error output" # if available
}
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
本项目基于 MIT License 授权,详情请参阅 LICENSE 文件。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。