Skip to main content

ms-hub

ModelScope unified operations entrypoint. Covers model/dataset search, download, and upload; repository management; Studio deployment; MCP service search, deployment, and configuration; and Skills Center search, install, and publish. Use this skill whenever the user mentions ModelScope or any platform operation. Use ms-studio-deploy for complex Studio deployment workflows; see this skill's references for the expanded MCP and Skills Center details.

Quellinformationen

Repository
modelscope/modelscope-skills
Letzte Quellaktivität
13. Juli 2026 um 08:56
Erkannte Sprache von SKILL.md
Englisch
Sterne
5
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
5 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
ms-hub
description
ModelScope unified operations entrypoint. Covers model/dataset search, download, and upload; repository management; Studio deployment; MCP service search, deployment, and configuration; and Skills Center search, install, and publish. Use this skill whenever the user mentions ModelScope or any platform operation. Use ms-studio-deploy for complex Studio deployment workflows; see this skill's references for the expanded MCP and Skills Center details.
# ModelScope Unified Operations Entrypoint > Verified with modelscope 1.37.1, Python 3.12 (2026-06-23) Operate the full range of ModelScope platform capabilities through OpenAPI, CLI, and SDK, covering Hub (models/datasets), Studio, MCP services, and the Skills Center (Skills). This Skill serves as a quick-reference entrypoint; complex operational workflows require the dedicated Skill. ## Requirements ```bash pip install modelscope ``` `pip install modelscope` installs both the SDK (`modelscope.hub.api.HubApi`) and two sets of command-line entrypoints: - **`ms` (driven by modelscope_hub v0.1.2)**: Hub / Studio / MCP operations (`download`/`upload`/`create`/`deploy`/`mcp`/`secret`/…). This document uses `ms` uniformly for Hub/Studio/MCP commands. - **`modelscope` (legacy CLI)**: additionally provides commands such as `skills` (`modelscope skills add`) — `ms` (modelscope_hub) **does not have** a `skills` subcommand. > ⚠️ Both packages register the `ms` and `modelscope` entrypoints; which one actually takes effect depends on install order. If an entrypoint lacks a required subcommand (typically: `ms` has no `skills`), switch to the other entrypoint, or use the SDK / `curl install.sh` (see §9 and `references/skills-center.md`). ## Authentication All operations rely on unified authentication: ```bash # Environment variable export MODELSCOPE_API_KEY="your_token" # Token retrieval URL # $MODELSCOPE_ENDPOINT/my/myaccesstoken ``` | Operation method | Authentication method | |----------|----------| | OpenAPI | `Authorization: Bearer $MODELSCOPE_API_KEY` | | CLI | `ms login --token $MODELSCOPE_API_KEY` | | SDK | `api.login(access_token=os.environ['MODELSCOPE_API_KEY'])` | ## Site selection & endpoint routing ModelScope runs two independent sites — the **domestic** site `https://modelscope.cn` (default) and the **international** site `https://www.modelscope.ai`. They have separate accounts, access tokens, and content catalogs. Every operation here targets whichever site `$MODELSCOPE_ENDPOINT` points to. ### Pick the target site (intent analysis) 1. **Respect an existing setting** — if `MODELSCOPE_ENDPOINT` is already exported, use it as-is. 2. **Explicit intent** — "international" / "modelscope.ai" / "overseas" ⇒ international; "domestic" / "modelscope.cn" ⇒ domestic. 3. **Match the token or URL the user provides** — a `modelscope.ai` token or link ⇒ international (and vice versa). 4. **Default to the domestic site** (`https://modelscope.cn`) when there is no signal; ask the user if the task clearly targets one audience but the site is ambiguous. ### Configure ```bash # Export the endpoint first — the examples below reference $MODELSCOPE_ENDPOINT: export MODELSCOPE_ENDPOINT="https://modelscope.cn" # domestic (default) # export MODELSCOPE_ENDPOINT="https://www.modelscope.ai" # international export MODELSCOPE_API_KEY="<token issued by THAT site>" # tokens are site-scoped — must match the site ``` One `MODELSCOPE_ENDPOINT` reroutes everything derived from it: the OpenAPI base (`$MODELSCOPE_ENDPOINT/openapi/v1`), the `ms` CLI, the `modelscope_hub` SDK, and git push URLs (`$MODELSCOPE_ENDPOINT/{models,datasets,studios}/…`). Resolution precedence (modelscope_hub): explicit arg > `MODELSCOPE_ENDPOINT` > `MODELSCOPE_DOMAIN` (deprecated) > default `https://modelscope.cn`. For public reads you may also set `MODELSCOPE_PREFER_AI_SITE=true` to try `.ai` before `.cn`. > **Tokens are site-scoped** (stored per endpoint host): a `modelscope.cn` token will not authorize write/private operations on `modelscope.ai`. Get each site's token from `$MODELSCOPE_ENDPOINT/my/myaccesstoken`. > > All examples below use `$MODELSCOPE_ENDPOINT/openapi/v1` as the base — **export `MODELSCOPE_ENDPOINT` first** (raw `curl` needs it set; the `ms` CLI and SDK additionally fall back to `https://modelscope.cn` when it is unset). A few marketplace/doc links (skills `install.sh`, `/docs/…`) show the domestic host — swap to your site's host when targeting international. ## Conventions | Item | Value | |------|-----| | **OpenAPI Base URL** | `$MODELSCOPE_ENDPOINT/openapi/v1` (default `https://modelscope.cn`) | | **Success response** | `{"success": true, "data": {...}, "request_id": "..."}` | | **Error response** | `{"success": false, "code": "ERROR_CODE", "message": "..."}` | | **HTTP status codes** | `200` success / `401` unauthorized / `404` not found / `500` server error | | **Default branch** | `master` (not main) | | **Pagination limit** | `page_number × page_size ≤ 3000` | ## Quick Decision Guide ``` User wants to... │ ├─── Hub: models/datasets ───────────────────────────── │ ├── Search models/datasets → OpenAPI GET /models or /datasets │ ├── View details → GET /models/{owner}/{repo} or SDK model_info() │ ├── Download → CLI: ms download owner/repo │ ├── Upload → CLI: ms upload owner/repo ./local │ ├── Create repository → CLI: ms create owner/repo │ ├── Browse files → SDK: api.get_model_files() │ ├── Inspect dataset → uv run scripts/ms_inspect_dataset.py │ └── Version management → SDK: api.get_model_branches_and_tags() │ ├─── Studio ────────────────────────────── │ ├── Create Studio → POST /studios or CLI: ms create owner/repo --repo-type studio │ ├── Deploy/restart → CLI: ms deploy owner/repo --repo-type studio │ ├── View status → GET /studios/{owner}/{repo} │ ├── View logs → CLI: ms logs owner/repo --log-type run │ ├── Stop → CLI: ms stop owner/repo --repo-type studio │ ├── Update settings → CLI: ms settings owner/repo key=value --repo-type studio │ ├── Available configs → GET /studios/hardware, /studios/sdk-versions, /studios/base-images │ ├── Plaintext variables → GET/POST/PUT/DELETE /studios/{owner}/{repo}/variables │ ├── Secrets → GET/POST/PUT/DELETE /studios/{owner}/{repo}/secrets (or ms secret ...) │ └── Full deployment workflow → see ms-studio-deploy │ ├─── MCP: service management ────────────────────────────── │ ├── Search MCP services → CLI: ms mcp list --search "..." │ ├── View details → CLI: ms mcp info @author/name │ ├── Deploy service → CLI: ms mcp deploy @author/name │ ├── Undeploy service → CLI: ms mcp undeploy @author/name │ ├── My deployed → GET /mcp/servers/operational │ └── IDE configuration / full orchestration → see references/mcp-services.md │ ├─── Skills: Skills Center ──────────────────────────── │ ├── Search skills → GET /skills?search=... │ ├── View details → GET /skills/{id} │ ├── Install skill → modelscope skills add @author/skill-name (legacy CLI; ms has no skills) │ ├── Publish skill → POST /files/upload + POST /skills │ ├── Update skill → PATCH /skills/{owner}/{skill_name}/settings │ └── Category system / packaging spec / full publish → see references/skills-center.md │ ├─── User info ─────────────────────────────────── │ └── GET /users/me │ └─── Not supported ───────────────────────────────────── ├── Pull Request (ModelScope has no PR system) └── Delete tags/branches (no API) ``` ## 1. Resource Search ### OpenAPI Method **Search models:** ```bash curl "$MODELSCOPE_ENDPOINT/openapi/v1/models?search=Qwen&sort=downloads&page_size=20" \ -H "Authorization: Bearer $MODELSCOPE_API_KEY" ``` **Search parameters:** | Parameter | Description | Example | |------|------|------| | `search` | Keyword | `"Qwen"`, `"text generation"` | | `owner` | Author/organization | `"Qwen"`, `"ZhipuAI"` | | `sort` | Sort | `default`, `downloads`, `likes`, `last_modified` | | `page_size` | Items per page (max 50) | `20` | | `filter.task` | Task type | `text-generation`, `image-captioning` | | `filter.library` | Framework | `pytorch`, `safetensors`, `diffusers` | | `filter.model_type` | Model type | `qwen3_moe`, `glm4v`, `llama` | | `filter.license` | License | `Apache License 2.0`, `MIT License` | **Common filter combinations:** ```bash # PyTorch text-generation models, sorted by downloads /models?filter.library=pytorch&filter.task=text-generation&sort=downloads # All models from a specific author /models?owner=Qwen&sort=last_modified ``` **Search datasets:** ```bash curl "$MODELSCOPE_ENDPOINT/openapi/v1/datasets?search=dialogue&sort=downloads&page_size=10" \ -H "Authorization: Bearer $MODELSCOPE_API_KEY" ``` **OpenAPI response structure (model list):** ```json {"data": {"models": [{"id": "Qwen/...", "downloads": N, "likes": N, "license": "...", "tasks": [...]}], "total_count": N}} ``` ### SDK Method ```python from modelscope.hub.api import HubApi api = HubApi() # Search models → dict{"Models": [...], "TotalCount": N} result = api.list_models(owner_or_group="Qwen", page_number=1, page_size=20) for m in result["Models"]: print(f"{m['Path']} ({m['Downloads']} downloads)") # Search datasets → dict{"datasets": [...], "total_count": N} result = api.list_datasets(owner_or_group="AI-ModelScope", page_number=1, page_size=20) for d in result["datasets"]: print(f"{d['id']} ({d['downloads']} downloads)") ``` > **SDK vs OpenAPI field name differences**: SDK `list_models` returns PascalCase (`Path`, `Downloads`), while OpenAPI `/models` returns snake_case (`id`, `downloads`). `list_datasets` is snake_case on both sides. ## 2. View Details ### OpenAPI Method ```bash # Model details curl "$MODELSCOPE_ENDPOINT/openapi/v1/models/Qwen/Qwen2.5-72B-Instruct" \ -H "Authorization: Bearer $MODELSCOPE_API_KEY" # Dataset details curl "$MODELSCOPE_ENDPOINT/openapi/v1/datasets/AI-ModelScope/alpaca-gpt4-data-zh" \ -H "Authorization: Bearer $MODELSCOPE_API_KEY" ``` ### SDK Method (more complete info) ```python info = api.model_info("Qwen/Qwen2.5-72B-Instruct") # info.readme_content - Full README text # info.tags - Tag list # info.downloads - Download count # info.siblings - File list (incl. rfilename, size, sha) # info.visibility - Visibility (1=private, 5=public) info = api.dataset_info("AI-ModelScope/alpaca-gpt4-data-zh") ``` ### Get User Info ```bash curl "$MODELSCOPE_ENDPOINT/openapi/v1/users/me" \ -H "Authorization: Bearer $MODELSCOPE_API_KEY" ``` ## 3. Repository Management ### Create Repository ```bash # CLI (--repo-type required) ms create owner/repo-name --repo-type model ms create owner/repo-name --repo-type model --visibility private ms create owner/dataset-name --repo-type dataset ``` ```python # SDK: general creation — note that create_repo's visibility uses the string "public"/"private" api.create_repo( repo_id="owner/repo-name", repo_type="model", # "model" or "dataset" visibility="public", # "public" or "private" (string, not integer) license="Apache License 2.0", exist_ok=True ) # Model-specific — create_model/create_dataset visibility uses integers 1=private, 5=public api.create_model(model_id="owner/model-name", visibility=5) # Dataset-specific api.create_dataset( dataset_name="dataset-name", namespace="owner", visibility=5 ) # AIGC/LoRA models: via the SDK's aigc_model parameter (create_repo/create_model); no corresponding CLI flag ``` ### Check Whether a Repository Exists ```python exists = api.repo_exists(repo_id="owner/repo", repo_type="model") ``` ### Set Visibility ```python # visibility uses the string "public" / "private" (not an integer) api.set_repo_visibility(repo_id="owner/repo", repo_type="model", visibility="private") ``` ### Delete Repository > ⚠️ **Repository deletion has been restricted by the platform to the web console only**: `api.delete_repo(...)` returns 401 under token authentication ("Deletion is restricted to web console") and cannot be deleted programmatically. Please perform this operation on the web at https://modelscope.cn. ## 4. File Operations ### List Files ```python files = api.get_model_files( model_id="Qwen/Qwen2.5-7B-Instruct", revision="master", recursive=True )
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen