# Opendock MCP Server [![npm version](https://img.shields.io/npm/v/opendock-mcp.svg)](https://www.npmjs.com/package/opendock-mcp) An [MCP](https://modelcontextprotocol.io/) server that connects AI assistants (Claude, etc.) to the legendary [Opendock](https://www.opendock.com/) [Neutron](https://neutron.opendock.com/docs) API. ## Install No clone or build needed — just use `npx`: ```bash npx -y opendock-mcp ``` Or install globally: ```bash npm install -g opendock-mcp ``` ## Tools **69 tools** across 11 categories: | Category | Tools | |----------|-------| | **General** | `get_version`, `get_profile` | | **Warehouses** | `list_warehouses`, `get_warehouse`, `get_warehouse_hours`, `create_warehouse`, `update_warehouse`, `delete_warehouse` | | **Docks** | `list_docks`, `get_dock`, `create_dock`, `update_dock`, `delete_dock`, `sort_docks`, `get_dock_availability` | | **Load Types** | `list_load_types`, `get_load_type`, `get_load_type_availability`, `create_load_type`, `update_load_type`, `delete_load_type` | | **Appointments** | `list_appointments`, `search_appointments`, `get_appointment`, `create_appointment`, `update_appointment`, `delete_appointment`, `get_public_appointment`, `undo_appointment_status`, `create_recurring_appointments`, `delete_recurring_appointments`, `add_appointment_tag`, `remove_appointment_tag` | | **Carriers** | `list_carriers`, `get_carrier`, `create_carrier`, `update_carrier`, `get_booked_carriers` | | **Companies** | `list_companies`, `get_company`, `create_company` | | **Orgs** | `get_org`, `update_org`, `update_favorite_carriers` | | **Audit Log** | `get_audit_log` | | **Settings Metadata** | `get_settings_metadata`, `get_setting_metadata`, `validate_settings_metadata` | | **Metrics** | `get_appointment_volume_by_date`, `get_appointment_volume_by_carrier`, `get_appointment_volume_by_load_type`, `get_appointment_volume_by_time_of_day`, `get_appointment_volume_by_day_of_week`, `get_appointment_avg_duration_by_load_type`, `get_appointment_avg_duration_by_status`, `get_appointment_avg_duration_by_dock_and_status`, `get_appointment_count_for_carrier`, `get_appointment_count_by_status_for_carrier`, `get_appointment_count_for_docks`, `get_reserve_count_for_user`, `get_dock_dwell_time`, `get_carrier_status_percentages`, `list_appointment_metrics`, `export_appointment_metrics_excel`, `get_appointment_status_times`, `get_first_available_appointment`, `get_warehouse_insights`, `get_warehouse_capacity_usage`, `export_yard_data_excel` | ## Prerequisites - Node.js 18+ - An Opendock account with API access ## Authentication The server supports two authentication methods: **Option 1: Username/password** (recommended) — the server handles login and token refresh automatically. ``` OPENDOCK_USERNAME=user@example.com OPENDOCK_PASSWORD=your-password ``` **Option 2: Pre-existing JWT token** ``` OPENDOCK_TOKEN=your-jwt-token ``` Optionally set the API URL: ``` OPENDOCK_API_URL=https://neutron.opendock.com # production (default) ``` ``` OPENDOCK_API_URL=https://neutron.staging.opendock.com # staging ``` ## Usage with Claude Desktop Add to your `claude_desktop_config.json`: ```json { "mcpServers": { "opendock": { "command": "npx", "args": ["-y", "opendock-mcp"], "env": { "OPENDOCK_USERNAME": "user@example.com", "OPENDOCK_PASSWORD": "your-password" } } } } ``` ## Usage with Claude Code ```bash claude mcp add opendock -- npx -y opendock-mcp ``` Set the required environment variables before launching Claude Code, or pass them in the MCP config. ## Testing Use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) to test interactively: ```bash OPENDOCK_USERNAME=user@example.com OPENDOCK_PASSWORD=your-password \ npx @modelcontextprotocol/inspector npx -y opendock-mcp ``` ## Development ```bash git clone https://github.com/Pollamin/opendock-mcp.git cd opendock-mcp npm install npm run build ``` ## License MIT