Model Context Protocol (MCP) server for the Opus Job Operator API. This server provides tools to programmatically interact with Opus workflows, including job initiation, execution, monitoring, and file uploads.
Quick Start: See QUICKSTART.md for 3-minute setup!
Installation: See INSTALL.md for detailed instructions
Distribution: See DISTRIBUTION.md for sharing options
- Workflow Management: Get workflow details and schemas
- Job Operations: Initiate, execute, and monitor jobs
- File Handling: Generate presigned URLs for secure file uploads
- Monitoring: Check job status, retrieve results, and view audit logs
- Install dependencies:
npm install- Build the project:
npm run build- Set up environment variables:
cp .env.example .env
# Edit .env and add your OPUS_SERVICE_KEY- Navigate to the Opus platform
- Click My Organization at the top
- Click the gear icon next to your Organization's name
- Select API Keys from the settings menu
- Click + Generate API Key
- Copy the key (shown only once) and add to
.envfile
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"opus": {
"command": "node",
"args": ["/absolute/path/to/function1 hackathon/build/index.js"],
"env": {
"OPUS_SERVICE_KEY": "your_service_key_here"
}
}
}
}Use the built executable with environment variable:
OPUS_SERVICE_KEY=your_key node build/index.jsGet workflow details including the jobPayloadSchema that defines required inputs.
Parameters:
workflowId(string, required): The workflow ID from Opus
Returns: Full workflow details including schema, execution estimation, and input requirements
Create a new job instance for a workflow.
Parameters:
workflowId(string, required): The workflow IDtitle(string, required): Job titledescription(string, required): Job description
Returns: jobExecutionId needed for subsequent operations
Generate presigned URLs for secure file uploads.
Parameters:
fileExtension(string, required): File extension with dot (e.g.,.pdf,.jpeg,.png,.docx)accessScope(string, optional): Access scope -all,user,workspace, ororganization(default)
Returns:
presignedUrl: Use for uploading file via PUT requestfileUrl: Use this URL in job execution payload
Supported File Types: .jpeg, .png, .jpg, .pdf, .docx, .csv, .xls, .xlsx, .txt, .json, .html, .xml
Execute a job with populated input values.
Parameters:
jobExecutionId(string, required): Frominitiate_jobresponsejobPayloadSchemaInstance(object, required): Job inputs structured according to workflow schema
Example jobPayloadSchemaInstance:
{
"workflow_input_we4tej0ly": {
"value": "API Test Project",
"type": "str"
},
"workflow_input_a0hk6ujuo": {
"value": 45.8,
"type": "float"
},
"workflow_input_h69vx5i4a": {
"value": "https://files.opus.com/media/private/uploaded/media_file.pdf",
"type": "file"
}
}Check current job execution status.
Parameters:
jobExecutionId(string, required): The job ID
Returns: Status - IN PROGRESS, COMPLETED, or FAILED
Retrieve results from a completed job.
Parameters:
jobExecutionId(string, required): The job ID
Returns: Job results including output files and data (only works when status is COMPLETED)
Get detailed audit log of job execution.
Parameters:
jobExecutionId(string, required): The job ID
Returns: Timestamped log of all system actions
1. Get workflow details to understand required inputs
→ get_workflow_details(workflowId: "B9uGJfZ3CFwOdMKH")
2. (If needed) Generate file upload URLs
→ generate_file_upload_url(fileExtension: ".pdf")
→ Upload file to presignedUrl using PUT request
3. Initiate a job
→ initiate_job(workflowId, title, description)
→ Save jobExecutionId
4. Execute the job with inputs
→ execute_job(jobExecutionId, jobPayloadSchemaInstance)
5. Monitor status
→ get_job_status(jobExecutionId)
6. Get results when complete
→ get_job_results(jobExecutionId)
7. (Optional) View audit log
→ get_job_audit_log(jobExecutionId)
Watch mode for development:
npm run watchFor complete API details, see the markdown files in the root directory:
opus-00-get-workflow-details.md- Workflow schema retrievalopus-03-initiate-job.md- Job initiationopus-04-uploading-files-for-job-inputs.md- File uploadsopus-05-execute-job.md- Job executionopus-06-get-job-execution-status.md- Status monitoringopus-07-get-job-execution-results.md- Results retrievalopus-08-job-audit-log.md- Audit logs
All requests are made to: https://operator.opus.com
Error: OPUS_SERVICE_KEY environment variable is required
- Ensure your
.envfile exists with the correct key, or - Set the environment variable in your MCP client configuration
Error: Authentication failed
- Verify your service key is valid and not expired
- Check that the key has proper permissions in Opus
File upload issues
- Ensure file extension matches the actual file type
- Use PUT request without authentication headers for presigned URL
- Verify file size limits (if any) in Opus documentation
MIT