Apps / DeviantArt Uploader
Actions
Jump to:
check_authuploadupload_folder
Check authorization
check_auth
Verify the stored DeviantArt OAuth2 credentials work by calling the API's whoami endpoint, without uploading anything.
Inputs
Name Type Required / default Values and notes
profile
profile
optional, default deviantart
Outputs
Name Type Notes
ok
bool
username
string
userid
string
Upload artwork
upload
Destructive
Stash and publish one image to DeviantArt as a real deviation, with a title, tags and a mature-content flag.
Inputs
Name Type Required / default Values and notes
image
path
required
title
string
optional, default ""
tags
string
optional, default ""
mature
bool
optional, default false
profile
profile
optional, default deviantart
Outputs
Name Type Notes
deviation_id
string
url
string
Upload a folder
upload_folder
Destructive
Stash and publish every image in a folder to DeviantArt, skipping files already uploaded, with a shared title pattern, tags and a mature-content flag.
Inputs
Name Type Required / default Values and notes
folder
path
required
title
string
optional, default ""
tags
string
optional, default ""
mature
bool
optional, default false
recursive
bool
optional, default false
skip_uploaded
bool
optional, default true
profile
profile
optional, default deviantart
Outputs
Name Type Notes
count
int
failed
int
uploaded
json
Requires
Python >=3.10
Packages requests
Models none
Use it
check_auth
upload
upload_folder
Check authorization
Command line
shell Copy
python app.py --action check_auth --params '{}'
Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.
MCP tool
mcp Copy
run_action("deviantart-uploader", "check_auth", {})
Workflow node
json Copy
{
"id": "n0",
"app": "deviantart-uploader",
"action": "check_auth",
"params": {},
"inputs": {}
}
Upload artwork
Command line
shell Copy
python app.py --action upload --params '{"image": "D:/path/to/image"}'
# preview first - destructive action, nothing is changed:
python app.py --action upload --params '{"image": "D:/path/to/image"}' --dry-run
Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.
MCP tool
mcp Copy
run_action("deviantart-uploader", "upload", {"image": "D:/path/to/image"})
# preview first:
run_action("deviantart-uploader", "upload", {"image": "D:/path/to/image"}, dry_run=true)
Workflow node
json Copy
{
"id": "n0",
"app": "deviantart-uploader",
"action": "upload",
"params": {
"image": "D:/path/to/image"
},
"inputs": {}
}
Upload a folder
Command line
shell Copy
python app.py --action upload_folder --params '{"folder": "D:/path/to/folder"}'
# preview first - destructive action, nothing is changed:
python app.py --action upload_folder --params '{"folder": "D:/path/to/folder"}' --dry-run
Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.
MCP tool
mcp Copy
run_action("deviantart-uploader", "upload_folder", {"folder": "D:/path/to/folder"})
# preview first:
run_action("deviantart-uploader", "upload_folder", {"folder": "D:/path/to/folder"}, dry_run=true)
Workflow node
json Copy
{
"id": "n0",
"app": "deviantart-uploader",
"action": "upload_folder",
"params": {
"folder": "D:/path/to/folder"
},
"inputs": {}
}
Example prompts
Things you can say to Claude, Cursor or Codex once the MCP server is registered.
upload nightfall.png to DeviantArt titled 'Nightfall' with tags 'digital art, fantasy' bulk-upload every image in D:/gallery to DeviantArt, skipping ones I already posted check that my DeviantArt authorization still works