loading…
Search for a command to run...
loading…
Provides weather forecast tools via the Model Context Protocol, enabling users to query weather data for destinations through natural language.
Provides weather forecast tools via the Model Context Protocol, enabling users to query weather data for destinations through natural language.
Workshop Guide - Komplett workshop dokumentasjon
Presentasjon - Norsk workshop presentasjon
MCP Travel Weather Server er en forenklet implementasjon for workshop LAB02. Dette er en læringsorientert versjon som demonstrerer Model Context Protocol (MCP) grunnleggende konsepter med fokus på værdata.
Arkitektur: Systemet består av tre hovedkomponenter:
┌─────────────────┐ HTTP ┌─────────────────┐ HTTP ┌─────────────────┐
│ Web Service │ ─────────► │ Agent Service │ ─────────► │ MCP Server │
│ (Port 8080) │ │ (Port 8001) │ │ (Port 8000) │
│ │ │ │ │ │
│ • Frontend UI │ │ • AI Logic │ │ • Weather Tool │
│ • User Interface│ │ • OpenAI GPT-4o │ │ • OpenWeatherMap│
│ • Examples │ │ • Conversation │ │ • Geocoding │
│ • Health Checks │ │ • Memory │ │ • Health Checks │
└─────────────────┘ └─────────────────┘ └─────────────────┘
services/mcp-server/)MCP-compliant HTTP API - Port 8000
GET /tools - MCP tools manifest (MCP spec 2025-06-18)POST /weather - Værprognose (returnerer MCP result format)GET /health - HelsesjekkMCP Tools Manifest: Serveren følger MCP spesifikasjonen og eksponerer verktøy med:
name: Unikt verktøynavntitle: Human-readable visningsnavndescription: FunksjonalitetsbeskrivelseinputSchema: JSON Schema for input valideringoutputSchema: JSON Schema for output valideringendpoint: HTTP endpoint for verktøyetmethod: HTTP metode (GET, POST, etc.)MCP Result Format: Alle verktøy returnerer MCP-compliant responses:
{
"content": [{"type": "text", "text": "..."}],
"structuredContent": {...},
"isError": false
}
API som brukes:
services/agent/)AI-orkestrering med MCP-compliant tool handling - Port 8001
POST /query - Prosesser brukerforespørslerGET /health - Helsesjekk med agent statusservices/web/)Frontend web-grensesnitt - Port 8080
GET / - HovedsidePOST /query - Proxy til agent serviceGET /examples - Foreslåtte spørsmålGET /health - HelsesjekkDenne LAB02-versjonen er designet for å lære:
Du trenger API nøkler for:
# Klon repository
git clone <repository-url>
cd agent
# Sett opp miljøvariabler
cp .env.example .env
# Rediger .env med dine API nøkler
# Start alle tjenester
docker-compose up -d
# Sjekk status
docker-compose ps
Tilgang:
# Kreves for LAB02
OPENAI_API_KEY=your_openai_api_key_here
OPENWEATHER_API_KEY=your_openweather_api_key_here
# Service URLs (auto-konfigurert i Docker)
MCP_SERVER_URL=http://mcp-server:8000
/tools endpointcontent, structuredContent og isErrorWorkshop LAB02 demonstrerer MCP (Model Context Protocol) arkitektur med dynamisk tools discovery:
Web Service → AI Agent ←→ MCP Server → External APIs
↓ (dynamic) ↓ (/tools)
Tools Loading Tools Manifest
Arkitektur komponenter:
MCP Protocol Implementation:
For detaljert workshop guide, se WORKSHOP.md
pip install -r requirements.txt
Systemet er optimalisert for Docker deployment med alle komponenter i separate containere.
# Klon repository og naviger til mappen
cd travel-weather-mcp
# Kopier og rediger miljøvariabler
cp .env.example .env
# Rediger .env med dine API nøkler:
# - OPENAI_API_KEY (kreves)
# - OPENWEATHER_API_KEY (kreves)
# Bygg og start alle tjenester
docker-compose up -d
# Sjekk at alt kjører
docker-compose ps
Åpne http://localhost:8080 i nettleseren for enkel bruk.
# REST API kall
curl -X POST http://localhost:8080/query \
-H "Content-Type: application/json" \
-d '{"query": "Hvordan er været i Oslo i dag?"}'
# Bygg og start alle tjenester
docker-compose up -d
# Eller start kun spesifikke tjenester
docker-compose up -d mcp-server travel-agent
# Se logfiler
docker-compose logs -f mcp-server
docker-compose logs -f travel-agent
# Stopp tjenester
docker-compose down
Gå til http://localhost:8080 i nettleseren din for et enkelt brukergrensesnitt.
# Se alle kjørende tjenester
docker-compose ps
# Restart spesifikk tjeneste
docker-compose restart mcp-server
# Se logfiler live
docker-compose logs -f travel-agent
# Hent tools manifest fra MCP server
curl http://localhost:8000/tools
# Direkte verktøy kall til MCP server
curl -X POST http://localhost:8000/weather \
-H "Content-Type: application/json" \
-d '{"location": "Oslo, Norway"}'
# Via Agent med dynamisk tools loading (anbefalt)
curl -X POST http://localhost:8001/query \
-H "Content-Type: application/json" \
-d '{"query": "Hvordan er været i Oslo?"}'
"API key not configured"
.env"Location not found"
Containerproblemer
docker-compose down && docker-compose up -ddocker-compose logs# Se agent logfiler
docker-compose logs -f travel-agent
# Se MCP server logfiler
docker-compose logs -f mcp-server
# Se alle logfiler
docker-compose logs -f
LAB02 er designet for utvidelse. Deltagere kan legge til:
services/mcp-server/app.py/tools manifestMerk: Agent laster verktøy dynamisk, så ingen hardkoding kreves i agent koden.
Se WORKSHOP.md for detaljerte instruksjoner
# Test health endpoints
curl http://localhost:8000/health
curl http://localhost:8001/health
curl http://localhost:8080/health
# Test MCP tools manifest
curl http://localhost:8000/tools
# Test alle MCP verktøy
curl -X POST http://localhost:8000/weather \
-H "Content-Type: application/json" \
-d '{"location": "Oslo, Norway"}'
curl -X POST http://localhost:8000/ping \
-H "Content-Type: application/json" \
-d '{"message": "test"}'
curl http://localhost:8000/status
MIT License - se LICENSE fil for detaljer.
For workshop deltagere:
Bidrag er velkomne! Vennligst:
Run in your terminal:
claude mcp add mcp-travel-weather-server -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.