Omniscient Master Suite OMNISCIENT · 3.1

DeviantArt Uploader v1.0.0

Social & publishing deviantart-uploader 3 actions MCP

Submit artwork to DeviantArt via its OAuth2 API - stash and publish images as real deviations, using OAuth2 credentials kept in the vault, never in code.

The omniscient:// link needs a protocol handler on your machine, which is not built yet. Until then it does nothing — use the commands below.

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

NameTypeRequired / defaultValues and notes
profile profile optional, default deviantart

Outputs

NameTypeNotes
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

NameTypeRequired / defaultValues and notes
image path required
title string optional, default ""
tags string optional, default ""
mature bool optional, default false
profile profile optional, default deviantart

Outputs

NameTypeNotes
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

NameTypeRequired / defaultValues 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

NameTypeNotes
count int
failed int
uploaded json

Use it

Check authorization

Command line

shell
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
run_action("deviantart-uploader", "check_auth", {})

Workflow node

json
{
  "id": "n0",
  "app": "deviantart-uploader",
  "action": "check_auth",
  "params": {},
  "inputs": {}
}

Upload artwork

Command line

shell
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
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
{
  "id": "n0",
  "app": "deviantart-uploader",
  "action": "upload",
  "params": {
    "image": "D:/path/to/image"
  },
  "inputs": {}
}

Upload a folder

Command line

shell
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
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
{
  "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.