Cox's Bazar AI Itinerary MCP Server
This MCP server provides AI-powered travel planning tools specifically for Cox's Bazar, Bangladesh, combining weather data with intelligent itinerary generation.
Capabilities:
Generate AI-powered travel itineraries - Create detailed multi-day trip plans by specifying trip duration and start date (supports flexible formats like "2025-01-15", "15 Jan 2025", or "today"). The system automatically fetches daily temperature forecasts and generates comprehensive itineraries.
Get weather-based activity suggestions - Receive personalized activity recommendations tailored to specific temperature conditions and time of day (morning, afternoon, or evening).
Access weather forecasts - Retrieve temperature and detailed weather information for informed travel planning.
Use pre-configured travel prompts - Leverage built-in prompts for consistent and streamlined itinerary generation workflows.
Supports authentication provider integration with Auth0, enabling enterprise-grade authentication and authorization for MCP server access.
Provides optional authentication via Clerk OAuth provider, allowing secure access to MCP server tools and resources with configurable authentication settings.
Includes production-ready Docker configuration for containerized deployment, enabling easy deployment and scaling of the MCP server in containerized environments.
Click on "Deploy 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., "@Cox's Bazar AI Itinerary MCP Server generate a 3-day itinerary for Cox's Bazar with beach activities"
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.
Production Ready MCP Boilerplate
Cox's Bazar AI Itinerary MCP Server
A Model Context Protocol (MCP) server that provides travel planning tools and weather information for Cox's Bazar, Bangladesh. Built with FastMCP and managed by uv.
Related MCP server: Travel Planner MCP Server
Features
Weather Resources: Temperature forecasts and detailed weather information
Itinerary Tools: AI-powered travel itinerary generation
Travel Prompts: Pre-configured prompts for travel planning
Auth Support: Optional authentication via Clerk (configurable via env)
Rate Limiting: Built-in rate limiting middleware
Docker Ready: Production Dockerfile included
Linting & Formatting: Ruff + pre-commit hooks (see
_docs/lint-formatting.md)
Requirements
Python 3.13+
uv (package manager)
Node.js 20+ (only for MCP Inspector)
Getting Started
# Install dependencies
uv sync
# Copy environment variables and configure
cp .env.example .env
# (Optional) Install pre-commit git hooks
uv run pre-commit-installCLI Commands
All commands are registered in pyproject.toml and available via uv run:
Command | Description |
| Start the MCP server |
| Start the MCP server in dev mode (auto-reload) |
| Launch the MCP Inspector UI (requires Node.js 20+) |
| Run pre-commit hooks (lint + format) on all files |
| Install pre-commit hooks into the git repo |
Dev Server
Start the MCP server with auto-reload via watchdog:
uv run mcp-server-dev
# or
./scripts/run-mcp-server.shMCP Inspector
Launch the interactive MCP Inspector UI to test tools, resources, and prompts:
uv run mcp-inspector
# or
./scripts/run-inspector.shLinting & Formatting
# Run lint + format via pre-commit
uv run lint
# Or run individually
./scripts/lint.sh # ruff check . --fix
./scripts/format.sh # ruff format .See _docs/lint-formatting.md for full configuration details.
Testing
./scripts/test.shSee _docs/testing.md for test conventions and fixtures.
Docker
docker build -t mcp-server .
docker run mcp-serverThe server runs via uv run mcp-server inside the container. Transport and port are configurable through environment variables (TRANSPORT_NAME, SERVER_PORT, SERVER_HOST).
Project Structure
.
├── src/mcp_server/
│ ├── server.py # Main server entry point
│ ├── mcp_instance.py # FastMCP instance & auth config
│ ├── cli.py # CLI command definitions
│ ├── config/
│ │ ├── auth_provider.py # Auth provider factory
│ │ └── custom_routes.py # Custom HTTP routes
│ ├── handlers/ # MCP handler registrations (auto-discovered)
│ │ ├── tools/
│ │ │ ├── auth_additional.py
│ │ │ └── itinerary.py
│ │ ├── resources/
│ │ │ └── weather.py
│ │ └── prompts/
│ │ └── travel_prompts.py
│ ├── models/
│ │ └── itinerary_models.py # Pydantic models & schemas
│ ├── services/
│ │ └── itenerary_service.py # Business logic
│ ├── lib/
│ │ ├── clerk_auth_provider.py # Clerk OAuth provider
│ │ └── httpx_client.py # Async HTTP client wrapper
│ ├── prompt_templates/
│ │ └── travel.py # Prompt text builders
│ └── utils/
│ ├── elicitation.py
│ ├── get_weather_forecast.py
│ ├── helpers.py
│ └── http.py
├── tests/
│ ├── conftest.py
│ ├── fixtures/
│ │ ├── context.py
│ │ └── weather.py
│ ├── unit/
│ │ ├── test_auth_additional_tools.py
│ │ ├── test_auth_provider.py
│ │ ├── test_elicitation.py
│ │ ├── test_helpers.py
│ │ ├── test_itinerary_service_extra.py
│ │ ├── test_itinerary_tool_handler.py
│ │ ├── test_models.py
│ │ ├── test_server.py
│ │ ├── test_travel_prompts.py
│ │ ├── test_travel_prompts_handler.py
│ │ ├── test_weather_forecast.py
│ │ └── test_weather_resource.py
│ └── integration/
│ ├── test_itinerary_tool.py
│ └── test_weather_api.py
├── scripts/
│ ├── run-mcp-server.sh # Dev server with auto-reload
│ ├── run-inspector.sh # MCP Inspector launcher
│ ├── test.sh # Test runner
│ ├── lint.sh # Ruff lint --fix
│ ├── format.sh # Ruff format
│ └── generate-secrets.sh # Secret key generator
├── _docs/ # Documentation & ADRs
│ ├── adr/
│ │ ├── 001-choose-fastmcp.md
│ │ ├── 002-choose-httpx.md
│ │ └── ADR-template.md
│ ├── auth-provider-auth0.md
│ ├── httpx-client.md
│ ├── lint-formatting.md
│ ├── remote-mcp-connect.md
│ └── testing.md
├── .env.example # Environment variables template
├── .pre-commit-config.yaml # Pre-commit hook config
├── Dockerfile # Production Docker image
├── pyproject.toml # Project config & dependencies
├── ruff.toml # Ruff linter/formatter config
├── pytest.ini # Pytest configuration
├── glama.json # Glama registry config
└── LICENSE # MIT LicenseDocumentation
Document | Description |
Ruff & pre-commit configuration | |
Test setup, fixtures, and conventions | |
Async HTTP client usage | |
Auth provider integration | |
Remote MCP connection guide | |
Architecture Decision Records |
License
MIT
Available Tools
2 toolscox_ai_itineraryA
Full workflow: fetch daily temperatures + generate AI itinerary. Uses the registered MCP prompt 'generate_itinerary' for consistency.
Args: days: Number of days for the trip start_date: Start date (e.g., "2025-01-15", "15 Jan 2025", "today")
Returns: Formatted prompt for AI to generate detailed itinerary
Inputs: days (required), start_date (required). Returns: result
get_activity_suggestionsB
Suggest activities based on temperature and time of day.
Args: temperature: Temperature in Celsius time_of_day: "morning", "afternoon", or "evening"
Returns: List of suggested activities
Inputs: temperature (required), time_of_day.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: 'cox_ai_itinerary' generates a full multi-day itinerary based on dates and duration, while 'get_activity_suggestions' provides activity recommendations based on specific weather and time conditions. There is no overlap in functionality or ambiguity between them.
The naming is mixed: 'cox_ai_itinerary' uses a descriptive noun phrase with underscores, while 'get_activity_suggestions' follows a verb_noun pattern. Although both are readable, they lack a consistent convention, which could confuse agents expecting a uniform style.
With only two tools, the server feels thin for an itinerary planning domain. It lacks essential operations like updating itineraries, fetching historical data, or managing user preferences, which are typical for such a purpose. This minimal set limits functionality and may require agents to work around gaps.
The tool surface is significantly incomplete for itinerary planning. While it covers itinerary generation and activity suggestions, it misses core CRUD operations (e.g., no way to retrieve, modify, or delete itineraries) and lacks integration with user inputs or preferences. This will likely cause agent failures in real-world scenarios.
Maintenance
Related MCP Connectors
Your personal AI travel concierge — flights, hotels, 116M+ POIs, visas, weather & more
Travel tools for AI agents: plan and edit real trips, search stays and tours, import travel videos.
Get current weather for any city and create images from your prompts. Streamline planning, reports…
Travel planner: create, edit, and explore trip itineraries from your Travolp AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA comprehensive travel planning copilot that provides geographic data, weather forecasts, transportation details, currency exchange rates, and contextual content to create personalized travel experiences. Enables users to plan itineraries, check real-time conditions, and gather inspirational content for destinations.2 npmApache 2.0
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI-assisted travel planning with real-time weather forecasts, place discovery, customized itinerary generation based on interests and budget, and travel distance calculations between cities.-
- AlicenseAqualityDmaintenanceEnables comprehensive travel planning by providing tools for flight and accommodation searches, real-time currency exchange, and weather forecasting. It also allows users to calculate estimated trip budgets based on destination, duration, and traveler preferences.514 npm16MIT
- FlicenseNot gradedqualityDmaintenanceAn AI-powered travel planning assistant that fetches live weather, generates packing suggestions, and provides travel recommendations.-