IMVASA

Connect your assistant

Step by step setup for Claude, ChatGPT, Cursor, VS Code, Windsurf, Zed and your own code.

Which setup should I use?

AssistantFree tools onlyAll tools
Claude.ai and Claude DesktopConnector with https://seoaudit.imvasa.dev/mcpConnector with https://seoaudit.imvasa.dev/mcp/account, then sign in
ChatGPTConnector with https://seoaudit.imvasa.dev/mcp, no authenticationConnector with https://seoaudit.imvasa.dev/mcp/account and OAuth
Claude Code, Cursor, VS Code, Windsurf, ZedServer address with no headerServer address plus your API key header
Your own codeAny MCP client, no headerAny MCP client plus your API key header

To use every tool, create an API key first in Dashboard, API Access, unless you are using Claude.ai, Claude Desktop or ChatGPT, where you sign in instead.

Claude

Claude.ai and Claude Desktop, by signing in

  1. Open Settings, Connectors and choose Add custom connector.
  2. Paste https://seoaudit.imvasa.dev/mcp/account and press Connect.
  3. Claude opens IMVASA. Sign in and click Allow.
  4. In a chat, make sure the IMVASA connector is switched on, then ask it to audit a page.

For the free tools without signing in, paste https://seoaudit.imvasa.dev/mcp instead.

Claude Code

Run this in your terminal, with your key:

bash
claude mcp add --transport http imvasa https://seoaudit.imvasa.dev/mcp \
  --header "Authorization: Bearer imv_your_api_key"

Leave out the --header line to use only the free tools.

Claude Desktop with an API key instead

If you prefer a key to signing in, edit Claude Desktop's config file (Settings, Developer, Edit Config). This uses the mcp-remote bridge, which needs Node.js installed:

json
{
  "mcpServers": {
    "imvasa": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://seoaudit.imvasa.dev/mcp", "--header", "Authorization:${IMVASA_AUTH}"],
      "env": { "IMVASA_AUTH": "Bearer imv_your_api_key" }
    }
  }
}

The file lives at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows and ~/.config/Claude/claude_desktop_config.json on Linux. Restart Claude Desktop after saving.

ChatGPT

  1. Open Settings, Apps and Connectors, turn on developer mode, and choose Create.
  2. Paste https://seoaudit.imvasa.dev/mcp/account as the server address and choose OAuth for authentication.
  3. Save. ChatGPT opens IMVASA: sign in and click Allow.
  4. In a new chat, enable the connector and ask it to audit a page.

For the free tools without signing in, use https://seoaudit.imvasa.dev/mcp with no authentication.

Note: ChatGPT's connector menus change from time to time and custom connectors may depend on your plan. If the names above do not match, look for "connectors" or "developer mode" in ChatGPT's settings.

Cursor

Add this to ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in one project:

json
{
  "mcpServers": {
    "imvasa": {
      "url": "https://seoaudit.imvasa.dev/mcp",
      "headers": { "Authorization": "Bearer imv_your_api_key" }
    }
  }
}

Leave out headers for the free tools only.

VS Code

VS Code has built-in MCP support. Add this to .vscode/mcp.json in your project:

json
{
  "servers": {
    "imvasa": {
      "type": "http",
      "url": "https://seoaudit.imvasa.dev/mcp",
      "headers": { "Authorization": "Bearer imv_your_api_key" }
    }
  }
}

Extensions with their own MCP settings, such as Cline, take the same address and header.

Windsurf

Add this to ~/.codeium/windsurf/mcp_config.json:

json
{
  "mcpServers": {
    "imvasa": {
      "serverUrl": "https://seoaudit.imvasa.dev/mcp",
      "headers": { "Authorization": "Bearer imv_your_api_key" }
    }
  }
}

Zed

In Zed's settings.json, add:

json
{
  "context_servers": {
    "imvasa": {
      "url": "https://seoaudit.imvasa.dev/mcp",
      "headers": { "Authorization": "Bearer imv_your_api_key" }
    }
  }
}

Your own code

Any MCP client that supports the Streamable HTTP transport can connect. With the official TypeScript SDK:

typescript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

// The header is only needed for tools that use your account.
const transport = new StreamableHTTPClientTransport(new URL("https://seoaudit.imvasa.dev/mcp"), {
  requestInit: { headers: { Authorization: "Bearer imv_your_api_key" } },
});
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);

const result = await client.callTool({
  name: "find_issues",
  arguments: { url: "https://example.com" },
});

With the official Python SDK:

python
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

HEADERS = {"Authorization": "Bearer imv_your_api_key"}

async def main():
    async with streamablehttp_client("https://seoaudit.imvasa.dev/mcp", headers=HEADERS) as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            result = await session.call_tool("find_issues", arguments={"url": "https://example.com"})
            print(result.content[0].text)

asyncio.run(main())

Any other client

Point the client at https://seoaudit.imvasa.dev/mcp. It must send these headers, which real MCP clients do automatically:

text
Accept: application/json, text/event-stream
Content-Type: application/json
Authorization: Bearer imv_your_api_key   (only for tools that use your account)

The protocol reference has raw request examples.

Check that it works

Ask your assistant: "Use IMVASA to list the countries you support." It should call list_locations and answer with a list. Then try "What is my IMVASA credit balance?" to confirm your account is connected. If something fails, see Troubleshooting.