Skip to content

Hosted MCP server

Two Desk Genie servers

The Desk Genie Mac app also runs a local MCP server named desk-genie, which speaks and animates your character on your Mac (Mac app MCP server). This hosted server is named desk-genie-hosted so both can be installed in the same client. Tools from each appear under their own server name. Keep the hosted name when you copy a configuration.

  • Address: https://stage.app.deskgenie.studio/api/mcp
  • Transport: Streamable HTTP. Each POST carries one JSON-RPC message and receives one JSON response. The server does not open event streams.
  • Authentication: Authorization: Bearer dg_..., an access token.

Tools

Tool Arguments Returns
list_characters none The characters you can talk to, as { id, name }.
talk character (an id from list_characters), message (1 to 4,000 characters) The character's reply as text. Each call starts a new conversation.
get_usage none Today's turns, voice seconds and cost against your daily limit.

Each talk call is one turn against your daily limit. Spoken replies are not returned over MCP.

Client configuration

claude mcp add --transport http --scope user desk-genie-hosted https://stage.app.deskgenie.studio/api/mcp \
  --header "Authorization: Bearer $DESK_GENIE_TOKEN"
{
  "servers": {
    "desk-genie-hosted": {
      "type": "http",
      "url": "https://stage.app.deskgenie.studio/api/mcp",
      "headers": { "Authorization": "Bearer ${input:desk-genie-token}" }
    }
  },
  "inputs": [
    { "type": "promptString", "id": "desk-genie-token", "description": "Desk Genie access token", "password": true }
  ]
}

VS Code asks for the token when it starts the server. The GitHub Copilot CLI reads the same mcp.json but cannot fill in ${input:...}, so it sends that text as the token and the server answers 401. To use the CLI, replace the header value with Bearer dg_... and your token. The file is plaintext, so use a short-lived token and revoke it when you finish.

Download the hosted extension and follow the Claude Desktop guide. It covers the install, the unsigned-file warning, the token prompt and download problems.

{
  "mcpServers": {
    "desk-genie-hosted": {
      "url": "https://stage.app.deskgenie.studio/api/mcp",
      "headers": { "Authorization": "Bearer ${env:DESK_GENIE_TOKEN}" }
    }
  }
}

The install buttons on the MCP page write these configurations for you. A request that carries an Origin header, which browsers add, is refused unless the origin is Desk Genie's own. No button or link ever contains your token: VS Code asks for it, and Cursor reads it from DESK_GENIE_TOKEN.

Raw requests

curl -s https://stage.app.deskgenie.studio/api/mcp \
  -H "Authorization: Bearer $DESK_GENIE_TOKEN" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"talk","arguments":{"character":"pip","message":"Hello"}}}'

Errors

A missing or invalid token returns HTTP 401. A tool that cannot finish, for example at your daily limit, returns a result with isError: true and a message to show the user. See Limits and errors.