viggoVet MCP · beta

Connect your AI agent to viggoVet

The viggoVet MCP server lets any AI assistant securely read your clinic's data — patients and medical history, clients and balances, the calendar and free slots, invoices, inventory, dashboards and reports — over the Model Context Protocol.

Endpoint: https://mcp.viggo.vet/mcp
Transport: Streamable HTTP  ·  Auth: per-request headers (your clinic address + credentials)

What you need

HeaderValueRequired
X-Viggo-Clinic-Urlthe address you use to log in to viggoVet, e.g. https://demo.viggo.vetYes
X-Viggo-Api-Urlyour clinic's API address, e.g. https://demo-api.viggo.vet (provided by viggoVet support)Recommended
X-Viggo-Emailthe viggoVet login email of the user the agent acts asYes (today)
X-Viggo-Passwordthat user's passwordYes (today)
X-Viggo-TokenAPI token (coming soon — replaces email + password)—

If X-Viggo-Api-Url is left out, the server works it out from your clinic address. Your viggoVet permissions are enforced on every call — the agent can never see or do more than that user's account allows.

Use a dedicated AI user. viggoVet allows one active session per user. If you connect with your normal login, you'll be signed out of the viggoVet web app while the agent is active. Ask your viggoVet admin to create a separate user for the agent, with only the permissions it needs.

In every example below, replace https://demo.viggo.vet, https://demo-api.viggo.vet, the email and the password with your own values.

Claude Code

One command

claude mcp add --transport http viggo https://mcp.viggo.vet/mcp \
  --header "X-Viggo-Clinic-Url: https://demo.viggo.vet" \
  --header "X-Viggo-Api-Url: https://demo-api.viggo.vet" \
  --header "X-Viggo-Email: ai-assistant@yourclinic.com" \
  --header "X-Viggo-Password: YOUR_PASSWORD"

Or a project .mcp.json

Keeps the password out of the file — set VIGGO_EMAIL and VIGGO_PASSWORD in your shell environment.

{
  "mcpServers": {
    "viggo": {
      "type": "http",
      "url": "https://mcp.viggo.vet/mcp",
      "headers": {
        "X-Viggo-Clinic-Url": "https://demo.viggo.vet",
        "X-Viggo-Api-Url": "https://demo-api.viggo.vet",
        "X-Viggo-Email": "${VIGGO_EMAIL}",
        "X-Viggo-Password": "${VIGGO_PASSWORD}"
      }
    }
  }
}

Claude Desktop

Settings → Developer → Edit Config (claude_desktop_config.json). Requires Node.js 18+. Restart Claude Desktop afterwards.

{
  "mcpServers": {
    "viggo": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://mcp.viggo.vet/mcp",
        "--header", "X-Viggo-Clinic-Url:${VIGGO_CLINIC_URL}",
        "--header", "X-Viggo-Api-Url:${VIGGO_API_URL}",
        "--header", "X-Viggo-Email:${VIGGO_EMAIL}",
        "--header", "X-Viggo-Password:${VIGGO_PASSWORD}"
      ],
      "env": {
        "VIGGO_CLINIC_URL": "https://demo.viggo.vet",
        "VIGGO_API_URL": "https://demo-api.viggo.vet",
        "VIGGO_EMAIL": "ai-assistant@yourclinic.com",
        "VIGGO_PASSWORD": "YOUR_PASSWORD"
      }
    }
  }
}

Cursor

~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project)

{
  "mcpServers": {
    "viggo": {
      "url": "https://mcp.viggo.vet/mcp",
      "headers": {
        "X-Viggo-Clinic-Url": "https://demo.viggo.vet",
        "X-Viggo-Api-Url": "https://demo-api.viggo.vet",
        "X-Viggo-Email": "ai-assistant@yourclinic.com",
        "X-Viggo-Password": "YOUR_PASSWORD"
      }
    }
  }
}

VS Code (GitHub Copilot agent mode)

.vscode/mcp.json — VS Code asks for the password once and stores it securely.

{
  "inputs": [
    { "type": "promptString", "id": "viggo-password", "description": "viggoVet password", "password": true }
  ],
  "servers": {
    "viggo": {
      "type": "http",
      "url": "https://mcp.viggo.vet/mcp",
      "headers": {
        "X-Viggo-Clinic-Url": "https://demo.viggo.vet",
        "X-Viggo-Api-Url": "https://demo-api.viggo.vet",
        "X-Viggo-Email": "ai-assistant@yourclinic.com",
        "X-Viggo-Password": "${input:viggo-password}"
      }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "viggo": {
      "serverUrl": "https://mcp.viggo.vet/mcp",
      "headers": {
        "X-Viggo-Clinic-Url": "https://demo.viggo.vet",
        "X-Viggo-Api-Url": "https://demo-api.viggo.vet",
        "X-Viggo-Email": "ai-assistant@yourclinic.com",
        "X-Viggo-Password": "YOUR_PASSWORD"
      }
    }
  }
}

Any other MCP-compatible agent

Add a remote / Streamable HTTP MCP server with:

SettingValue
Nameviggo
URLhttps://mcp.viggo.vet/mcp
HeadersX-Viggo-Clinic-Url, X-Viggo-Api-Url, X-Viggo-Email, X-Viggo-Password (as above)

Most agents accept this generic JSON. If yours only supports local (stdio) servers, use the npx mcp-remote form shown for Claude Desktop.

{
  "mcpServers": {
    "viggo": {
      "url": "https://mcp.viggo.vet/mcp",
      "headers": {
        "X-Viggo-Clinic-Url": "https://demo.viggo.vet",
        "X-Viggo-Api-Url": "https://demo-api.viggo.vet",
        "X-Viggo-Email": "ai-assistant@yourclinic.com",
        "X-Viggo-Password": "YOUR_PASSWORD"
      }
    }
  }
}

Try it

After connecting, ask your agent:

Good to know

Coming soon: API tokens

We're adding API tokens to replace email/password. When they're ready, the switch is painless and optional: