{"x402Version":1,"service":"DeskCrew agent API","paymentTerms":{"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xB075aA8206D6De88EDEeD0eE4015a1a33D3659D8","x402Version":1},"acceptedNetworks":[{"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xB075aA8206D6De88EDEeD0eE4015a1a33D3659D8","x402Version":1},{"scheme":"exact","network":"polygon","asset":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","payTo":"0xB075aA8206D6De88EDEeD0eE4015a1a33D3659D8","x402Version":1},{"scheme":"exact","network":"avalanche","asset":"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E","payTo":"0xB075aA8206D6De88EDEeD0eE4015a1a33D3659D8","x402Version":1},{"scheme":"exact","network":"sei","asset":"0xe15fc38f6d8c56af07bbcbe3baf5708a2bf42392","payTo":"0xB075aA8206D6De88EDEeD0eE4015a1a33D3659D8","x402Version":1},{"scheme":"exact","network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"3uusWWisxWKpscMWAmgV5otpm5Xmjk1W3WPQsHAxFPfa","x402Version":1,"feePayer":"EvJZ4f2AUy6BJihdP4cj3EsDaunA9RaDUpWg4nGemqHk"}],"doorUrlPattern":"/api/mcp/{tenantSlug}","manifestUrlPattern":"/api/mcp/{tenantSlug}/manifest","actions":[{"name":"list_tickets","description":"Read-only: list support tickets in the caller's tenant, sorted by most recent message first. Reach for this to discover ticket ids, triage the queue, or poll for activity before acting on a specific ticket; results can be narrowed by status, priority, assignee, and an updated-since timestamp, and capped via limit (max 50, default 20). Returns lightweight ticket summaries (id, subject, status, priority, lastMessageAt, customer, assignee, tenant) plus the total match count — it never creates or modifies anything.","tier":"read","priceUsd":0,"sendsEmail":false,"accessNote":"free"},{"name":"search_tickets","description":"Read-only full-text search over the current tenant's support tickets, matching the query against each ticket's subject and first customer message (ranked, with a literal subject-substring fallback for partial words). Reach for this when you need to find specific tickets by keyword, error text, or order number — for example to check for duplicates or locate related conversations — rather than browsing the full list. Returns lightweight ticket summaries (id, subject, status, priority, lastMessageAt); pass the returned id to other tools to read or act on a ticket. Results are always scoped to your authenticated tenant.","tier":"read","priceUsd":0,"sendsEmail":false,"accessNote":"free"},{"name":"get_ticket_context","description":"Read-only: returns a complete working bundle for one ticket so an agent can draft an informed reply or triage it — the full message thread, the customer profile, that customer’s other tickets, similar already-resolved tickets, and the most relevant published knowledge-base articles in the tenant. Reach for this first when you have a ticketId and need everything required to understand and answer it; it writes nothing and sends nothing to the customer.","tier":"read","priceUsd":0.02,"sendsEmail":false,"accessNote":"pay-per-call"},{"name":"triage","description":"Classify an existing support ticket by setting any of its priority, tags, and/or category in a single call; reach for this after reading a ticket to route or label it for the team. At least one of priority, tagIds, or category must be provided. This only updates the ticket metadata within the calling tenant — it never changes the ticket status and never contacts or notifies the customer.","tier":"draft","priceUsd":0.03,"sendsEmail":false,"accessNote":"pay-per-call"},{"name":"draft_reply","description":"Proposes a reply on a support ticket by saving it as a DRAFT in the human approval queue; the draft is NOT sent to the customer (it is recorded with delivered: false and notifies the ticket thread that an approval is pending). Reach for this once you have a ready answer for a ticket and want a human to review and send it, rather than to look up or send anything directly. Returns the new draft id, the ticket id, and status: \"draft\".","tier":"draft","priceUsd":0.06,"sendsEmail":false,"accessNote":"pay-per-call"},{"name":"propose_resolution","description":"Submit a proposed resolution for an existing support ticket as a DRAFT for human approval — it is queued for a human agent to review and is NOT sent to the customer and does NOT close the ticket. Reach for this once you have diagnosed a ticket and have a concrete, customer-ready answer or fix to suggest. The ticket is looked up by id within the authenticated tenant; if no matching ticket exists the call is refused.","tier":"draft","priceUsd":0.06,"sendsEmail":false,"accessNote":"pay-per-call"},{"name":"link_issue","description":"Associate an existing support ticket with a tracked issue (bug or feature) in the same tenant, so the ticket is connected to the underlying work item. Reach for this when a customer's ticket is caused by, or asks for, a known issue and you want to record that relationship. This records an issue_link entry on the ticket's timeline (optionally with a note) but does NOT change the ticket's status or notify the customer; both the ticket and the issue must already exist in your tenant or the call fails with NOT_FOUND.","tier":"draft","priceUsd":0.03,"sendsEmail":false,"accessNote":"pay-per-call"},{"name":"send_reply","description":"Sends a reply to the customer on an existing ticket and DELIVERS it immediately (customer email plus any connected chat threads) — this is not a draft and reaches the customer. Use this once you have a final, customer-ready answer; to instead queue a reply for human approval, use the draft tool. Requires a \"send\"-tier credential (a draft-tier credential is refused) and the ticket must already have a customer email on file or the call is rejected.","tier":"send","priceUsd":0.08,"sendsEmail":true,"accessNote":"requires trusted reputation + operator opt-in"},{"name":"resolve","description":"Marks a ticket as resolved by setting its status to \"closed\" and recording an internal status-change note on the timeline. Reach for this once the issue has been handled and you want to close it out; it is idempotent (a no-op returning changed:false if the ticket is already closed) and reversible (a human can reopen it from the dashboard). Requires the \"send\" tier on this credential. The note is an internal audit entry only and is NOT delivered to the customer.","tier":"send","priceUsd":0.05,"sendsEmail":false,"accessNote":"requires trusted reputation + operator opt-in"},{"name":"assign","description":"Assigns an existing ticket to a human agent on this tenant, recording an assignment event on the ticket timeline. Reach for this to route or hand off a ticket to a specific teammate. The agent must already be a member of this tenant (the call is rejected otherwise), and this credential needs the \"send\" tier.","tier":"send","priceUsd":0.03,"sendsEmail":false,"accessNote":"requires trusted reputation + operator opt-in"},{"name":"search_kb","description":"Read-only full-text search over this tenant’s PUBLISHED knowledge-base articles (playbooks, policies, how-tos); unpublished drafts are never returned and the tenant is fixed by your credentials. Reach for this FIRST to ground an answer in official, tenant-specific guidance before replying to a customer or drafting a resolution. Returns articles ranked by relevance, each with its id, title, a highlighted snippet, and updatedAt — search uses AND semantics, so every word in the query must match.","tier":"read","priceUsd":0,"sendsEmail":false,"accessNote":"free"},{"name":"list_issues","description":"Read-only: lists this tenant's tracked issues (bugs and feature requests) from the public roadmap/issue tracker, newest first. Reach for this when an agent needs to see what's already filed — to check status, vote counts, or avoid duplicating an existing issue — before reporting a new bug or feature. Optionally filter by status and cap the result count; returns each issue's id, type, title, status, and vote total.","tier":"read","priceUsd":0,"sendsEmail":false,"accessNote":"free"},{"name":"list_changelog","description":"Read-only: list this tenant's published changelog entries (product updates / release notes), sorted newest-first, returning each entry's id, title, body, and publishedAt. Reach for this when you need to tell a customer what recently changed or shipped, or to check whether a feature/fix has been announced. Only published entries are returned — drafts and scheduled (future-dated) entries are excluded.","tier":"read","priceUsd":0,"sendsEmail":false,"accessNote":"free"},{"name":"create_ticket","description":"Files a new support ticket for an end customer on this tenant and returns its ticketId, customerId, and status. Use this when an agent needs to log a new customer issue or request; it find-or-creates the customer by email, optionally records the customer's first message, and does NOT send any email or notify the customer.","tier":"draft","priceUsd":0.02,"sendsEmail":false,"accessNote":"pay-per-call"},{"name":"create_issue","description":"Create a new bug report or feature-request issue in this tenant's issue tracker, filed in the 'open' status. Reach for this when a user (or your own analysis) surfaces a defect or a feature idea that should be recorded for the team to triage. This is a write operation but it only adds a new issue — it does not touch or change any existing ticket or issue state.","tier":"draft","priceUsd":0.02,"sendsEmail":false,"accessNote":"pay-per-call"}]}