> ## Documentation Index
> Fetch the complete documentation index at: https://docs.visk.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Client setup

> Connect the Visk MCP server to your AI tool

Visk is a remote MCP server over streamable HTTP. Any MCP client can connect. Add the endpoint, then just ask your AI for a presentation.

Sign-in happens in your client: on first connect it opens a browser window to authorise with your Visk account over OAuth. There are no API keys to create or paste, and nothing to put in a config file.

## Endpoint

Paste this URL into the setup steps below. Keep the trailing slash.

```bash Server URL theme={null}
https://api.visk.com/mcp/
```

## One-click install

Install in any of these clients with a single click.

<CardGroup cols={2}>
  <Card title="Install in Cursor" icon="arrow-pointer" href="https://cursor.com/install-mcp?name=Visk&config=eyJ1cmwiOiJodHRwczovL2FwaS52aXNrLmNvbS9tY3AvIn0%3D">
    One-click install for Cursor.
  </Card>

  <Card title="Install in VS Code" icon="code" href="https://vscode.dev/redirect/mcp/install?name=Visk&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.visk.com%2Fmcp%2F%22%7D">
    One-click install for VS Code.
  </Card>

  <Card title="Install in LM Studio" icon="microchip" href="lmstudio://add_mcp?name=Visk&config=eyJ1cmwiOiJodHRwczovL2FwaS52aXNrLmNvbS9tY3AvIn0%3D">
    One-click install for LM Studio.
  </Card>

  <Card title="Install in Goose" icon="feather" href="goose://extension?url=https%3A%2F%2Fapi.visk.com%2Fmcp%2F&type=streamable_http&id=visk&name=Visk&description=Visk%20PowerPoint%20MCP%20server&timeout=300">
    One-click install for Goose.
  </Card>
</CardGroup>

The LM Studio and Goose links open the desktop app directly, so they only work if it's installed. For Claude Code, Claude.ai, Codex, ChatGPT and other clients, use the steps below — those use a CLI command, a settings page, or a JSON config file rather than deep links.

## Install in your client

<Tabs>
  <Tab title="Claude Code" icon="https://mintcdn.com/visk/EC1OcBUViFQDAstd/images/logos/claude.svg?fit=max&auto=format&n=EC1OcBUViFQDAstd&q=85&s=bbfafec55b782e22fb7ab15bd0e532a4" width="24" height="24" data-path="images/logos/claude.svg">
    <Steps>
      <Step title="Add the server">
        In your terminal, run:

        ```bash theme={null}
        claude mcp add --transport http visk https://api.visk.com/mcp/
        ```
      </Step>

      <Step title="Authenticate">
        Open Claude Code and type `/mcp`, then select **visk**. Select **Authenticate** and complete the authorization.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Claude.ai (web)" icon="https://mintcdn.com/visk/EC1OcBUViFQDAstd/images/logos/claude.svg?fit=max&auto=format&n=EC1OcBUViFQDAstd&q=85&s=bbfafec55b782e22fb7ab15bd0e532a4" width="24" height="24" data-path="images/logos/claude.svg">
    <Steps>
      <Step title="Add the connector">
        Go to **Settings → Connectors** and select **Add custom connector**.
      </Step>

      <Step title="Enter the details">
        Enter the name **Visk** and the MCP server URL `https://api.visk.com/mcp/`, then click **Add**.
      </Step>

      <Step title="Authorize">
        Click **Connect** and complete the authorization.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Codex" icon="https://mintcdn.com/visk/EC1OcBUViFQDAstd/images/logos/codex.svg?fit=max&auto=format&n=EC1OcBUViFQDAstd&q=85&s=c88664b3f6d565fbeba4b39d9cf2df41" width="16" height="16" data-path="images/logos/codex.svg">
    <Steps>
      <Step title="Add the server">
        In your terminal, run:

        ```bash theme={null}
        codex mcp add visk --url https://api.visk.com/mcp/
        ```
      </Step>

      <Step title="Authorize">
        Your browser will be opened automatically for OAuth. Click **Allow** to complete the authorization.
      </Step>
    </Steps>
  </Tab>

  <Tab title="ChatGPT" icon="https://mintcdn.com/visk/EC1OcBUViFQDAstd/images/logos/openai.svg?fit=max&auto=format&n=EC1OcBUViFQDAstd&q=85&s=1ee0fd3d81d0639b6bf70b1637a20fe1" width="16" height="16" data-path="images/logos/openai.svg">
    <Steps>
      <Step title="Enable Developer Mode">
        Hover over your personal account and open **Settings**, then go to **Plugins → Developer Mode** and enable Developer Mode.
      </Step>

      <Step title="Create the plugin">
        Return to the main page, click **Plugins** in the upper-left corner, then click the **+** icon next to the search bar to create a new plugin.
      </Step>

      <Step title="Enter the details">
        Enter the plugin name **visk** and the connection URL `https://api.visk.com/mcp/`.
      </Step>

      <Step title="Connect">
        Click **Create and connect** to complete setup.
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Installation reference

### Cursor

Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project:

```json theme={null}
{
  "mcpServers": {
    "visk": {
      "url": "https://api.visk.com/mcp/"
    }
  }
}
```

See the [Cursor MCP documentation](https://cursor.com/docs/context/mcp) for more.

***

### VS Code

Create `.vscode/mcp.json` in your workspace, or run the **MCP: Open User Configuration** command for a user-level file:

```json theme={null}
{
  "servers": {
    "visk": {
      "type": "http",
      "url": "https://api.visk.com/mcp/"
    }
  }
}
```

VS Code uses a top-level `servers` object rather than Cursor's `mcpServers`, and needs `type: "http"`. See the [VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers).

***

### Other clients

<AccordionGroup>
  <Accordion title="Windsurf">
    Add to `~/.codeium/windsurf/mcp_config.json`:

    ```json theme={null}
    {
      "mcpServers": {
        "visk": {
          "serverUrl": "https://api.visk.com/mcp/"
        }
      }
    }
    ```

    Windsurf uses `serverUrl` rather than `url`. See the [Windsurf MCP documentation](https://docs.windsurf.com/windsurf/cascade/mcp).
  </Accordion>

  <Accordion title="Gemini CLI">
    Add to `~/.gemini/settings.json`:

    ```json theme={null}
    {
      "mcpServers": {
        "visk": {
          "httpUrl": "https://api.visk.com/mcp/"
        }
      }
    }
    ```

    See the [Gemini CLI MCP documentation](https://geminicli.com/docs/tools/mcp-server/).
  </Accordion>

  <Accordion title="Kiro">
    Add to `.kiro/settings/mcp.json` for a workspace, or `~/.kiro/settings/mcp.json` globally:

    ```json theme={null}
    {
      "mcpServers": {
        "visk": {
          "url": "https://api.visk.com/mcp/"
        }
      }
    }
    ```

    See the [Kiro MCP documentation](https://kiro.dev/docs/mcp/configuration/).
  </Accordion>

  <Accordion title="OpenCode">
    Add to `opencode.json` in your project, or `~/.config/opencode/opencode.json` globally:

    ```json theme={null}
    {
      "mcp": {
        "visk": {
          "type": "remote",
          "url": "https://api.visk.com/mcp/",
          "enabled": true
        }
      }
    }
    ```

    See the [OpenCode MCP documentation](https://opencode.ai/docs/mcp-servers/).
  </Accordion>

  <Accordion title="Zed, Warp, Raycast and other stdio-only clients">
    These clients support only stdio-transport MCP servers, so they can't reach a remote HTTP endpoint directly. Bridge through [`mcp-remote`](https://www.npmjs.com/package/mcp-remote), which handles the OAuth flow for you:

    ```json theme={null}
    {
      "mcpServers": {
        "visk": {
          "command": "npx",
          "args": ["-y", "mcp-remote", "https://api.visk.com/mcp/"]
        }
      }
    }
    ```

    Where this goes differs per client — see the [Zed](https://zed.dev/docs/ai/mcp), [Warp](https://docs.warp.dev/university/how-warp-uses-warp/using-mcp-servers-with-warp) or [Raycast](https://manual.raycast.com/ai/model-context-protocol) MCP docs for the exact file and wrapper format.
  </Accordion>
</AccordionGroup>

If your client isn't listed, most accept the `mcpServers` format shown in the Cursor section. Check your client's docs for the field names it expects — VS Code uses `servers`, Windsurf uses `serverUrl`, Gemini CLI uses `httpUrl`.

## Best practices

### Mention Visk by name at first

Once an agent has used the tools once it reaches for them naturally, but on the first request in a session it may build a deck by other means. "Use Visk to build a PowerPoint about…" is enough to anchor it.

### Attach a deck to inherit its brand

Uploading an existing .pptx gives the agent your masters, layouts and theme to work from, so new slides come out on-brand without you describing the styling. It's usually faster than prompting for colours and fonts.

### Let it check its own work

Visk renders slides to PNG, and agents that screenshot as they go catch overflow and layout problems you'd otherwise find in PowerPoint. Iterating on a slide costs nothing extra, so there's no reason to discourage it — see [Pricing](/pricing).

## Troubleshooting

Connection not working? See [troubleshooting](/troubleshooting) for the handful of issues behind nearly all problems.
