Omniscient Master Suite OMNISCIENT · 3.1

Twitter Poster v1.0.0

Social & publishing twitter-poster 4 actions MCP

Post text and image tweets to X/Twitter, one-off or as a batch from a folder, using OAuth1 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_loginpost_textpost_imagepost_from_folder

Check login

check_login

Verify the stored X/Twitter credentials work by asking the API who they belong to, without posting anything.

Inputs

NameTypeRequired / defaultValues and notes
profile profile optional, default twitter

Outputs

NameTypeNotes
ok bool
username string
user_id string

Post a tweet

post_text Destructive

Post a plain text tweet.

Inputs

NameTypeRequired / defaultValues and notes
text text required
profile profile optional, default twitter

Outputs

NameTypeNotes
tweet_id string
url string

Post an image

post_image Destructive

Post a single image (or short video/GIF) with optional accompanying text.

Inputs

NameTypeRequired / defaultValues and notes
image path required
text text optional, default ""
profile profile optional, default twitter

Outputs

NameTypeNotes
tweet_id string
url string
media_id string

Post a folder

post_from_folder Destructive

Post every new image in a folder as its own tweet, skipping files already posted. Each file's text comes from a same-named .txt file next to it if present, else a template, else the filename.

Inputs

NameTypeRequired / defaultValues and notes
folder path required
text_template text optional, default ""
recursive bool optional, default false
skip_posted bool optional, default true
shuffle bool optional, default false
limit int optional, default 0
profile profile optional, default twitter

Outputs

NameTypeNotes
count int
failed int
posted json

Use it

Check login

Command line

shell
python app.py --action check_login --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("twitter-poster", "check_login", {})

Workflow node

json
{
  "id": "n0",
  "app": "twitter-poster",
  "action": "check_login",
  "params": {},
  "inputs": {}
}

Post a tweet

Command line

shell
python app.py --action post_text --params '{"text": "<text>"}'

# preview first - destructive action, nothing is changed:
python app.py --action post_text --params '{"text": "<text>"}' --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("twitter-poster", "post_text", {"text": "<text>"})

# preview first:
run_action("twitter-poster", "post_text", {"text": "<text>"}, dry_run=true)

Workflow node

json
{
  "id": "n0",
  "app": "twitter-poster",
  "action": "post_text",
  "params": {
    "text": "<text>"
  },
  "inputs": {}
}

Post an image

Command line

shell
python app.py --action post_image --params '{"image": "D:/path/to/image"}'

# preview first - destructive action, nothing is changed:
python app.py --action post_image --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("twitter-poster", "post_image", {"image": "D:/path/to/image"})

# preview first:
run_action("twitter-poster", "post_image", {"image": "D:/path/to/image"}, dry_run=true)

Workflow node

json
{
  "id": "n0",
  "app": "twitter-poster",
  "action": "post_image",
  "params": {
    "image": "D:/path/to/image"
  },
  "inputs": {}
}

Post a folder

Command line

shell
python app.py --action post_from_folder --params '{"folder": "D:/path/to/folder"}'

# preview first - destructive action, nothing is changed:
python app.py --action post_from_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("twitter-poster", "post_from_folder", {"folder": "D:/path/to/folder"})

# preview first:
run_action("twitter-poster", "post_from_folder", {"folder": "D:/path/to/folder"}, dry_run=true)

Workflow node

json
{
  "id": "n0",
  "app": "twitter-poster",
  "action": "post_from_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.