boston-harbor-ferries
Provides a standalone MCP server that wraps FreeBSD's leave command for setting reminders and checking active reminders.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@boston-harbor-ferriesTrack the Crispus Attucks ferry"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Boston Harbor Ferries
APRS-based Boston Harbor commuter ferry tracker with MCP server support.
Tightly scoped to track Seaport Ferry vessels operating in Boston Harbor.
Data provided by aprs.fi - https://aprs.fi
Features
Track all 4 Seaport Ferry vessels in real-time
In-memory caching with 120-second TTL (respects aprs.fi API terms)
Rate limiting: 10 requests/minute (configurable)
Rich CLI with beautiful terminal output
MCP server for integration with Claude Code and other AI assistants
Run with
uvx(no installation required)Live position tracking and historical data export
Related MCP server: marta-mcp
Tracked Vessels
Seaport Ferry - North Station Route
PHILLIS WHEATLEY (MMSI: 368227350)
SAMUEL WHITTEMORE (MMSI: 368227370)
COMMONWEALTH (MMSI: 368351390)
Route: LoveJoy Wharf (North Station) β Fan Pier (Seaport) β Pier 10 Travel time: ~30 minutes
Seaport Ferry - East Boston Route
CRISPUS ATTUCKS (MMSI: 368157410) - π Live Position
Route: Lewis Mall Wharf (East Boston) β Fan Pier (Seaport) Travel time: ~10 minutes
π’ Latest Position: 42.351318Β°N, 71.038918Β°W (Course: 339Β°) π View 24-Day Activity Analysis - Speed patterns, hourly heatmaps, route visualization π Live Position Data - Real-time JSON feed
Historical Data: 4,777 positions over 24 days (Sep 15 - Oct 10) β’ Avg speed: 12.4kn β’ Operating hours: 05:00-19:00
π Activity Heatmap (Last 2 Weeks)
Activity by hour - darker blocks indicate more position reports:
00 04 08 12 16 20
β β β β β β
09-29 β βββββββ ββββββββ
09-30 β βββββββ βββββββ
10-01 β ββββββ βββββ
10-02 β βββββββ βββββ
10-03 β βββββββββββββββ
10-06 β ββββββββββββββββ
10-07 β βββββββ ββββββ
10-08 β ββββββ ββββββ
10-09 β ββββββββββββββββ
10-10 β βββββββLegend: β Low β Medium β High β Peak Pattern: Clear AM (06-10) and PM (15-18) commute peaks
π’ Speed Distribution
Speed (knots) β Frequency
βββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββ
2- 4 β ββββββ 188
4- 6 β βββββββ 202
6- 8 β βββββ 148
8-10 β ββββββ 176
10-12 β ββββββββ 229
12-14 β ββββββββββββ 349
14-16 β βββββββββββββββββββββββ 673
16-18 β ββββββββββββββββββββββββββββββββββββββββ 1123
18-20 β βββ 93
20-22 β 21Peak Speed: 16-18 knots (75% of time cruising >10kn)
πΊοΈ Route Map
Boston Harbor
ββββββββββββββββββββββββ
β β
Lewis Mall Wharf Fan Pier
(East Boston) (Seaport)
β β
β ~10 min β
β 8-12 kn β
βββββββββ¬βββββββββ
β
CRISPUS ATTUCKS
(90 passengers)Operating: 05:00-19:00 daily β’ Peak: 06-10, 15-18
Installation
Run with uvx (recommended)
# Set your API key
export APRS_API_KEY="your-key-from-aprs.fi"
# Run commands directly
uvx --from . harbor-ferry list-vessels
uvx --from . harbor-ferry track 368157410
uvx --from . harbor-ferry track-allInstall in development mode
cd boston_harbor_ferries
pip install -e .Configuration
Get your free API key from https://aprs.fi (requires registration).
Set the API key via environment variable:
export APRS_API_KEY="your-api-key-here"Or create a .env file:
APRS_API_KEY=your-api-key-here
APRS_CACHE_TTL_SECONDS=120
APRS_MAX_REQUESTS_PER_MINUTE=10CLI Usage
# List all known ferries
harbor-ferry list-vessels
# Show routes and schedules
harbor-ferry routes
# Track a specific ferry
harbor-ferry track 368157410
# Track all ferries
harbor-ferry track-all
# Force fresh data (bypass cache)
harbor-ferry track 368157410 --no-cache
# Cache management
harbor-ferry cache-info
harbor-ferry clear-cacheMCP Server Usage
The MCP server allows AI assistants like Claude Code to track ferries in real-time.
Quick Start
# Test the MCP server
gmake test-mcp
# Expected output:
# β MCP server responding to JSON-RPC
# Tools: list_ferries, track_ferry, track_all_ferries, get_ferry_routes, clear_cacheAvailable MCP Tools
list_ferries- List all known Boston Harbor ferries with detailsget_ferry_routes- Get route information and schedulestrack_ferry- Track specific ferry by MMSI numbertrack_all_ferries- Get all ferry positions at onceclear_cache- Force fresh data (bypasses 2-minute cache)
Claude Code/Desktop Integration
See docs/CLAUDE_CODE_INTEGRATION.md for complete integration guide.
Adding to Claude Code
From within this repository directory:
# Add the MCP server to Claude Code
claude mcp add-json boston-harbor-ferries \
'{"command":"uv","args":["run","python","-m","boston_harbor_ferries.mcp_server"],"env":{"APRS_API_KEY":"'"${APRS_API_KEY}"'"}}'
# Verify it's connected
claude mcp list
# Should show: boston-harbor-ferries - β Connected
# View available tools
claude mcp get boston-harbor-ferriesClaude Desktop Configuration
For global access in all Claude Desktop conversations:
Linux: ~/.config/Claude/claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"boston-harbor-ferries": {
"command": "uv",
"args": [
"run",
"--directory",
"/full/path/to/boston-harbor-ferries",
"python",
"-m",
"boston_harbor_ferries.mcp_server"
],
"env": {
"APRS_API_KEY": "your-api-key-here"
}
}
}
}Example Questions for Claude
Once configured, you can ask Claude:
"Where is CRISPUS ATTUCKS right now?"
"Show me all active ferries"
"What are the ferry routes in Boston Harbor?"
"Clear the cache and check ferry positions again"
Understanding Position Data
Operating Hours: Ferries transmit APRS positions during service hours (05:00-19:00 daily)
Peak times: 06:00-10:00 (morning) and 15:00-18:00 (evening)
Off-hours: No position data when ferries are not operating
Data age: Position reports update every 1-2 minutes when active
If you see old position data (>1 hour), the ferry is likely docked between runs or service has ended for the day. Check during peak commute hours for live tracking.
All 6 MCP tools tested and working β
(see gmake test)
Bonus: FreeBSD Leave Reminder MCP Server
This repository also includes a standalone MCP server that wraps FreeBSD's leave(1) command for setting reminders.
See LEAVE_MCP.md for complete documentation.
Quick test:
gmake test-leave-mcpTools available:
set_reminder- Set a reminder for a specific time or durationcheck_reminders- View active reminderscancel_reminders- Cancel all reminders
Example: "Remind me to leave in 30 minutes" β Uses +0030 format
Python API
from boston_harbor_ferries import APRSClient, VESSELS
# Initialize client (loads API key from env)
with APRSClient() as client:
# Track specific ferry
position = client.get_vessel_position("368157410")
if position:
print(f"{position.vessel.name} at {position.latitude}, {position.longitude}")
# Track all ferries
positions = client.get_all_ferries()
for pos in positions:
print(f"{pos.vessel.name}: {pos.age_seconds:.0f}s old")API Terms Compliance
This tool complies with aprs.fi API terms of service:
β Credits aprs.fi as data source in all output
β Provides link back to aprs.fi
β Free to use for all users
β Includes User-Agent header with app name/version
β Each user uses their own API key
β Built-in rate limiting (10 req/min default)
β Intelligent caching (2 min TTL default)
β Only queries when actively needed (no background polling)
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Type checking
mypy boston_harbor_ferriesLicense
MIT
Acknowledgments
Data provided by aprs.fi - Hessu's excellent APRS infrastructure service.
Ferry service operated by Seaport Ferry.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/aygp-dr/boston-harbor-ferries'
If you have feedback or need assistance with the MCP directory API, please join our Discord server