魔塔社区(ModelScope)API封装,支持模型/数据集/技能中心/MCP广场/创空间的查询、搜索、下载。变更操作需用户确认。触发词:「魔塔」「mota」「使用mota」「ModelScope」「查模型」「搜MCP」「技能中心」「魔塔下载」
本 Skill 封装魔塔社区全部可用 API,包括:模型库、数据集、技能中心(80K+ 技能)、MCP 广场(9.4K+ 服务器)。支持Token自动引导注册。
两种响应格式注意:
/api/v1/*(旧):PascalCase → {"Code": 200, "Data": {...}}/openapi/v1/*(新):snake_case → {"success": true, "data": {...}}⚠️ 安全警告:此技能包含只读操作和变更操作。 部署、删除、安装等变更操作需要你明确确认。请使用最小必要权限的 Token。
操作类型所需权限说明只读操作(搜索、查询)读取权限无需 Token,公开可用下载操作(模型、数据集)下载权限需要 Token变更操作(创建、部署、删除)写入权限必须明确用户确认
💡 建议:优先使用只读 Token,仅在需要下载/部署时才提供写入权限。
🔒 核心原则:Token 只在当前会话中使用, 不写入任何文件,不保存到记忆。
Token 优先级(从上到下):
MODELSCOPE_API_TOKEN(最安全,推荐)没有 Token 时:直接告诉 AI「我的魔塔 Token 是 xxx」,AI 会在本次会话中使用它,执行完即丢弃。
方式一(推荐):设置环境变量
bash
export MODELSCOPE_API_TOKEN="ms-xxxxxx"
方式二:直接告诉 AI(AI 不会记录,仅当前会话使用)
没有 Token → 引导注册:
workbuddy)ms-xxxxxx), 只显示一次,务必保存⚠️ Token 即密码,不要提交到 GitHub。
获取 Token 后,直接告诉 AI 或设置环境变量,AI 在当前会话中使用后即丢弃,不记录。
总技能数: 80,505+
bash
curl -s "https://www.modelscope.cn/openapi/v1/skills?page_number=1&page_size=10&search=股票" | python -m json.tool
Query 参数:
参数类型说明page_numberint页码,默认 1page_sizeint每页数量,默认 10searchstring搜索关键词(匹配 display_name)
无需 Token 即可访问。
响应示例:
json
{
"success": true,
"data": {
"total": 80505,
"skills": [
{
"id": "@Alipay/alipay-payment-integration",
"display_name": "支付宝支付集成skill",
"description": "...",
"category": "developer-tools",
"view_count": 21881,
"downloads": 2069
}
]
}
}
bash
curl -s "https://www.modelscope.cn/openapi/v1/skills/@Alipay/alipay-payment-integration" | python -m json.tool
返回额外字段 install_command(3 种安装方式):
json
{
"install_command": [
"npx skills add https://modelscope.cn/skills/@Alipay/alipay-payment-integration",
"curl -fsSL https://modelscope.cn/skills/install.sh | bash -s -- @Alipay/alipay-payment-integration",
"pip install --upgrade modelscope && modelscope skills add @Alipay/alipay-payment-integration"
]
}
🔒 下载操作:需要 Token 权限,但不会修改账户数据。
python
from modelscope.hub.api import HubApi
api = HubApi(token="ms-xxxxxx")
skill_dir = api.download_skill(skill_id="@Alipay/alipay-payment-integration")
print(f"技能已下载到: {skill_dir}")
⚠️ 安装到本地前,请确认该技能的来源和用途。
text
底层 API(一般不直接调用):
GET /api/v1/skills/{path}/{name}/archive/zip/master Header: Cookie: m_session_id={token}
text
### 1.4 技能分类列表
| 分类 ID | 说明 |
|----------|------|
| `developer-tools` | 开发工具 |
| `ai-media` | AI 媒体 |
| `skill-management` | 技能管理 |
| `cloud-devops` | 云 DevOps |
| `frontend-development` | 前端开发 |
| `code-quality-testing` | 代码质量测试 |
| `marketing-seo` | 营销 SEO |
| `ai-automation` | AI 自动化 |
| `doc-processing` | 文档处理 |
---
## 能力二:MCP 广场
> 总 MCP 服务器数:**9,477+**
### 2.1 搜索/列出 MCP 服务器
```bash
curl -s -X PUT "https://www.modelscope.cn/openapi/v1/mcp/servers" \
-H "Content-Type: application/json" \
-d '{"filter": {"category": "developer-tools"}, "page_number": 1, "page_size": 10, "search": ""}' | python -m json.tool
Body 参数:
参数类型说明filter.categorystring分类过滤(见下方分类表)filter.tagstring标签过滤filter.is_hostedbool是否只查托管服务器page_numberint页码,默认 1page_sizeint每页数量,最大 100,默认 20searchstring搜索(匹配中文名/英文名/作者)
filter中的多个条件取 交集;search与filter可组合使用。
无需 Token 即可访问列表。
响应示例:
json
{
"success": true,
"data": {
"total_count": 9477,
"mcp_server_list": [
{
"id": "@modelcontextprotocol/fetch",
"name": "Fetch网页内容抓取",
"chinese_name": "Fetch网页内容抓取",
"description": "该服务器使大型语言模型能够检索和处理网页内容...",
"categories": ["browser-automation"],
"view_count": 457094
}
]
}
}
bash
curl -s "https://www.modelscope.cn/openapi/v1/mcp/servers/@modelcontextprotocol/fetch?get_operational_url=true" | python -m json.tool
返回关键字段:
字段说明server_configMCP 客户端配置(command + args),直接用于 mcp.json``readme服务器说明文档(Markdown)is_hosted是否已触发托管服务is_verified是否官方认证env_schema环境变量 JSON Schema(如需配置 API Key)source_url源码地址(通常是 GitHub)github_starsGitHub 星标数
server_config 示例(直接复制到 MCP 客户端配置):
json
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
bash
curl -s "https://www.modelscope.cn/openapi/v1/mcp/servers/operational" \
-H "Authorization: Bearer ms-xxxxxx" | python -m json.tool
⚠️ 此端点 必须传 Token,否则返回 401。
分类 ID说明分类 ID说明ai-gcAI 生成browser-automation浏览器自动化communication通讯content-management-systems内容管理databases数据库data-platforms数据平台developer-tools开发工具entertainment-and-media娱乐媒体finance金融file-systems文件系统image-and-video-processing图像视频knowledge-and-memory知识记忆location-services位置服务monitoring监控note-taking笔记other其他os-automation系统自动化research-and-data研究数据search搜索travel-and-transportation出行交通version-control版本控制cloud-platforms云平台art-and-culture艺术文化calendar-management日历管理
总模型数: 194,001+
bash
curl -s -X PUT "https://www.modelscope.cn/api/v1/models" \
-H "Authorization: Bearer ms-xxxxxx" \
-H "Content-Type: application/json" \
-d '{"page_number": 1, "page_size": 10, "search": "llama"}' | python -m json.tool
⚠️ 模型 API 使用 旧格式(
/api/v1/,PascalCase)
响应格式:
json
{
"Code": 200,
"Success": true,
"Data": {
"TotalCount": 194001,
"Models": [...]
}
}
bash
curl -s "https://www.modelscope.cn/api/v1/models/{owner}/{name}" \
-H "Authorization: Bearer ms-xxxxxx" | python -m json.tool
bash
curl -s "https://www.modelscope.cn/api/v1/models/{owner}/{name}/archive/zip/{rev}" \
-H "Authorization: Bearer ms-xxxxxx" -o model.zip
或用 SDK(推荐):
python
from modelscope.hub.api import HubApi
api = HubApi(token="ms-xxxxxx")
model_dir = api.download_model(model_id="qwen/Qwen-7B")
端点方法说明/api/v1/modelsPUT列出模型(分页/搜索)/api/v1/models/{owner}/{name}GET获取模型详情/api/v1/models/{owner}/{name}/archive/zip/{rev}GET下载模型(ZIP)/api/v1/models/{owner}/{name}/repo/tagPOST创建标签/api/v1/models/{owner}/{name}/repo/filesGET获取模型文件列表
bash
curl -s -X PUT "https://www.modelscope.cn/api/v1/datasets" \
-H "Authorization: Bearer ms-xxxxxx" \
-H "Content-Type: application/json" \
-d '{"page_number": 1, "page_size": 10, "search": "finance"}' | python -m json.tool
bash
curl -s "https://www.modelscope.cn/api/v1/datasets/{namespace}/{name}" \
-H "Authorization: Bearer ms-xxxxxx" | python -m json.tool
bash
curl -s "https://www.modelscope.cn/api/v1/datasets/{namespace}/{name}/repo/tree" \
-H "Authorization: Bearer ms-xxxxxx" | python -m json.tool
端点方法说明/api/v1/datasetsPUT列出数据集/api/v1/datasets/{ns}/{name}GET获取数据集详情/api/v1/datasets/{ns}/{name}/repo/treeGET获取文件树/api/v1/datasets/{ns}/{name}/archive/zip/{rev}GET下载数据集(ZIP)
创空间(Studio)提供 MCP 工具和 HTTP API 两种操作方式。
前置条件:需要
MODELSCOPE_API_TOKEN,获取方式见「第一步:Token 设置」。
⚠️ 【重要】变更操作需要用户明确确认:以下操作会创建、修改或删除资源,执行前必须获得用户确认。
配置 ModelScope MCP 服务后,可直接调用以下工具:
操作类型操作工具说明🔒 只读获取用户信息getCurrentUser获取当前用户名⚠️ 变更创建创空间createStudio需确认 - 在账户中创建新资源🔒 只读获取创空间详情getStudio查看现有资源⚠️ 变更更新设置updateStudioSettings需确认 - 修改配置⚠️ 变更部署(启动/重启)deployStudio需确认 - 触发构建和部署⚠️ 变更停止stopStudio需确认 - 停止服务🔒 只读获取日志getStudioLogs查看运行日志🔒 只读环境变量列表listStudioSecrets查看变量(不含值)⚠️ 变更添加环境变量addStudioSecret需确认 - 添加新变量⚠️ 变更更新环境变量updateStudioSecret需确认 - 修改变量⚠️ 变更删除环境变量deleteStudioSecret需确认 - 删除变量
基础地址: https://modelscope.cn/openapi/v1,所有请求需携带 Authorization: Bearer ${MODELSCOPE_API_TOKEN}。
操作类型操作方法端点🔒 只读查询 MCP 服务详情GET/mcp/servers/{id}?get_operational_url=true⚠️ 变更部署 MCP 服务POST/mcp/servers/{id}/deploy (需确认)
操作类型操作方法端点Body🔒 只读获取当前用户GET/users/me—⚠️ 变更创建创空间POST/studios``{owner, repo_name, ...} (需确认)🔒 只读获取创空间详情GET/studios/{owner}/{repo_name}—⚠️ 变更更新创空间设置PATCH/studios/{owner}/{repo_name}/settings(需确认)⚠️ 变更部署创空间POST/studios/{owner}/{repo_name}/deploy(需确认)⚠️ 变更停止创空间POST/studios/{owner}/{repo_name}/stop(需确认)🔒 只读获取日志GET/studios/{owner}/{repo_name}/logs/{log_type}—🔒 只读获取环境变量列表GET/studios/{owner}/{repo_name}/secrets—⚠️ 变更添加环境变量POST/studios/{owner}/{repo_name}/secrets(需确认)⚠️ 变更更新环境变量PUT/studios/{owner}/{repo_name}/secrets(需确认)⚠️ 变更删除环境变量DELETE/studios/{owner}/{repo_name}/secrets(需确认)
完整 OpenAPI 文档: https://modelscope.cn/.well-known/openapi.json
sdk_type 选择关键差异:
sdk_typepush 后行为适用场景docker不自动重建,需手动调用 deployStudioFastAPI、自定义服务gradio自动识别 app.py 中的 demo 变量并启动Gradio 应用streamlit自动启动 StreamlitStreamlit 应用static直接托管静态文件纯前端
⚠️
docker模式 push 后页面不变是常见问题,改用gradio或手动调deployStudio可解决。
Git 推送要点:
master(不是 main),禁止 force pushhttps://oauth2:${TOKEN}@www.modelscope.cn/studios/${owner}/${repo_name}.gitfetch + merge --allow-unrelated-historiesGradio 模式要求:
app.py(固定)demo 变量: demo = gr.Blocks(title="...")requirements.txt 需含 gradio>=4.0.0demo.launch(server_name="0.0.0.0", server_port=7860)MCP 服务在创空间中运行:
FastMCP.http_app(transport="sse") 必须 显式指定 transport(默认是 streamable-http,注册 /mcp 而非 /sse)0.0.0.0,禁止 8080(平台占用)💡 完整的部署实战经验和踩坑记录见
modelscope-studioSkill。
bash
pip install modelscope
python
from modelscope.hub.api import HubApi
from modelscope.hub.mcp_api import MCPApi
# 初始化(Token 可选,无 Token 只能访问公开数据)
api = HubApi(token="ms-xxxxxx")
mcp = MCPApi(token="ms-xxxxxx")
# 登录(保存 Cookie 到本地,30 天有效)
git_token, cookies = api.login()
# 下载技能
skill_dir = api.download_skill(skill_id="@Alipay/alipay-payment-integration")
print(f"技能已下载到: {skill_dir}")
# 列出 MCP 服务器(无需 Token)
result = mcp.list_mcp_servers(
filter={"category": "developer-tools"},
total_count=20,
search=""
)
print(f"总数: {result['total_count']}")
# 搜索 MCP 服务器
result = mcp.list_mcp_servers(search="高德")
# 获取 MCP 详情
detail = mcp.get_mcp_server(server_id="@amap/amap-maps")
print(f"配置: {detail['server_config']}")
# 获取运行中的 MCP(需 Token)
running = mcp.list_operational_mcp_servers()
bash
# 登录
modelscope login --token ms-xxxxxx
# 安装技能(并发下载,默认 8 线程)
modelscope skills add @Alipay/alipay-payment-integration
# 安装多个
modelscope skills add @steipete/github @steipete/weather --max-workers 8
# 指定安装目录
modelscope skills add @Alipay/alipay-payment-integration --local_dir ./my-skills
排名名称ID下载量1self-improvement@pskoett/self-improving-agent2,3772支付宝支付集成@Alipay/alipay-payment-integration2,0693find-skills@vercel-labs/find-skills2,0004frontend-design@anthropics/frontend-design2,3045web-search@inference-sh/web-search1,360
排名名称ID浏览量1Fetch 网页抓取@modelcontextprotocol/fetch457K2高德地图@amap/amap-maps290K312306 车票@Joooook/12306-mcp182K4必应搜索中文slcatwujian/bing-cn-mcp-server154K5可视化图表antvis/mcp-server-chart107K
路径前缀Key 风格成功标志数据字段/api/v1/PascalCaseSuccess: true``Data``/openapi/v1/snake_casesuccess: true``data
代码示例(通用解析):
python
import requests
def ms_request(url, token=None):
headers = {"Authorization": f"Bearer {token}"} if token else {}
r = requests.get(url, headers=headers)
d = r.json()
# 兼容两种格式
if "Data" in d:
return d["Data"] # /api/v1/ 格式
elif "data" in d:
return d["data"] # /openapi/v1/ 格式
else:
raise ValueError(f"未知响应格式: {d}")
# 用法
skills = ms_request("https://www.modelscope.cn/openapi/v1/skills?page_size=5")
print(skills["total"]) # → 80505