About asset-access-control
A skill for managing file, folder, and media collection access using DAM MCP tools. It guides users through resolving assets, reading current ACLs, and applying permission changes without inventing identifiers or mixing tool surfaces.
Key features
- 01Resolve assets by name or path
- 02Read file and folder ACLs
- 03Read media collection ACLs
- 04Add, modify, or remove permissions
- 05Distinguish collection membership from access
Use cases
- 01Granting a user access to a file
- 02Updating a group's folder permissions
- 03Changing access to a media collection
- 04Checking collections associated with an asset
MCP support
Uses DAM MCP tools to look up assets and read or update access lists for files, folders, and media collections. It specifies separate tools for asset ACLs, collection ACLs, and collection membership.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ imagekit-developer/ skills --skill asset-access-controlAfter installing, type/asset-access-controlin Claude Code to confirm it loaded.
Details
From the project READMEAsset access control
Use the DAM MCP tools. Two surfaces — do not mix their tools.
| Target | Read ACL | Write ACL |
|---|---|---|
| File or folder | get_asset_access_list | update_asset_acl |
| Media collection | get_collection_access_list | update_media_collection (acl) |
list_associated_media_collections only answers "which collections contain this file/folder?". It does not change membership; use add_assets_to_media_collection / remove_assets_from_media_collection.
Restricted users can only change access on assets they can manage.
Workflow
- Resolve the asset with
search_media_libraryif you only have a name or path. - Read the current ACL. Use
userId/groupIdfrom that response — never invent ids. - Write the change. Then re-read if you need to confirm.
get_asset_access_list also returns users and userGroups for the account. Match the person the user named against userName / userEmail / label.
update_asset_acl
- Always send both
acl.addOrModifyandacl.remove. Use[]on the unused side. entity.typeis onlyUSERorUSER_GROUP.MEDIA_COLLECTIONmay appear on read (inherited membership); do not send it on write.- Do not change the asset owner's entry.
- Do not grant less than a parent folder already grants that same entity.
{
"assetId": "<file-or-folder-id>",
"acl": {
"addOrModify": [{ "entity": { "id": "<userId>", "type": "USER" }, "permission": "READ" }],
"remove": []
}
}
list_associated_media_collections
permission is a string, not an array. Send '["MANAGE"]' or '["READ","CONTRIBUTE"]'. Omit it unless you are filtering for a restricted user.