{"openapi":"3.0.3","info":{"title":"Gnist Context — BarentsWatch (Maritime)","description":"Live AIS vessel tracking — position, speed, course, and voyage data.\n\n- **MCP endpoint:** `https://context.gnist.ai/mcp/barentswatch/`\n- **Toolkit page:** `/toolkits/barentswatch`\n- **Full API spec:** `/api/openapi.json`\n- **Get an API key:** `/signup`","version":"1.0.0","contact":{"name":"GnistAI","url":"https://gnist.ai"}},"servers":[{"url":"https://context.gnist.ai","description":"Production"}],"paths":{"/rest/barentswatch/get_vessel":{"post":{"tags":["Transport"],"summary":"get_vessel","description":"Get the current position and details for a vessel by MMSI.\n\nArgs:\n    mmsi: 9-digit Maritime Mobile Service Identity number (e.g. 257338000).\n\nReturns:\n    Vessel record with name, flag, type, position, speed, course, destination,\n    and navigational status from live AIS data.","operationId":"barentswatch_get_vessel","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"mmsi":{"description":"9-digit Maritime Mobile Service Identity number (e.g. 257338000).","type":"integer"}},"required":["mmsi"],"type":"object"}}}}}},"/rest/barentswatch/vessels_in_area":{"post":{"tags":["Transport"],"summary":"vessels_in_area","description":"Get all vessels currently in a geographic area.\n\nSpecify the area as a named port OR as an explicit bounding box.\n\nArgs:\n    bbox: Comma-separated bounding box 'lon_min,lat_min,lon_max,lat_max'.\n    port_name: Named port (e.g. 'oslo', 'rotterdam', 'singapore', 'hamburg').\n    lon_min: Bounding box west edge.\n    lat_min: Bounding box south edge.\n    lon_max: Bounding box east edge.\n    lat_max: Bounding box north edge.\n    vessel_type: Filter by type: 'cargo', 'tanker', 'passenger', 'fishing', 'tug'.\n    limit: Maximum vessels to return (1–200, default 50).\n\nReturns:\n    Dictionary with count and vessels list.","operationId":"barentswatch_vessels_in_area","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"bbox":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated bounding box 'lon_min,lat_min,lon_max,lat_max'."},"port_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Named port (e.g. 'oslo', 'rotterdam', 'singapore', 'hamburg')."},"lon_min":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Bounding box west edge."},"lat_min":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Bounding box south edge."},"lon_max":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Bounding box east edge."},"lat_max":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Bounding box north edge."},"vessel_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by type: 'cargo', 'tanker', 'passenger', 'fishing', 'tug'."},"limit":{"default":50,"description":"Maximum vessels to return (1–200, default 50).","type":"integer"}},"type":"object"}}}}}},"/rest/barentswatch/get_vessel_track":{"post":{"tags":["Transport"],"summary":"get_vessel_track","description":"Get the recent position history (track) for a vessel.\n\nArgs:\n    mmsi: 9-digit MMSI number.\n    hours: How many hours of history to return (1–168, default 24).\n\nReturns:\n    Dictionary with mmsi, name, point_count, and points list (lat, lon, speed, course, timestamp).","operationId":"barentswatch_get_vessel_track","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"mmsi":{"description":"9-digit MMSI number.","type":"integer"},"hours":{"default":24,"description":"How many hours of history to return (1–168, default 24).","type":"integer"}},"required":["mmsi"],"type":"object"}}}}}},"/rest/barentswatch/search_vessel":{"post":{"tags":["Transport"],"summary":"search_vessel","description":"Search for vessels by name (partial match).\n\nArgs:\n    name_query: Vessel name or partial name (e.g. 'Stena', 'Nordic Eagle').\n    flag: Optional country filter — ISO 2-letter code (e.g. 'NO', 'NL').\n\nReturns:\n    Dictionary with count and vessels list including MMSI, name, flag, and position.","operationId":"barentswatch_search_vessel","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name_query":{"description":"Vessel name or partial name (e.g. 'Stena', 'Nordic Eagle').","type":"string"},"flag":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional country filter — ISO 2-letter code (e.g. 'NO', 'NL')."}},"required":["name_query"],"type":"object"}}}}}},"/rest/barentswatch/report_feedback":{"post":{"tags":["Transport"],"summary":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","operationId":"barentswatch_report_feedback","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"}}}}}}},"tags":[{"name":"Transport","description":"Data sources: Transport"}],"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"gnist-api-key","description":"API key passed via request header."},"ApiKeyQuery":{"type":"apiKey","in":"query","name":"gnist_api_key","description":"API key passed via query parameter."}}}}