Connect and grant access
Use Protodesk MCP withai:use and conversations:read. OAuth and API keys are supported. REST requests use an API key at https://api.protodesk.io/v1; MCP OAuth tokens cannot authenticate REST requests.
The connection must belong to a current workspace owner or admin. Create API keys in Settings → API. Older generic keys without a recorded human creator cannot run these operations; replace them if the API returns ai.connection_required.
Only the exact API key or OAuth grant that created a run can retrieve its private results. Another key belonging to the same person, or a newly authorized OAuth connection, cannot take over those results. Ticket Context is shared conversation context.
Suggest a reply
- Call
workspace_contextand confirm the workspace. - Read the conversation and identify its conversation ID.
- Call
suggest_evelin_replywith a stable idempotency key. - Poll
get_evelin_runusing the returned run ID. - When it succeeds, call
get_evelin_resultwithkind: "reply-draft". - Review the body, grounding, citations, and any outdated-knowledge indicator.
get_evelin_result with kind: "reply-guard" and inspect shouldDraft, reasonCode, and reason. Set overrideNoReply: true only when you intentionally want a draft despite that recommendation.
The REST equivalent is:
202 with the run in data. Poll GET /ai/runs/{runId}, then read GET /ai/runs/{runId}/results/reply-draft.
Rewrite or translate a draft
Callrewrite_with_evelin with the conversation ID, workspace confirmation, idempotency key, and a body containing mode and draft.
kind: "rewrite" after the run succeeds. The result includes text, mode, changed, and applicable language, tone, or preset fields. The original draft is not edited.
To translate a stored message, use translate_message_with_evelin with messageId and body.targetLanguage. It translates the current message body and returns a rewrite result without changing the message. If the message changes before a retry, the same idempotency key conflicts.
Draft input is limited to 20,000 characters and the overall request body to 64 KiB.
Other actions
Review translation only accepts a suggested-reply artifact owned by the same connection. It preserves the original reply and identifies its source artifact and content hash. Generated results remain subject to artifact retention, redaction, and knowledge freshness.
Manual generation supports email, WhatsApp, and chat conversations. A conversation with another channel returns
ai.channel.unsupported.
Runs, retries, and credits
Runs can bequeued, running, or waiting, then finish as succeeded, partially_succeeded, failed, or canceled. Run status includes creditsUsed and an error category. A successful run does not always produce every result kind.
Poll with a reasonable interval, such as three seconds. A result may return 404 while unfinished or when it is absent, expired, redacted, or owned by another connection. Do not treat 404 as permission to start another chargeable run.
Retry an uncertain generation request with the same arguments and idempotency key. It reuses the original run. Changing inputs with that key returns a conflict. New keys represent new work and can consume additional credits.
If Evelin is disabled or unavailable, new work returns 503. Credit exhaustion and other runtime failures remain visible through run status. These tools do not bypass the workspace’s existing AI policy.
Review before sending
Use a generated draft as a proposal for your review. To deliver it, callsend_message separately with messages:send and an explicit destination. Inspect delivery status afterward. A completed Evelin run is never a delivery receipt.
Assistant chat sessions, action confirmation/undo, and feedback are not exposed by these ten tools yet. See the tool reference for the current supported catalog.