Photoshop-MCP-IMT + SKILLS — Photoshop for AI agents

io.github.Immersive-Media-Technologies由 GitHub 账号 Immersive-Media-Technologies 发布v1.1.4更新于 Nov 7, 2026

Photoshop for AI agents: every Adobe UI language, checks by sight, skills, generative tools first

已验证STDIO仅桌面媒体与设计AI 与机器学习

概览

AI 生成的概览

让 AI 助手驱动本机正在运行的 Adobe Photoshop:文档、图层、文字、蒙版、选区、滤镜、生成式工具与导出。

可以做什么
  • 查看并修改文档与图层:状态、图层结构、文字、蒙版、选区、滤镜、调整、智能对象与画板。
  • 通过精简门面执行具名操作和多步批处理,或直接调用全部 135 个已注册工具。
  • 运行 16 个内置配方,例如去背景、人像增强、频率分离、社交尺寸变体、CSV 转卡片、水印与样机。
  • 保存文档并导出当前状态的 PNG 画面,让助手凭图像核对结果并从图中读取坐标。
  • 使用 Adobe 生成式功能(生成式填充、扩展、放大、文生图),并读取随附的修图、蒙版、色彩、批量导出与注意事项技能文档。
适用场景
适合希望助手用自然语言在本机完成真实 Photoshop 编辑的场景,包括本地化语言的 Photoshop 以及对话框阻塞脚本的时刻。尤其适用于设计、修图、样机与批量导出等需要助手逐步目视核对的工作。
运行要求
同一台 macOS 或 Windows 电脑上运行 Adobe Photoshop 2024 或更新版本;npx 方式需要 Node.js 18+(Claude Desktop 的 .mcpb 包无需单独安装 Node)。macOS 需授予自动化权限以控制 Photoshop;可选的 UXP 桥接插件需另行安装。门面、桥接、超时与 Photoshop 路径可通过可选环境变量配置。
安装前请注意
它会修改真实的 Photoshop 文档,并把文档内容(名称、图层结构、文字、渲染预览)发送给你使用的 AI 服务;请先在副本上操作,涉密工作需确认服务商的数据政策。ps_execute_script 与 ps_uxp script 会在 Photoshop 内执行任意代码,关闭、覆盖保存与批量导出无法撤销,应在助手的权限策略中加以限制。生成式功能会消耗 Adobe 生成式额度。ChatGPT 隧道方式会暴露一个公开网址,运行期间任何知道该网址的人都能驱动 Photoshop。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Photoshop-MCP-IMT + SKILLS — Photoshop for AI agents,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Photoshop-MCP-IMT + SKILLS — Photoshop for AI agents]

Photoshop-MCP-IMT + SKILLS — Photoshop for AI agents, with two ways in

Let an AI agent (Claude Desktop, Cursor, ChatGPT or any MCP-compatible client) drive a running Adobe Photoshop: documents, layers, text, masks, selections, filters, adjustments, Smart Objects, artboards, generative tools, export — from natural language.

Every Adobe UI language · checks its work by sight · a large skills library · built for generative features. Photoshop-MCP-IMT works with every UI language Adobe ships, and the agent checks its work by sight: after each step it looks at an image of the document — also while Photoshop is held by a dialog — and places selections, Generative Fill areas and corner pins by coordinates it reads from that image. It comes with a large skills library and is built for Adobe's generative features — Generative Fill, Generative Expand, Generative Upscale, text to image, Firefly and partner models, generative credits.

Two parts, made to work together:

  • The MCP server — 135 tools behind a 10-tool facade, a second transport inside Photoshop for the moments a dialog blocks scripting, honest errors, no telemetry.
  • The skill (skills/ps, also served by the ps_skill tool, so it works in any client) — how to drive Photoshop safely, where scripting ends, and how to use Photoshop's own AI tools: Generative Fill / Expand / Remove, Generate Image and Background, partner models and their credits, reference images, Prompt to edit, Harmonize, Generative Upscale, the Remove tool, AI Assistant — plus the retouch, colour, selection and batch recipes that combine them, and the gotchas.

Built by Immersive Media Technologies. A fork of alisaitteke/photoshop-mcp (merged through 1.7.27) with a second transport, a small tool surface, honest errors and no telemetry.

macOS and Windows · Photoshop 2024–2026 · Node.js 18+ (we run 26). macOS is what we run every day (Photoshop 2026, 27.9–27.10); the Windows transport (ExtendScript through COM, with the UTF-16 result fix and a retry on the COM «busy» error) passes the same live sweep on Windows 11 with Photoshop 2026 — reports from Windows users are still welcome.

[!CAUTION] This tool edits real Photoshop documents and sends document contents (names, layer structure, text, rendered previews) to the AI service you use. Start with a copy, check your AI provider's data policy for NDA work, and keep ps_execute_script and ps_uxp script (arbitrary code inside Photoshop) behind your agent's permission policy.

Why this one

Most Photoshop MCP servers stop at «the AI can run a script». Two things break that in daily use: Photoshop goes modal (a dialog, a progress bar, a tool in search mode) and every script call hangs until a timeout; and the agent drowns in a hundred tool definitions. This fork keeps a second transport inside Photoshop (UXP) for exactly those moments, shows the agent 10 tools instead of 135, and tells it the truth when something cannot be done.

Built for localized Photoshop, not just English. Most Photoshop MCP servers read Photoshop's English messages and names — on a German, Japanese or Russian install their error handling and layer lookups break. Photoshop-MCP-IMT classifies errors by Photoshop's error numbers and finds the Background layer, fonts and actions without localized names, so it behaves the same on every UI language Photoshop ships — verified live.

Photoshop-MCP-IMT (this repo)alisaitteke/photoshop-mcpmikechambers/adb-mcpdcc-mcp/dcc-mcp-photoshop
Talks to Photoshop viaExtendScript (osascript / COM) and a UXP panel plugin — chosen per call, UXP as fallback or first (PS_MCP_UXP_PREFER=1)ExtendScript via AppleScript / COM (we are a fork)UXP plugin → separate WebSocket proxy (Python) → MCP serverUXP plugin → Rust broker (adobepy) → Python MCP server
When Photoshop is modalphotoshop_busy in 4 s with an instruction for the user, 8 s hold; reads / save / export continue through UXP (via: uxp)30 s timeout → extendscript_timeout, retry ping—UXP only, so unaffected — but no ExtendScript DOM at all
Vision: acting on what the agent seesan image of the document after every step (ps_export_frame, through UXP while Photoshop is modal); rectangle / ellipse selections, Generative Fill areas and corner pins placed by coordinates read from itpreview image (photoshop_get_preview); Select Subject, rectangle / ellipse selections by coordinatesdocument image; polygon / rectangle / ellipse selections by coordinates, Select Subject, mask from selectionexport to a file; rectangle / ellipse selections by coordinates
Tool surface135 tools registered, 10 visible (ps_catalog / ps_do / ps_batch …) — ~900 tokens of definitions per turn instead of ~25 K; every tool reachable through ps_do118–122 tools, all visible (photoshop_* + 16 recipes)«a subset of functionality» per app, low-level tools (proof of concept)40+ typed tools in 8 skill packages
Headless corner-pinphotoshop_distort_layer: four corners → custom warp solved for the homography; verified that Trnf + quadrilateral is silently ignored in Photoshop 2026 (12 combinations probed)———
Telemetrynone — analytics module is a no-op, feedback nudge removed, server sends nothinganonymous analytics on by default (opt-out), product-feedback nudge via photoshop_ping——
Undorecipes = one history state (upstream); photoshop_busy / command_unavailable / extendscript_timeout / scratch_disk_full tell the agent why instead of a generic timeoutrecipes = one history state; extendscript_timeout, scratch_disk_full—staged install with --dry-run / receipts
Installone click: .mcpb for Claude Desktop (no Node needed), «Add to Cursor» button, npx for any other client; install.sh / install.ps1 with a live self-test that write the client configs; UXP plugin as .ccx, UXP Developer Tools or a manual layout — every path documented with its failure modesnpx -y @alisaitteke/photoshop-mcp; UXP plugin for Neural Filters onlyPython 3 + Node + UXP Developer Tools + proxy processpip install or binaries; Rust broker
Verified onPhotoshop 2026 (27.9–27.10), macOS, UXP 9.4.1 — live sweep of every tool: 193 pass / 0 fail / 11 environment skips (2026-10-01); Windows 11 (ARM) + Photoshop 2026 — same sweep, 193 / 0 / 11 (2026-10-04)Windows + macOSPhotoshop 26+, macOS + WindowsWindows, Linux, macOS
UI languageevery UI language Photoshop ships — errors classified by error numbers, not localized messages; the Background layer, fonts (PostScript name) and actions found without localized names; verified live
LicenseApache-2.0 for our work (attribution through NOTICE); upstream code stays MITMITMITMIT

Facts about other projects are from their READMEs and repository metadata on GitHub on 2026-10-01 (adb-mcp: 716 stars, last push 2026-07-08, «proof of concept»; dcc-mcp-photoshop: v0.2.0; alisaitteke/photoshop-mcp: 1.7.27 of 2026-09-30); corrections welcome.

What you can ask for

  • "Open poster.psd, put the client's logo on the billboard in perspective — corners at (412,88), (1388,140), (1370,690), (430,655) — and keep it editable."
  • "Replace the sky with this dusk one (sky.jpg), then export a 2000-px JPEG for review."
  • "Split this layout into Instagram, X and Story artboards and export each as PNG."
  • "Set the headline to Inter Bold 96 pt, tracking −20, only the word SALE in red."
  • "Build a frequency-separation stack at 6 px — I'll paint the Low / High layers myself."
  • "Photoshop is showing a dialog — tell me what is open and save the document anyway." (the save goes through the UXP bridge)

The agent combines the operations itself through ps_do, checking ps_get_state / ps_get_layers between steps and verifying with ps_export_frame (a PNG of the current state).

The skill

skills/ps/SKILL.md is a short router the agent reads first (ps_skill with no arguments); it points to the one reference the task needs (ps_skill {doc}):

SKILL.mdthe tools, the order of work (state → backup → operate → verify by values, then by frame), addressing (active document and layer, the Background layer by flag, coordinates, selections as state, localized Photoshop, modal Photoshop) and a table of what scripts cannot do in Photoshop with the reference for each.
references/generative.mdGenerative Fill / Expand / Remove, Generate Image and Background, the partner models (Gemini, FLUX, GPT Image) and what each costs, reference images, Prompt to edit, Markup, Enhance Detail — what is scripted and what stays in the UI.
references/retouch.mdthe Remove tool (credit-free) and Find distractions, Harmonize, Generative Upscale (Firefly, Topaz), AI Sharpen / Denoise, Neural Filters through the UXP bridge.
references/selection-masking.mdselection and mask operations, Select Subject, the remove-background recipe, selection shape as a prompt, Quick Mask strength, Sky Replacement.
references/color-retouch.mdfrequency separation, dodge & burn, portrait enhancement, curves, LUTs and grades, layer styles, type — which recipe does what and how to hand the brush work to the user.
references/batch-export.mdCSV → cards, watermarks, mockups, social variants, carousels, artboards, web export — inputs, outputs and where the files land.
references/ai-assistant.mdthe AI Assistant (Photoshop Beta), Firefly Boards, Actions, and the hand-over pattern for UI-only steps.
references/combos.mdeleven jobs that combine tools: product on a new background, a billboard mockup in perspective, portrait retouch, a social set from one layout, restoring a photo, a composite that matches light.
references/gotchas.mdmodal Photoshop and photoshop_busy, the UXP bridge, history and what undo cannot revert, credits and the output-size cap, localized names, Windows.

Clients with their own skill support can load the folder directly (e.g. copy skills/ps into ~/.claude/skills/).

Install

Requirements: Adobe Photoshop 2024+ running on this computer (2026 verified), macOS or Windows — platform specifics are in the two sub-sections below the table. Pick the route for your client:

ClientRouteWhat you need
[图片] Claude Desktopdownload photoshop-mcp-imt.mcpb, double-click it, click Install (Windows: if the file opens with an app picker instead, drag the .mcpb onto Settings → Extensions) — the settings dialog has the switches (compact tool surface, UXP bridge)nothing else: Claude Desktop brings its own Node.js
[图片] CursorAdd to Cursor — one click: Cursor opens and writes the config (or put the snippet below into ~/.cursor/mcp.json).Node.js 18+ (npx fetches the package)
[图片] Google AntigravitySettings → Customizations → Installed MCP Servers → View raw config (or type /mcp in the prompt panel) and add the photoshop entry from the snippet below to ~/.gemini/config/mcp_config.json; install.sh / install.ps1 write it for youNode.js 18+
[图片] ChatGPT and other clients that take only remote serversone command on the Photoshop machine — npx -p @immersive-media-technologies/photoshop-mcp-imt photoshop-mcp-imt-chatgpt — starts the server behind a Streamable-HTTP gateway and a tunnel, and prints the public URL to paste into ChatGPT → Settings → Connectors → Create (developer mode, authentication: none). Photoshop stays on your machine; the tunnel is your door — whoever knows the URL can drive Photoshop while it runs, so stop it (Ctrl+C) after the sessionNode.js 18+ and a tunnel tool: cloudflared (no account; brew install cloudflared / winget install Cloudflare.cloudflared) or ngrok (free account)
Any MCP client with a JSON configthe snippet below in its mcpServersNode.js 18+
json
{  "mcpServers": {    "photoshop": {      "command": "npx",      "args": ["-y", "@immersive-media-technologies/photoshop-mcp-imt"],      "env": { "PS_MCP_FACADE": "1", "PS_MCP_UXP": "1" }    }  }}

macOS

Verified daily (Photoshop 2026, 27.9–27.10). The server drives Photoshop through AppleScript; the first call asks for the Automation permission (System Settings → Privacy & Security → Automation; AppleScript error −1743 means it was denied). From source, with a live self-test — the route we run ourselves:

bash
git clone https://github.com/Immersive-Media-Technologies/photoshop-mcp-imt.gitcd photoshop-mcp-imt && ./install.sh

The script checks Photoshop and Node, builds the server and the UXP plugin, pings the running Photoshop through the real transport, and — after asking — writes the entry into Claude Desktop's, Cursor's and Google Antigravity's config files (backing them up first). --no-config only prints the snippet; --yes skips the questions.

Windows

Verified on Windows 11 with Photoshop 2026 (same live sweep as macOS: 193 / 0 / 11). The server talks to Photoshop through COM (cscript + a VBScript shim, results decoded as UTF-16); the bridge retries the transient COM «busy» error (PSMCP_BUSY_RETRY_MS, default 2000 ms). Set PHOTOSHOP_PATH when Photoshop is not under C:\Program Files\Adobe.

  • Claude Desktop: the .mcpb has no file association on Windows — if a double-click shows an app picker, drag the file onto Settings → Extensions instead.
  • From source: .\install.ps1 (same steps as install.sh; if scripts are blocked: powershell -ExecutionPolicy Bypass -File .\install.ps1). Node.js 18+ from nodejs.org; Git for Windows or MinGit.
  • UXP bridge: on Windows x64 install the .ccx as on macOS. On Windows on ARM Photoshop has no Plugins menu and loads no third-party UXP plugins at all (Adobe has not enabled the plugin infrastructure there yet) — the server works without the bridge.
VariableDefaultMeaning
PS_MCP_FACADEoff1 / true → the client sees the 10 ps_* tools only; everything else through ps_do
PS_MCP_UXPoff1 / true → start the bridge server for the UXP plugin (127.0.0.1:38452) and register ps_uxp
PS_MCP_UXP_PREFERoff1 / true → UXP first for state / layers / save / export, ExtendScript second
PS_MCP_UXP_TOKEN_FILE~/.ps-mcp-imt/uxp-bridge.tokenshared secret the plugin must send (X-PS-MCP-Bridge-Token); created 0600 on first start
PHOTOSHOP_UXP_BRIDGE_PORT38452bridge port
PS_MCP_READ_TIMEOUT_MS8000ExtendScript timeout for read-only tools (fast fallback to UXP when Photoshop is modal)
PHOTOSHOP_SCRIPT_TIMEOUT30000ExtendScript timeout for everything else; timeout_ms on ps_execute_script overrides per call
PHOTOSHOP_PATHauto-detectpath to the Photoshop app / executable
LOG_LEVEL10 debug · 1 info · 2 warn · 3 error (stderr)

The UXP bridge (second transport)

A 10-KB panel plugin, Photoshop-MCP-IMT Bridge (uxp-plugin/, id llc.imt.ps-mcp-bridge), lives inside Photoshop and polls the server. It runs state, layers, batchplay, eval_js, export_png, save and neural_filter inside core.executeAsModal, so it answers while ExtendScript is blocked. Install one of three ways, in this order of convenience:

  1. Double-click dist/uxp/ps-mcp-imt-bridge.ccx (Creative Cloud). If Creative Cloud says «Plugin Not Compatible» — it does when Photoshop is missing from its installed-apps list — use 2 or 3.
  2. UXP Developer Tools → Add Plugin → uxp-plugin/manifest.json → Load.
  3. Manual layout into Adobe's UXP plugin folder plus one entry in PluginsInfo/v1/PS.json — exact paths and the JSON line in docs/development.md.

Then Photoshop → Plugins → Photoshop-MCP-IMT Bridge; leave the panel in your workspace so the plugin loads with Photoshop. The port is protected by a shared-secret file the server creates on first start and the plugin reads (always at the default path, ~/.ps-mcp-imt/uxp-bridge.token); a request without it gets 401, /health is open and reveals nothing. Several MCP clients at once (Claude Desktop, Cursor, …) share one bridge: the first server owns the port, the others relay to it. Honest about the boundary: the file is readable by any process of your user account (like an .env) — it protects against other users, sandboxes and a stray client on the port, not against malware running as you.

How the agent sees

The agent checks every step on a picture, not on «the script said OK»: ps_export_frame writes a PNG of the current state and keeps working through the UXP bridge while Photoshop is held by a dialog; photoshop_get_preview returns a smaller image straight to the model. From that picture the model reads coordinates — where a selection, a Generative Fill area or the four corners of a corner pin belong — and the skill tells it to look again after every change: values first (ps_get_layers, selection bounds, document size), then the picture.

Tools

With PS_MCP_FACADE=1 the agent sees ten tools:

ToolWhat it does
ps_catalog(category?)categories with counts and operation names; with a category — every operation and its parameters
ps_do(operation, args)run any registered operation by name (create_text_layer, distort_layer, recipe_remove_background …)
ps_batch(ops[])several operations in order, one result per op, stops at the first error (stopOnError)
ps_get_state / ps_get_layersdocument and layer state (ExtendScript, 8 s timeout, UXP fallback)
ps_save_document / ps_export_frame(path)save (PSD / in place) and a PNG of the current state for the agent to look at — both with UXP fallback
ps_execute_scriptarbitrary ExtendScript (timeout_ms per call) — gate it in your agent policy
ps_recipe(name, args)the 16 recipes (remove background, enhance portrait, frequency separation, social variants, CSV → cards, watermark, mockup …)
ps_skill(doc?)the Photoshop agent skill: the router, or one reference by name (generative, retouch, gotchas …)

ps_uxp(action: ping | batchplay | script) appears when the bridge is on: batchPlay descriptors and JavaScript in the UXP context (photoshop, uxp, params, await allowed).

Behind the facade: 135 tools — the 10 ps_* tools, 109 atomic photoshop_* in 21 categories (document, layer, image, smart_object, transform, filter, adjust, text, selection, mask, action, history, state, generative, neural, style, color, data, stack, export, artboard) and 16 recipes, each recipe one history state. Without the facade flag all of them are exposed directly, as in upstream. Reference: docs/available-tools.md; the fork-specific photoshop_distort_layer takes corners (four [x, y] in document pixels), mode (perspective | bilinear) and rasterize for Smart Objects.

Safety model for agents

  • One envelope for every failure: { ok: false, code, message, suggested_next_tool }. The codes that matter for an autonomous loop: photoshop_busy (Photoshop is modal — tell the user, do not retry blindly), extendscript_timeout (a script is still running — ping until it answers), scratch_disk_full, command_unavailable (the document state forbids the command — not a version problem), no_active_document, generative_credits_exhausted.
  • photoshop_ping never launches Photoshop and fails while a previous script is still running instead of reporting a healthy connection; other tools launch Photoshop when it is closed, as upstream does.
  • Gate what Cmd+Z cannot revert: ps_execute_script, ps_uxp script, close_document, save_document over the original, batch exports. Everything else is one history state.
  • Nothing leaves the machine except what your MCP client sends to its model: there is no analytics, no feedback prompt, no update check. The UXP bridge listens on 127.0.0.1 only and requires the shared-secret header.
  • Upstream's live test suite (npm run test:mcp-all) edits a scratch document in the running Photoshop; run it with no client work open.

Changes against upstream

See CHANGELOG.md (section 0.4.1) and THIRD-PARTY-NOTICES.md. In short: the UXP bridge as a second transport with a shared-secret token; the 9-tool facade; photoshop_distort_layer; photoshop_busy / command_unavailable and the 8-second read timeout; telemetry, feedback nudge, web UI, website and packaging removed. Upstream fixes are merged from alisaitteke/photoshop-mcp by topic, one at a time (currently through 1.7.27).

Release history

Each version is described on the Releases page — what the server does at that version and what the release added:

  • v1.1.4 · 2026-11-06 — the UXP bridge names an older copy that holds its port instead of «the plugin is not running»; «checks its work by sight» in the descriptions.
  • v1.1.3 · 2026-11-06 — the Photoshop skill in the skill-creator form (a map of abilities with «Read when …»); README in plain Markdown for the catalogs.
  • v1.1.2 · 2026-10-28 — descriptions everywhere: every Adobe UI language, a large skills library, built for Adobe's generative features.
  • v1.1.1 · 2026-10-28 — product name Photoshop-MCP-IMT (was PS-MCP-IMT); server name photoshop-mcp-imt like the npm package; tool counts corrected (10-tool facade with ps_skill); the MCP Registry entry also lists the npm package.
  • v1.1.0 · 2026-10-28 — the Photoshop agent skill (skills/ps, ps_skill): generative tools, partner models and credits, retouch, selection, batch, gotchas; the product becomes Photoshop-MCP-IMT + SKILLS.
  • v1.0.0 · 2026-10-28 — every Photoshop UI language (errors by number, fonts by PostScript name, actions without localized names), the Photoshop-MCP-IMT Bridge plugin, Apache-2.0.
  • v0.4.5 · 2026-10-03 — fix: Photoshop is detected automatically on the first call (no more «detect Photoshop first»).
  • v0.4.4 · 2026-10-01 — fix: the ChatGPT gateway command under npx -p.
  • v0.4.3 · 2026-10-01 — ChatGPT in one command (gateway + tunnel), client icons in Install.
  • v0.4.2 · 2026-10-01 — one-click installs: Claude Desktop extension (.mcpb), «Add to Cursor», npm package, install.sh / install.ps1 that write the client configs.
  • v0.4.1 · 2026-10-01 — first public release of the IMT fork: the full server (134 tools) on upstream 1.7.27, plus the UXP bridge, the facade, headless corner-pin and the modal-Photoshop error model.

Every change, including the upstream history 1.0.0 – 1.7.27, is in CHANGELOG.md.

License

Apache License 2.0 — © Immersive Media Technologies.

  • Free to use, modify and distribute, commercial use included.
  • Attribution is required. Every redistribution of this software or of a work derived from it must carry the notice from NOTICE: Photoshop-MCP-IMT by Immersive Media Technologies — https://github.com/Immersive-Media-Technologies.
  • No warranty.

Third-party notices (upstream MIT code): THIRD-PARTY-NOTICES.md.

来源:README.md,提交 fb6f5ba

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v1.1.4最新Nov 7, 2026
  2. v1.1.2Oct 29, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分