DeskCafés API and MCP

Use https://deskcafes.com/mcp with a remote MCP client, or /api/external/v1 with an OAuth application.

Public discovery needs no account. Account access requires Authorization Code with PKCE S256 and deliberate user authorization. Tokens are bound to the selected resource: MCP tokens cannot call the API and API tokens cannot call MCP.

Every connection uses your current account and venue roles. Control access from Connected accounts in your profile. Credentials, authenticator secrets, passwords and codes are entered directly on protected DeskCafés pages.

Access tokens last 15 minutes. Rotating refresh tokens last 30 days. Keep credentials out of URLs and conversations. Send tokens only in the Authorization header. For repeated writes, retain the same request ID; use the current revision where required.

User-step operations return a protected link. They are not complete until the user finishes that action. Browser support for files, camera and Web Push varies.

Native Codex CLI requires version 0.147.0 or later to preserve the OAuth callback issuer; 0.160.0 is tested. Versions 0.145.0 and 0.146.0 can show “Authentication complete” in the browser and still reject the callback. Update the requesting CLI before another authorization. On Homebrew:brew update, then brew upgrade --cask codex. Verify codex --version and reuse the existing MCP configuration. A connection is confirmed by authenticated account use.

OpenAPI · Agent instructions · Privacy

OperationAPIAccessBehavior
search_venuesPOST /venues/searchpublicSearch claimed, published venues; at most 25 venues per page. Prices are original amounts unless a display currency is selected.
get_venueGET /venues/{venueId}publicRead a published venue, current offer, public reviews and eligible aggregates. This gives no seat guarantee.
get_public_reviewsGET /venues/{venueId}/reviewspublicRead one bounded page of public venue reviews.
get_public_profileGET /profiles/{handle}publicRead an opted-in public profile; private history remains unavailable.
get_accountGET /meaccountRead the authenticated account's stable identifier and chosen profile.
get_profileGET /me/identityaccountReturn the stable authenticated profile represented by verified credentials; its identity persists across refresh and reconnection.
update_profilePATCH /me/profileaccountUpdate chosen display name and handle. The existing 30-day handle-change rule still applies.
update_biographyPATCH /me/biographyaccountUpdate the biography using its current revision; conflicts never silently overwrite.
update_history_privacyPATCH /me/history-privacyaccountSet public-history visibility. Individual public reviews retain attribution.
get_visitsGET /me/visitsaccountRead the account's active visit and one page of its history.
get_visit_quoteGET /venues/{venueId}/quoteaccountRead current price, schedule, reward and non-binding conversion before preparing a visit.
get_visit_codeGET /visit-codes/{tokenId}accountRead a previously prepared visit code's state. Codes rotate every 30 seconds and expire within 90 seconds.
validate_visit_codePOST /venues/{venueId}/visit-scansaccountStart or end a DeskCafes visit by validating the visitor's one-use code as authorized staff of that venue. This changes the visit and public activity count; closing may queue existing email or push notices and a review reminder. Reuse requestId for retries. No reservation, payment or paid status is created.
get_venue_visitsGET /venues/{venueId}/visitsaccountRead current visits as staff or permanent history as the venue administrator; current SQL roles determine visibility.
get_venue_configurationGET /venues/{venueId}/configurationaccountRead permitted configuration, revision, immutable source and current role.
update_venue_pricingPATCH /venues/{venueId}/pricingaccountAdministrator updates original rate, payment methods and commercial/admission calendars using the current revision.
get_my_venuesGET /me/venuesaccountRead associated venues and pending claims.
get_my_claimsGET /me/claimsaccountRead one page of the account's claims and recoveries.
get_venue_accessGET /venues/{venueId}/accessaccountRead current permissions for the specified venue.
get_staffGET /venues/{venueId}/staffaccountAdministrator reads current staff membership.
search_staffGET /venues/{venueId}/staff/searchaccountAdministrator finds registered accounts by public username.
add_staffPOST /venues/{venueId}/staffaccountAdministrator adds the selected registered account by username and queues the existing operational notice.
remove_staffDELETE /venues/{venueId}/staff/{staffId}accountAdministrator removes staff membership immediately.
get_review_eligibilityGET /venues/{venueId}/review-editoraccountRead review eligibility and current editor/revision.
save_reviewPOST /reviewsaccountPublish or replace one living review after an eligible staff-closed visit; sanitized photos only.
get_response_editorGET /venues/{venueId}/reviews/{reviewId}/response-editoraccountAdministrator reads a review-response editor and current revision.
save_review_responsePOST /review-responsesaccountAdministrator publishes or replaces the venue's response using its revision and request ID.
get_referralGET /referrals/{referralId}accountRead an existing referral and reusable sharing link.
get_my_referralsGET /me/referralsaccountRead one page of the account's referrals.
get_rewardsGET /me/rewardsaccountRead one page of the account's referral rewards.
clear_claim_referralDELETE /claims/{claimId}/referralaccountRemove a referral selection from an account-owned pending claim.
submit_staff_reportPOST /reports/staffaccountSubmit an immutable report to DeskCafes moderation about non-payment, session fraud or serious conduct during a closed visit you started or ended as venue staff. Requires your explicit report request, visitId, category and factual explanation. It is not a private draft or a sanction; any enforcement requires a separate human review. Reuse requestId for retries.
submit_venue_reportPOST /reports/venuesaccountSubmit an immutable report to DeskCafes moderation about a venue you visited, using the visitId, permitted category and your factual explanation. Eligibility and duplicate limits are checked. It does not delist the venue or decide the case; enforcement requires separate human review. Reuse requestId for retries.
submit_content_reportPOST /reports/contentaccountSubmit an immutable report to DeskCafes moderation about a published review or photo. Supply its target ID, category and factual explanation; an experience report also requires your eligible visitId. It is not a private draft and does not remove content or decide the case. Any enforcement requires separate human review. Reuse requestId for retries.
get_report_statusGET /me/reportsaccountRead only the requester's own report records, including accessible responses.
get_media_statusGET /media/{assetId}accountRead permitted asset processing state without exposing raw uploads or provider secrets.
get_venue_albumGET /venues/{venueId}/albumaccountAdministrator reads the official album workspace and current revision.
update_venue_albumPATCH /venues/{venueId}/albumaccountAdministrator reorders up to ten sanitized official photos with revision and idempotency protection.
remove_photoDELETE /media/{assetId}accountWithdraw an account-owned or administrator-authorized photo through the existing cleanup pipeline.
get_operationGET /operations/{operationId}accountRead a connection-owned pending operation without replaying a write.
resume_operationPOST /operations/{operationId}/resumeaccountResume an operation after the user approves it on DeskCafes. QR secrets are returned once; retries return safe receipt metadata.
get_claimGET /claims/{claimId}accountRead an account-owned claim and proof progress; source candidates are private.
rotate_visit_codePOST /operations/{operationId}/visit-codeaccountRotate a previously user-approved start/end code after 30 seconds, preserving the accepted original price revision, reward and intent. Current SQL guards reject changed quotes and ended visits; no renewed authentication or model-generated acceptance is used.
request_recovery_reviewPOST /recoveries/{recoveryId}/review-requestaccountAsk a DeskCafes reviewer to examine a venue administration recovery affecting you as its previous administrator. Provide that recoveryId and your reason. The service checks ownership, eligibility and current authentication, and records the request once. This is not password recovery and does not reverse or approve the venue transfer.
get_notificationsGET /me/notificationsaccountRead current notification preferences. Web Push subscription requires the user's browser.
disable_notificationsDELETE /me/notificationsaccountDisable account Web Push delivery using the same preference service.
get_upload_receiptGET /media/uploads/{requestId}accountRead an account-owned upload request's processing receipt.
get_public_albumGET /venues/{venueId}/photospublicRead the bounded public album of a published venue.
update_venue_profilePATCH /venues/{venueId}/profileaccountEdit ordinary venue description and contacts, preserving the existing staffed-public declaration; creating that declaration needs a protected user step.
prepare_visitPOST /visit-codesaccountPrepare a start/end code after deliberate acceptance of the original rate on DeskCafes. Resume the returned operation after approval; staff must still validate the code.
update_venue_characteristicsPATCH /venues/{venueId}/characteristicsaccountReplace owner-declared resources and usage policies with revision validation. Published venues require all current answers; partial drafts remain unpublished. Reviews never alter these declarations.
configure_venuePOST /venues/{venueId}/profileaccountPresent a venue configuration and staffed-public declaration for deliberate user approval.
publish_venuePOST /venues/{venueId}/publicationaccountRequest deliberate publication of a verified, configured venue.
select_claim_referralPOST /claims/{claimId}/referralaccountPresent the free-session referral obligation for deliberate acceptance.
authorize_photo_uploadPOST /media/upload-authorizationsaccountAuthorize a bounded original-byte upload for an account avatar, review or official album. Use the returned two-minute header capability with the exact upload URL; URL fetching is unsupported.
lookup_overturePOST /claims/lookupaccountOpen the protected DeskCafes venue search when you want to claim a venue, refer one or recover its administration. Choose purpose claim, referral or recovery. Returns a user_action_required link and operationId; the user completes CAPTCHA and the bounded search on DeskCafes. Candidate results are private, not the published venue catalogue. Existing search quotas apply.
select_overturePOST /claims/selectionsaccountSelect a venue candidate returned by your completed private DeskCafes search to create or reuse a claim, administration recovery or referral link. Supply the exact sealed receipt and matching purpose from that search; receipts are bound to your account and session. Selection does not establish ownership, publish the venue or bypass control verification.
begin_domain_proofPOST /claims/{claimId}/domain-proofsaccountPrepare DNS or HTTPS control proof from the claim's verified official contact; no arbitrary network target is accepted.
check_domain_proofPOST /proofs/{proofId}/checkaccountCheck a prepared DNS/HTTPS control proof with current account, owner, nonce, provider bounds and SQL revalidation.
start_sign_inPOST /auth/startpublicStart account login, registration or email recovery in a protected DeskCafes surface.
complete_onboardingPOST /me/onboardingaccountComplete chosen identity, adult declaration, Terms and mobile verification in DeskCafes.
manage_passwordPOST /me/passwordaccountChange or recover a password directly in DeskCafes; never send passwords to this tool.
manage_phonePOST /me/phoneaccountVerify or replace the phone directly in DeskCafes; SMS requests remain deliberate.
manage_googlePOST /me/googleaccountManage Google access directly in DeskCafes, retaining fresh email and password proof before unlink.
manage_totpPOST /me/totpaccountManage optional login TOTP in DeskCafes. Never send authentication codes, setup seeds or recovery codes to an agent.
export_accountPOST /me/exportaccountRequest the existing protected account export including integrations.
delete_accountPOST /me/deletionaccountOpen the deliberate protected account deletion with real recent authentication.
manage_notificationsPOST /me/notificationsaccountManage preferences and grant Web Push permission in a compatible browser.
request_reconsiderationPOST /reconsiderationspublicOpen the DeskCafes appeal form when you want review of a moderation decision about your account, venue or content. Returns a protected URL, not a submitted appeal. Enter the decision ID, reason and email verification directly on DeskCafes and complete its CAPTCHA; never send email codes to the agent. Eligibility is checked there, and opening the form does not reverse the decision.
submit_illegal_noticePOST /illegal-noticespublicSubmit a deliberate public illegal-content notice with the existing CAPTCHA and good-faith declaration.
delete_venuePOST /venues/{venueId}/deletionaccountDelete a venue with deliberate confirmation and actual recent authentication.
manage_control_proofPOST /claims/{claimId}/proofaccountComplete email/SMS/voice/domain control proof. Codes and paid sends are handled directly in DeskCafes.
upload_photoPOST /media/uploadsaccountUpload original image bytes directly to the existing sanitizer; arbitrary remote URLs are never fetched.

Platform directory listings and platform verification are separate from this server’s protocol support. No directory listing is implied.