A Model Context Protocol (MCP) server that lets Claude take live snapshots from Georgia Aquarium webcams, analyze what it sees, and log observations over time.
| ID | Camera | View |
|---|---|---|
ocean-voyager |
Ocean Voyager (whale sharks, mantas) | Underwater |
beluga-whale |
Beluga Whale Cam | Underwater |
african-penguin |
African Penguin Cam | Above-water habitat |
sharks-predators |
Sharks! Predators of the Deep | Underwater |
| Tool | Description |
|---|---|
take_snapshot |
Capture a live frame from the active camera + return species info |
switch_camera |
Switch to a different camera |
list_cameras |
List all cameras and which is active |
make_observation |
Save a timestamped note with optional tags |
get_observations |
Retrieve past observations |
Requirements: Node.js 18+
npm install
npx playwright install chromium
npm run buildclaude mcp add aquarium-cameras node "/path/to/dist/index.js"Add to claude_desktop_config.json:
{
"mcpServers": {
"aquarium-cameras": {
"command": "node",
"args": ["/path/to/dist/index.js"]
}
}
}Add entries to src/cameras.ts — each camera needs an id, name, url, description, and info block. Optional fields:
bufferMs— extra load time for slow streams (default: 5000ms)clickToPlay— settrueif the stream needs a click to start
Then npm run build and restart Claude.
npm run dev # run with tsx (no build step)
npm run build # compile TypeScript
npm start # run compiled output