Skip to main content
Glama
code4mk

Cox's Bazar AI Itinerary MCP Server

Produktionsbereites MCP-Boilerplate

Cox's Bazar KI-Reiseplan MCP-Server

Ein Model Context Protocol (MCP)-Server, der Reiseplanungstools und Wetterinformationen für Cox's Bazar, Bangladesch, bereitstellt. Erstellt mit FastMCP und verwaltet durch uv.

Funktionen

  • Wetter-Ressourcen: Temperaturvorhersagen und detaillierte Wetterinformationen

  • Reiseplan-Tools: KI-gestützte Generierung von Reiseplänen

  • Reise-Prompts: Vorkonfigurierte Prompts für die Reiseplanung

  • Authentifizierungs-Support: Optionale Authentifizierung über Clerk (konfigurierbar über Umgebungsvariablen)

  • Rate Limiting: Integrierte Middleware zur Ratenbegrenzung

  • Docker-bereit: Produktions-Dockerfile enthalten

  • Linting & Formatierung: Ruff + pre-commit Hooks (siehe _docs/lint-formatting.md)

Anforderungen

  • Python 3.13+

  • uv (Paketmanager)

  • Node.js 20+ (nur für MCP Inspector)

Erste Schritte

# Install dependencies
uv sync

# Copy environment variables and configure
cp .env.example .env

# (Optional) Install pre-commit git hooks
uv run pre-commit-install

CLI-Befehle

Alle Befehle sind in pyproject.toml registriert und über uv run verfügbar:

Befehl

Beschreibung

uv run mcp-server

Startet den MCP-Server

uv run mcp-server-dev

Startet den MCP-Server im Entwicklungsmodus (Auto-Reload)

uv run mcp-inspector

Startet die MCP Inspector UI (erfordert Node.js 20+)

uv run lint

Führt pre-commit Hooks (Lint + Format) auf allen Dateien aus

uv run pre-commit-install

Installiert pre-commit Hooks im Git-Repository

Entwicklungsserver

Starten Sie den MCP-Server mit Auto-Reload über watchdog:

uv run mcp-server-dev
# or
./scripts/run-mcp-server.sh

MCP Inspector

Starten Sie die interaktive MCP Inspector UI, um Tools, Ressourcen und Prompts zu testen:

uv run mcp-inspector
# or
./scripts/run-inspector.sh

Linting & Formatierung

# Run lint + format via pre-commit
uv run lint

# Or run individually
./scripts/lint.sh       # ruff check . --fix
./scripts/format.sh     # ruff format .

Siehe _docs/lint-formatting.md für vollständige Konfigurationsdetails.

Testen

./scripts/test.sh

Siehe _docs/testing.md für Testkonventionen und Fixtures.

Docker

docker build -t mcp-server .
docker run mcp-server

Der Server läuft über uv run mcp-server innerhalb des Containers. Transport und Port sind über Umgebungsvariablen konfigurierbar (TRANSPORT_NAME, SERVER_PORT, SERVER_HOST).

Projektstruktur

.
├── 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 License

Dokumentation

Dokument

Beschreibung

_docs/lint-formatting.md

Ruff & pre-commit Konfiguration

_docs/testing.md

Test-Setup, Fixtures und Konventionen

_docs/httpx-client.md

Verwendung des asynchronen HTTP-Clients

_docs/auth-provider-auth0.md

Integration des Auth-Providers

_docs/remote-mcp-connect.md

Leitfaden für Remote-MCP-Verbindungen

_docs/adr/

Architektur-Entscheidungsdokumente (ADRs)

Lizenz

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
B
quality - B tier

Latest Blog Posts

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/code4mk/coxs-bazar-itinerary-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server