Skip to content

Folder Management Abilities

These abilities are always active when the Virtual Media Folders base plugin is installed and the VMFA AI Ability plugin is active. No add-on is required.

Category slug: vmfo-folder-management


Label: List Folders
Permission: upload_files
Flags: readonly · idempotent

Returns all folders with their IDs, names, parent IDs, full paths, and media counts. Use this ability to resolve folder names to IDs before calling write abilities.

ParameterTypeRequiredDefaultDescription
searchstringNoFilter folders whose name contains this string
parent_idinteger ≥ 0NoLimit results to direct children of this folder ID
hide_emptybooleanNofalseExclude folders with zero media items
{
"folders": [
{
"id": 42,
"name": "Travel",
"parent_id": 0,
"path": "Travel",
"count": 17
}
],
"total": 1
}
Terminal window
curl -s -X POST "https://example.com/wp-json/mcp/mcp-adapter-default-server" \
-u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "mcp-adapter-execute-ability",
"arguments": {
"ability_name": "vmfo/list-folders",
"parameters": { "search": "travel", "hide_empty": false }
}
}
}'

Label: Create Folder
Permission: manage_categories
Flags:

Creates a new folder, optionally nested under a parent.

ParameterTypeRequiredDefaultDescription
namestring (min 1)YesFolder name
parent_idinteger ≥ 0No0Parent folder ID; 0 creates a top-level folder
{
"id": 99,
"name": "Travel",
"parent_id": 0,
"path": "Travel",
"count": 0
}
Terminal window
curl -s -X POST "https://example.com/wp-json/mcp/mcp-adapter-default-server" \
-u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "mcp-adapter-execute-ability",
"arguments": {
"ability_name": "vmfo/create-folder",
"parameters": { "name": "Travel", "parent_id": 0 }
}
}
}'

Label: Add Media to Folder
Permission: upload_files
Flags:

Assigns one or more media attachments to a folder.

ParameterTypeRequiredDefaultDescription
folder_idinteger ≥ 1YesTarget folder ID
attachment_idsinteger[] (min 1 item)YesAttachment post IDs to assign
{
"success": true,
"folder_id": 42,
"processed_count": 3,
"results": [
{ "attachment_id": 1001, "success": true, "message": "Assigned." },
{ "attachment_id": 1002, "success": true, "message": "Assigned." }
]
}
Terminal window
curl -s -X POST "https://example.com/wp-json/mcp/mcp-adapter-default-server" \
-u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "mcp-adapter-execute-ability",
"arguments": {
"ability_name": "vmfo/add-to-folder",
"parameters": { "folder_id": 42, "attachment_ids": [1001, 1002] }
}
}
}'

Label: Update Folder
Permission: manage_categories
Flags: idempotent

Renames a folder or moves it to a new parent. All fields except folder_id are optional — only supplied fields are changed.

ParameterTypeRequiredDefaultDescription
folder_idinteger ≥ 1YesFolder to update
namestring (min 1)NoNew folder name
parent_idinteger ≥ 0NoNew parent ID (0 to move to root)
descriptionstringNoFolder description
{
"id": 42,
"name": "Road Trips",
"parent_id": 0,
"path": "Road Trips",
"count": 17
}
Terminal window
curl -s -X POST "https://example.com/wp-json/mcp/mcp-adapter-default-server" \
-u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "mcp-adapter-execute-ability",
"arguments": {
"ability_name": "vmfo/update-folder",
"parameters": { "folder_id": 42, "name": "Road Trips" }
}
}
}'

Label: Delete Folder
Permission: manage_categories
Flags: destructive

Deletes a folder term. Pass force: true to hard-delete; omit or pass false to use the default behaviour (term is removed but media is not deleted).

ParameterTypeRequiredDefaultDescription
folder_idinteger ≥ 1YesFolder to delete
forcebooleanNofalseHard-delete the term without safety checks
{ "deleted": true, "id": 42 }
Terminal window
curl -s -X POST "https://example.com/wp-json/mcp/mcp-adapter-default-server" \
-u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "mcp-adapter-execute-ability",
"arguments": {
"ability_name": "vmfo/delete-folder",
"parameters": { "folder_id": 42 }
}
}
}'

Label: Remove Media from Folder
Permission: upload_files
Flags:

Removes one or more media attachments from a folder. The REST endpoint accepts one attachment at a time; this ability loops internally.

ParameterTypeRequiredDefaultDescription
folder_idinteger ≥ 1YesFolder to remove media from
attachment_idsinteger[] (min 1 item)YesAttachment IDs to remove
{
"success": true,
"folder_id": 42,
"processed_count": 2,
"results": [
{ "media_id": 1001, "success": true, "message": "Removed." },
{ "media_id": 1002, "success": true, "message": "Removed." }
]
}
Terminal window
curl -s -X POST "https://example.com/wp-json/mcp/mcp-adapter-default-server" \
-u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "mcp-adapter-execute-ability",
"arguments": {
"ability_name": "vmfo/remove-from-folder",
"parameters": { "folder_id": 42, "attachment_ids": [1001, 1002] }
}
}
}'

Label: Get Folder Suggestions
Permission: upload_files
Flags: readonly · idempotent

Returns AI-powered folder suggestions for a single media item based on its content and metadata.

ParameterTypeRequiredDefaultDescription
media_idinteger ≥ 1YesAttachment post ID to get suggestions for
{
"suggestions": [
{ "folder_id": 42, "folder_name": "Travel", "score": 0.91 }
],
"dismissed": []
}
Terminal window
curl -s -X POST "https://example.com/wp-json/mcp/mcp-adapter-default-server" \
-u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "mcp-adapter-execute-ability",
"arguments": {
"ability_name": "vmfo/get-suggestions",
"parameters": { "media_id": 1001 }
}
}
}'