MCP: drive every Suite app from Claude, Cursor or Codex
The Omniscient Master Suite ships an MCP server that makes every installed app callable by an AI assistant. It lives in the suite folder as omniscient_mcp.py (Python MCP SDK, stdio transport).
Four tools, generic dispatch
Exposing one tool per action would flood a client's context (there are well over a hundred actions). Instead the server offers four tools that together cover every app, and scale to any number of apps:
list_apps()— every app with its category, description and action namessearch_apps(query)— find apps by keyword ("resize image", "flickr", "video caption")describe_action(app, action)— the full parameter schema of one actionrun_action(app, action, params, dry_run)— run an action headlessly;dry_run=truepreviews a destructive action without changing anything
Two more tools expose pipelines built in the node editor:
list_workflows()— saved workflowsrun_workflow(workflow | name, dry_run)— validate and run a pipeline (inline JSON or a saved name)
The assistant's workflow is: search or list, then describe, then run. Every run executes the app through its own command line (app.py --action … --params … --json), so results are identical to what you get in a terminal or in the desktop GUI.
Register the server
Claude Code:
claude mcp add omniscient -- python "Z:/Claude/omniscient31/omniscient_mcp.py"Cursor, Codex or any other MCP client (mcp.json):
{
"mcpServers": {
"omniscient": {
"command": "python",
"args": ["Z:/Claude/omniscient31/omniscient_mcp.py"]
}
}
}Replace the path with wherever your suite folder lives. The mcp Python package must be installed in that interpreter (pip install mcp). The server sets OMNISCIENT_HOME and PYTHONPATH for the apps itself.
Example
"Resize every image in D:/renders to 1024 px"
search_apps("resize")findsimage-resizerdescribe_action("image-resizer", "resize_folder")shows the inputsrun_action("image-resizer", "resize_folder", {"folder": "D:/renders", "max_size": 1024})
Destructive actions (rename, move, delete, post online) are marked as such in each app's page on this site; call them with dry_run=true first to see what would happen.