Work with Odella from your MCP client
First connect your client and create a token with only the scopes needed for the task. These recipes describe the public user-authorized server, not internal worker connections. Your live Odella permissions still apply. Tool availability depends on the token, and some read operations in write-tool families also require the family’s write scope.Scope checklist
Every token includesodella:read. Add:
Use the client’s current tool schemas for exact parameters and constraints. Do not assume a scope grants resource access or provider credentials.
1. Inspect before changing a worker
Ask the client to:Read my Odella context and list the workers I can access. Show the selected worker’s configuration and instructions before proposing any changes.Use
odella_get_context, employees_list, employees_get_configuration, and employees_get_instructions. Keep the stable employee ID returned by Odella; do not derive it from a display name.
For instruction changes:
- Read the current notes and revision.
- Review the proposed replacement with the user.
- Call
employees_update_instructionswithnotesand the exactexpectedRevisionreturned by the read. - Re-read to confirm the saved result.
2. Assign resources without replacing unrelated work
Preferemployees_add_resource_assignments or employees_remove_resource_assignments for targeted changes. Read available resources and the current configuration first.
- Use the correct category and resource identifiers.
- Private-skill assignments use canonical slugs.
- Toolkit assignment does not complete OAuth or grant credentials.
- Resource assignment does not grant the user or worker otherwise-missing access.
- Assignment does not automatically start the worker.
employees_set_resource_assignments replaces an entire category and requires the exact prior IDs. Use it only when replacement is deliberate; do not use it as a shortcut for adding one resource.
3. Create a task and follow the result
After reading the selected worker’s ID, atasks_create call can use:
tasks_get; use tasks_list to inspect work before creating another task after an uncertain response. Task creation is not idempotent, so blindly repeating it can create duplicate work.
tasks_list supports an employee filter, includeCompleted, and a limit from 1–100. List operations do not all share the same pagination parameters; follow each tool’s schema.
Use tasks_cancel for eligible active/queued work when appropriate. Cancellation is not a rollback of completed external actions. See Tasks for states and review.
4. Upload a file, then use its file ID
- Ask
files_get_upload_urlfor an upload reservation using the file details required by its schema. - Transfer the actual bytes to the returned signed PUT URL outside MCP, using the required headers.
- Call
files_get_upload_statuswith the returned file ID. - Pass the verified upload reference to the destination operation, such as template creation, skill creation, or task attachments, according to that tool’s schema.
5. Prepare and publish a template
Usetemplates_create with the uploaded file ID, not a base64 document. Read templates_get_draft to inspect the persisted draft and revision.
For DOCX, templates_detect_fields proposes placeholder labels; detection does not itself save or publish them. Review and save the intended metadata/labels using the current revision-aware schemas, then explicitly publish with templates_publish when ready.
PDF field positioning remains an editor review checkpoint. templates_render renders authorized published PDF/DOCX templates with supported typed values; it does not send an e-signing invitation. Review the output and protect any temporary artifact URL.
6. Publish an account-private skill
- Upload the
SKILL.mdor supported ZIP source package. - Call
skills_createwith the file ID and required metadata. - Read
skills_get_submissionwith the returned merge-request ID. - Inspect its status and scanner findings.
- After explicit user review, call
skills_publishwith the fresh publication revision required by its schema. - Read back the result before assigning the skill separately.
skills_get for its revision, then skills_update, submission review, and explicit publication. Publishing does not assign the skill, upgrade existing worker version pins, or start a worker.
The MCP submission/publication flow is distinct from the workshop UI’s review-and-merge controls. See Private skills for writing and testing guidance.
7. Stage an Action disabled
Reademployees_actions_list before changing automations. Use employees_actions_create with action.enabled explicitly set to false to stage work for review. Omitting that choice can preserve enabled creation behavior.
Review the trigger/schedule, timezone, work instructions, delivery destination, and permissions before enabling it with employees_actions_update. The worker’s on/off state remains separate, and provider OAuth consent must be completed through the supported UI flow.
Recover from an error
- Missing tool: Check the scope combination and refresh the client’s tool list.
- Conflict/stale revision: Re-read, compare changes, and submit against the fresh revision.
- Permission denied: Review the live account role and resource access; broader token scopes alone cannot fix it.
- Timeout or unknown outcome: Inspect the resource/task before repeating the mutation.
- Provider authorization required: Complete the provider flow in Odella; never paste credentials into a prompt as a workaround.