MCP Server - JaiminBrahmbhatt/Global-Entry-Appointment-Scanner GitHub Wiki

MCP Server

The MCP (Model Context Protocol) server lets AI assistants — Claude Desktop, Cursor, and any MCP-compatible client — query Global Entry appointment availability directly.


Install

pipx install global-entry-scanner

Start the server

global-entry-scanner mcp

The server runs on stdio (standard MCP transport) and stays alive until killed.


Connecting to your AI tool

The MCP server works with any MCP-compatible client. The config snippet is the same across all of them — just drop it in the right file, then restart the app.


Claude Desktop

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "global-entry-scanner": {
      "command": "global-entry-scanner",
      "args": ["mcp"]
    }
  }
}

Cursor

~/.cursor/mcp.json

{
  "mcpServers": {
    "global-entry-scanner": {
      "command": "global-entry-scanner",
      "args": ["mcp"]
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "global-entry-scanner": {
      "command": "global-entry-scanner",
      "args": ["mcp"]
    }
  }
}

VS Code (GitHub Copilot)

.vscode/mcp.json in your workspace, or in your user settings:

{
  "mcpServers": {
    "global-entry-scanner": {
      "command": "global-entry-scanner",
      "args": ["mcp"]
    }
  }
}

Gemini CLI

~/.gemini/settings.json

{
  "mcpServers": {
    "global-entry-scanner": {
      "command": "global-entry-scanner",
      "args": ["mcp"]
    }
  }
}

Available tools

get_locations

Returns all Global Entry enrollment centers sorted by state and city.

Returns: list of {id, name, city, state, timezone}

search_locations

Search locations by city, state, or name (case-insensitive substring match).

Parameters:
  query (str) — e.g. "chicago", "texas", "JFK"

Returns: list of {id, name, city, state}

check_appointments

Check available appointment slots for given location IDs.

Parameters:
  location_ids (list[int]) — e.g. [5001, 5140]

Returns: list of {location_id, start, end, active}

start_scan

Start a background polling loop for the given locations.

Parameters:
  location_ids (list[int])

stop_scan

Stop the background scanner.

get_scan_status

Get the current scanner state and latest results.

Returns: {active, location_ids, latest_results}

Example prompts in Claude Desktop

Once the MCP server is connected:

  • "Are there any open Global Entry slots near Chicago or Dallas this month?"
  • "Search for appointment centers in Texas"
  • "Start monitoring Austin and San Antonio for new slots"
  • "What's the status of the scanner?"

Troubleshooting

Server not appearing in Claude Desktop:

  • Verify global-entry-scanner mcp runs without error in your terminal
  • Run which global-entry-scanner to confirm the path, then check it matches what's in your config
  • Fully quit and relaunch Claude Desktop (not just close the window)

ImportError: No module named 'mcp': Reinstall to ensure you have the latest version:

pipx reinstall global-entry-scanner