Skip to main content
Glama
README.md5.08 kB
# DriveBC MCP Server An MCP (Model Context Protocol) server that provides AI assistants with access to real-time BC highway conditions, road closures, and weather alerts via the Open511-DriveBC API. ## Features - **Highway Conditions**: Get current conditions for specific BC highways - **Regional Overview**: View all events within a BC region - **Road Closures**: List active closures and restrictions - **Weather Alerts**: Access weather-related incidents and warnings - **Smart Caching**: 5-minute cache to reduce API load while keeping data fresh - **Type-Safe**: Full TypeScript implementation with proper types ## Installation ```bash npm install npm run build ``` ## Usage ### Running the Server ```bash npm start ``` The server runs on stdio transport and is designed to be used with MCP-compatible AI clients like Claude Desktop. ### Development Mode ```bash npm run dev ``` ## Configuration ### Claude Desktop Add the following to your Claude Desktop configuration file: **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Linux**: `~/.config/Claude/claude_desktop_config.json` ```json { "mcpServers": { "drivebc": { "command": "node", "args": ["/path/to/drivebc_mcp/build/index.js"] } } } ``` After adding the configuration, restart Claude Desktop. ### LM Studio LM Studio supports MCP as of version 0.3.17. Add the following to your LM Studio MCP configuration: **macOS/Linux**: `~/.lmstudio/mcp.json` **Windows**: `%USERPROFILE%/.lmstudio/mcp.json` ```json { "mcpServers": { "drivebc": { "command": "node", "args": ["/path/to/drivebc_mcp/build/index.js"] } } } ``` After adding the configuration, restart LM Studio. ## Available Tools ### 1. get_highway_conditions Get current conditions, incidents, and closures for a specific BC highway. **Parameters:** - `highway` (required): Highway number or name (e.g., "Highway 1", "99", "1") - `severity` (optional): Filter by severity level (MINOR, MODERATE, MAJOR, UNKNOWN) - `includeScheduled` (optional): Include scheduled construction (default: true) **Example:** ``` Check Highway 1 conditions ``` ### 2. get_regional_conditions Get road conditions and events for a specific BC region. **Parameters:** - `region` (required): BC region name (Lower Mainland, Vancouver Island, Thompson Okanagan, Kootenay Rockies, Cariboo, Northern BC) - `eventType` (optional): Filter by event type (CONSTRUCTION, INCIDENT, WEATHER_CONDITION, ROAD_CONDITION, SPECIAL_EVENT) - `limit` (optional): Maximum events to return (default: 50, max: 500) **Example:** ``` Show road conditions in the Lower Mainland ``` ### 3. get_road_closures List all current road closures and major restrictions. **Parameters:** - `region` (optional): Filter by BC region - `highway` (optional): Filter by specific highway - `severityMinimum` (optional): Minimum severity to include (MINOR, MODERATE, MAJOR; default: MODERATE) **Example:** ``` Are there any road closures on Highway 1? ``` ### 4. get_weather_alerts Get active weather alerts and road condition warnings. **Parameters:** - `region` (optional): Filter by BC region - `alertType` (optional): Type of alert (WEATHER_CONDITION, ROAD_CONDITION, INCIDENT) - `severityMinimum` (optional): Minimum severity level (default: MINOR) **Example:** ``` Show weather alerts for Northern BC ``` ## Data Source This server uses the [Open511-DriveBC API](https://api.open511.gov.bc.ca) which provides: - Real-time road events and incidents - Road closures and construction updates - Weather conditions and alerts - Travel advisories The API is public and requires no authentication. ## Caching The server implements a 5-minute cache to: - Reduce load on the DriveBC API - Improve response times - Maintain reasonably fresh data Cache hits and misses are logged to stderr for monitoring. ## Project Structure ``` drivebc_mcp/ ├── src/ │ ├── index.ts # MCP server entry point │ ├── tools/ │ │ ├── highway-conditions.ts # Highway-specific queries │ │ ├── regional-conditions.ts # Regional overview │ │ ├── road-closures.ts # Closures and restrictions │ │ └── weather-alerts.ts # Weather and incidents │ ├── api/ │ │ ├── client.ts # API client with caching │ │ ├── types.ts # TypeScript type definitions │ │ └── constants.ts # BC regions and highways │ ├── cache/ │ │ └── manager.ts # Cache implementation │ └── utils/ │ └── formatters.ts # Response formatting ├── package.json ├── tsconfig.json └── README.md ``` ## Development ### Type Checking ```bash npm run type-check ``` ### Building ```bash npm run build ``` ## BC Regions The server supports the following BC regions: - Lower Mainland - Vancouver Island - Thompson Okanagan - Kootenay Rockies - Cariboo - Northern BC ## License MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/infil00p/DriveBC_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server