Deployed on Cloudflare Workers for edge deployment with Durable Objects for stateful sessions and global low latency access
Uses Google OAuth authentication for secure access control with email-based permissions
Optional integration for error tracking and performance monitoring
SimBrief Flight Planning MCP Server
A Model Context Protocol (MCP) server that provides access to SimBrief flight planning data for Claude Desktop and other MCP clients. Built with TypeScript, deployed on Cloudflare Workers with Google OAuth authentication.
Features
Google OAuth Authentication: Secure access control with email-based permissions
Cloudflare Workers: Edge deployment with Durable Objects for stateful sessions
SSE/HTTP Transports: Dual protocol support for MCP clients
SimBrief API Integration: Complete access to flight planning data
TypeScript: Full type safety and modern async/await patterns
Sentry Integration: Optional error tracking and performance monitoring
Rate Limit Optimization: Optional API key support for improved SimBrief rate limits
Available MCP Tools
Flight Plan Tools
getLatestFlightPlan (Preferred/Default)
Get complete JSON data for your latest flight plan
Includes all details: NOTAMs, weather, crew alerts, MEL/CDL, etc.
Use by default unless user specifically asks for a summary
getFlightPlanById
Get complete JSON data for a specific flight plan by ID
Requires 21-character SimBrief plan ID
getDispatchBriefing
Get formatted dispatch briefing with operational information
Includes: flight info, route, fuel planning, weights, weather
getLatestFlightPlanSummary
Get summary of latest flight plan
Use only if user specifically requests a summary
getFlightPlanByIdSummary
Get summary of specific flight plan by ID
Installation
Prerequisites
Node.js 18 or higher
npm or yarn
Cloudflare account
SimBrief account and User ID
Google OAuth credentials
Setup
Clone the repository:
Install dependencies:
Configure Wrangler:
Edit wrangler.toml to set your KV namespace ID:
Set up secrets:
To generate a COOKIE_ENCRYPTION_KEY:
Configure allowed users:
Edit src/config/allowed-users.ts and add your email username (part before @):
Get your SimBrief User ID:
Log in to SimBrief (https://www.simbrief.com)
Go to Account Settings
Find your Pilot ID (this is your User ID)
Development
Local Development
Building
Deployment
Claude Desktop Integration
Local Development Configuration
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Production Configuration
Replace your-worker.workers.dev with your actual Cloudflare Workers domain.
Usage Examples
Get Latest Flight Plan
Ask Claude:
"Get my latest SimBrief flight plan for user ID 123456"
Get Dispatch Briefing
Ask Claude:
"Get dispatch briefing for my latest flight plan (user ID 123456)"
Get Specific Flight Plan
Ask Claude:
"Get flight plan ABCDEF123456789012345 for user 123456"
Project Structure
Environment Variables
Required Secrets
GOOGLE_CLIENT_ID: Google OAuth client ID
GOOGLE_CLIENT_SECRET: Google OAuth client secret
COOKIE_ENCRYPTION_KEY: 32-character random string for cookie signing
Optional Secrets
SIMBRIEF_API_KEY: SimBrief API key for improved rate limits
SENTRY_DSN: Sentry DSN for error tracking
ENVIRONMENT: Environment name (defaults to "production")
Security Features
OAuth 2.0: Google authentication with email verification
HMAC Cookies: Signed cookies for client approval persistence
Access Control: Email-based user allowlist
Error Sanitization: Sensitive information removed from errors
Edge Security: Cloudflare Workers security features
Monitoring
Console Logs: Available in Cloudflare dashboard
Sentry Integration: Optional error tracking and performance monitoring
Cloudflare Analytics: Built-in request metrics
Troubleshooting
Configuration Issues
Problem: Cannot find SimBrief User ID
Solution:
Log in to SimBrief
Go to Account Settings
Your Pilot ID is your User ID
Authentication Issues
Problem: "Access Denied" error
Solution:
Check that your email username is in
src/config/allowed-users.tsVerify Google OAuth credentials are set correctly
API Errors
Problem: "SimBrief API error" messages
Solution:
Verify User ID is correct
Check if you have recent flight plans on SimBrief
If using API key, ensure it's valid
Differences from Original Python Version
Improvements
TypeScript: Full type safety and better IDE support
Cloudflare Workers: Edge deployment for global low latency
Google OAuth: Secure authentication instead of public access
Better Error Handling: Comprehensive error messages with Sentry integration
Code Organization: Modular structure with clear separation of concerns
Production Ready: Built-in monitoring, logging, and security features
Migration Notes
If you're migrating from the Python version:
User ID is still passed as a parameter (not environment variable)
All tool names follow camelCase convention (getLatestFlightPlan vs get_latest_flight_plan)
Requires Google authentication - set up allowed users
Deployed on Cloudflare Workers instead of running locally
Contributing
Contributions are welcome! Please ensure:
Code follows TypeScript and Prettier formatting
All tools include proper error handling
Documentation is updated for new features
Tests pass (if applicable)
License
MIT
Support
For issues or questions:
Check the troubleshooting section above
Review Cloudflare Workers logs
Check Sentry for error details (if configured)
Credits
Built with:
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables access to SimBrief flight planning data through Claude Desktop with secure Google OAuth authentication. Provides tools to retrieve flight plans, dispatch briefings, NOTAMs, weather data, and other aviation planning information.