Skip to content

Connect SeaWeb to your agent

One endpoint, every MCP client: https://api.seaweb.tech/mcp. Web search, page extract, and entity lookup for whatever chat or coding agent you already use. The entity corpus is deepest in Bay Area travel today: real hotel, attraction, and restaurant inventory, searchable (read-only). 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

Add to Claude — opens the custom-connector dialog with the URL filled in (anonymous tier, no key in the link).

  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). Claude.ai custom connectors take a URL only, with no header field, so use the keyless anonymous tier here — keyed connector sign-in over OAuth is not live yet.

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.

Cursor

Add to Cursor — one click installs the URL on the anonymous tier (the link carries no key; paste your Authorization header into mcp.json afterwards for keyed access).

~/.cursor/mcp.json (or .cursor/mcp.json in a project). Manual remote MCP only, not a Marketplace listing.

{
  "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. Like claude.ai, Claude Desktop takes a connector URL only, with no Authorization header field, so it runs on the keyless anonymous tier. For keyed access use Claude Code or another header-capable client.

OpenAI Codex CLI

~/.codex/config.toml: the key stays out of the file, Codex reads it from an env var.

[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.