Connect SeaWeb to your agent

One endpoint, every MCP client: https://api.seaweb.tech/mcp. Real Bay Area travel inventory — hotels, attractions, and restaurants — searchable (read-only) from whatever chat or coding agent you already use. SeaWeb does not book or take payment.

Step 1 (everyone): sign in at seaweb.tech/signin and generate an API key (sw_…) from the dashboard. Keys are shown once and can be revoked anytime.

Step 2: pick your client below.

Claude (claude.ai / desktop app)

Claude's custom-connector form takes a URL only — no header field — so connect on the anonymous tier, which needs no key:

  1. Open Settings → Connectors → Add custom connector.
  2. Paste this as the server URL:
https://api.seaweb.tech/mcp
  1. Leave the OAuth fields under Advanced settings empty and click Add.
  2. Enable SeaWeb in the search-and-tools menu of a new chat, then ask for a hotel.

What the anonymous tier gives you: every read tool — search_web, search, get_entity, get_details and the rest — at 20 calls per 60 seconds. Writes (remember, …) need a key and are refused. Booking tools are retired — SeaWeb does not book or take payment.

Putting a key on it. Keyed access needs an Authorization: Bearer sw_… header (Claude Code, Cursor, VS Code, Windsurf — see below). The old path-key URL form was retired on 2026-07-30 (HTTP 400). SEAWEB_OAUTH is dark — do not claim keyed Claude.ai private-connector auth. Details: repo docs/marketplace/claude-install.md.

ChatGPT (developer mode)

ChatGPT loads custom MCP connectors behind developer mode:

  1. Enable developer mode: Settings → Apps & Connectors → Advanced → Developer mode (workspace admins: Permissions & Roles → Connected Data).
  2. Add a connector and give it the same URL, with authentication set to None:
https://api.seaweb.tech/mcp

ChatGPT cannot present a custom API key to an MCP server, so this is the anonymous tier: all read tools, 20 calls per 60 seconds, writes refused. Availability of developer-mode connectors varies by ChatGPT plan.

Claude Code

As a plugin (key stays in your shell env, updates tracked):

export SEAWEB_API_KEY=sw_your-key-here
claude plugin marketplace add aritroBh/seaweb-plugin
claude plugin install seaweb@seaweb

Or as a plain MCP server:

claude mcp add --transport http seaweb https://api.seaweb.tech/mcp \
  --header "Authorization: Bearer sw_your-key-here"

On claude.ai the same marketplace works under Settings → Plugins → Browse → Add marketplace: https://github.com/aritroBh/seaweb-plugin.

Also in the official MCP registry as tech.seaweb/seaweb. Details: repo docs/marketplace/claude-install.md.

Cursor

~/.cursor/mcp.json (or .cursor/mcp.json in a project). Manual remote MCP only — not a Marketplace listing. Details: repo docs/marketplace/cursor-install.md.

{
  "mcpServers": {
    "SeaWeb": {
      "url": "https://api.seaweb.tech/mcp",
      "headers": { "Authorization": "Bearer sw_your-key-here" }
    }
  }
}

Claude Desktop

Don't edit claude_desktop_config.json for this — that file is local-command servers only, and remote url entries are not supported there. Use a custom connector instead, exactly like claude.ai:

  1. Settings → Connectors → Add custom connector.
  2. Paste the URL (no key, no header needed):
https://api.seaweb.tech/mcp

Connectors sync with your claude.ai account, so if you added SeaWeb on the web it's already here. Same anonymous tier as claude.ai — OAuth keyed private-connector auth is not live (SEAWEB_OAUTH dark). For keyed access use Claude Code or another header-capable client. Details: repo docs/marketplace/claude-install.md.

OpenAI Codex CLI

~/.codex/config.toml — the key stays out of the file, Codex reads it from an env var. Details: repo docs/marketplace/codex-install.md.

[mcp_servers.seaweb]
url = "https://api.seaweb.tech/mcp"
bearer_token_env_var = "SEAWEB_API_KEY"
export SEAWEB_API_KEY=sw_your-key-here

OpenCode

opencode.json (project root or ~/.config/opencode/). Set "oauth": false — OpenCode tries OAuth discovery on remote servers before headers unless you turn it off:

{
  "mcp": {
    "seaweb": {
      "type": "remote",
      "url": "https://api.seaweb.tech/mcp",
      "enabled": true,
      "oauth": false,
      "headers": { "Authorization": "Bearer sw_your-key-here" }
    }
  }
}

VS Code

.vscode/mcp.json:

{
  "servers": {
    "SeaWeb": {
      "type": "http",
      "url": "https://api.seaweb.tech/mcp",
      "headers": { "Authorization": "Bearer sw_your-key-here" }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "SeaWeb": {
      "serverUrl": "https://api.seaweb.tech/mcp",
      "headers": { "Authorization": "Bearer sw_your-key-here" }
    }
  }
}

After connecting

Ask your agent things like (each verified against production on 2026-07-28 — real, non-empty matches today):

"Find a boutique hotel in SoMa San Francisco under $300"
"What events are happening at Chase Center?"
"Show details for Hotel Zetta San Francisco"

The agent calls read tools — search, get_entity, get_details, and the rest — against live, publisher-verified inventory; see the full tool reference. Booking tools (request_booking, check_availability, …) were retired 2026-08-04. Where a venue's own site takes reservations, results may carry that venue's reservation URL for the user to follow — returning a link is search, not booking. An invented id returns entity not found instead of a card.

No config at all? The dashboard playground runs the same engine in your browser — sign in and search.