Workshop
Workshop MCP

Dieses Projekt wurde während des Workshops der Veranstaltung The Developers Life Weekend in Umuarama - PR (online) entwickelt.
Über den Workshop
Repository mit Schritt-für-Schritt-Anleitung, Quellcode und Übungen zum Bauen Ihres ersten Servers, der auf dem Model Context Protocol (MCP) basiert.
Während des Workshops wurden vorgestellt:
Die Client-Server-Architektur des MCP-Protokolls;
Die Erstellung und Bereitstellung von Tools (tools) für LLMs;
Die Verwaltung von Ressourcen (resources) und dynamischen Prompts;
Die Verbindung des Servers zu echten KI-Clients.
Das Hauptprojekt wurde mit Python und FastMCP erstellt. Es stellt Tools und Ressourcen zur Abfrage der Wettervorhersage bereit und demonstriert eine Operation, die vor dem Senden von Einladungen eine Bestätigung verlangt.
Related MCP server: Weather MCP Server
Voraussetzungen
Python 3.14 oder höher;
uv installiert;
Eine Anwendung, die in Auth0 konfiguriert ist;
Internetzugang, um
https://wttr.inabzufragen;Ein kompatibler MCP-Client, wie OpenCode oder MCP Inspector.
Das Projekt verwendet uv.lock, um die Versionen der Abhängigkeiten reproduzierbar zu halten.
Installation
Klonen Sie das Repository und wechseln Sie in den Projektordner:
git clone https://github.com/marcelomarkus/tdlw-workshop-mcp.git
cd tdlw-workshop-mcpSynchronisieren Sie die Abhängigkeiten. Der Befehl erstellt oder aktualisiert die virtuelle Umgebung .venv automatisch:
uv syncÜberprüfen Sie die ausgewählte Python-Version:
python --version
uv python findAuth0-Konfiguration
Der Hauptserver verwendet Auth0Provider und benötigt diese Umgebungsvariablen:
Variable | Beschreibung |
| Domäne der Auth0-Instanz |
| Anwendungs-ID |
| Anwendungsgeheimnis |
| Identifikator der in Auth0 konfigurierten API |
Erstellen Sie die lokale Konfigurationsdatei aus der Vorlage:
cp .env_example .envFüllen Sie die .env mit echten Werten aus:
AUTH_DOMAIN=https://seu-dominio.auth0.com
CLIENT_ID=seu-client-id
CLIENT_SECRET=seu-client-secret
AUDIENCE=https://sua-apiDie Datei .env wird von Python nicht automatisch geladen. Exportieren Sie die Variablen, bevor Sie den Server starten:
set -a
source .env
set +aOder definieren Sie sie direkt im selben Aufruf:
AUTH_DOMAIN="https://seu-dominio.auth0.com" \
CLIENT_ID="seu-client-id" \
CLIENT_SECRET="seu-client-secret" \
AUDIENCE="https://sua-api" \
uv run main.pyTeilen Sie niemals das CLIENT_SECRET und nehmen Sie es nicht in Commits auf.
Server ausführen
Mit den geladenen Variablen starten Sie den Hauptserver:
uv run main.pyDer MCP-Endpunkt ist verfügbar unter:
http://127.0.0.1:8000/mcpHalten Sie den Prozess am Laufen, während der MCP-Client verbunden ist. Zum Beenden drücken Sie Ctrl+C.
MCP Inspector ausführen
Der MCP Inspector bietet eine Weboberfläche zum Testen von Tools, Ressourcen und Prompts.
Starten Sie in einem ersten Terminal den Server:
set -a
source .env
set +a
uv run main.pyFühren Sie in einem anderen Terminal den Inspector aus:
npx @modelcontextprotocol/inspectorÖffnen Sie http://localhost:6274 im Browser und konfigurieren Sie:
Feld | Wert |
Transport |
|
URL |
|
Klicken Sie auf Connect und testen Sie die verfügbaren Tools und Ressourcen. Die Auth0-Variablen müssen in der Umgebung des Serverprozesses vorhanden sein.
Verbinden über OpenCode
Die Datei opencode.json verweist bereits auf den lokalen Endpunkt:
{
"mcp": {
"Workshop": {
"type": "remote",
"url": "http://127.0.0.1:8000/mcp"
}
}
}Öffnen Sie OpenCode in diesem Projekt, während der Server läuft.
Verfügbare Funktionen
Tools
Tempo(cidade): fragt das aktuelle Wetter einer Stadt ab;Temperatura(cidade): fragt die aktuelle Temperatur einer Stadt ab;Enviar_Convites(quantidade): fordert eine Bestätigung an und simuliert das Senden, wobei der Fortschritt jedes Elements gemeldet wird.
Die Wetterabfragen verwenden wttr.in/<cidade>?format=%t.
Ressourcen
workshop://oque-o-mcp-nao-e: Einführungstext über MCP;previsao://{cidade}: Vorhersage für eine in der URI angegebene Stadt.
Prompt
exemplo_prompt(pergunta): leitet die Auswahl zwischen den Wetter-Tools an.
Projektstruktur
.
├── main.py # Servidor MCP principal
├── mcp_com_api.py # Servidor MCP gerado a partir da API Petstore
├── exercises/ # Exercícios progressivos do workshop
│ ├── 01-mcp-server/
│ ├── 02-resources/
│ ├── 03-tools/
│ ├── 04-prompts/
│ ├── 05-Context/
│ ├── 06-auth/
│ └── 07-mcp-api/
├── slide/ # Material de apoio
│ └── TDLW-Umuarama.pdf
├── opencode.json # Configuração do OpenCode
├── pyproject.toml # Metadados e dependências
├── uv.lock # Versões resolvidas
└── .env_example # Modelo das variáveis do Auth0Entwicklung
Sie können das Projekt über den Debug-Modus von VS Code oder über uv ausführen:
uv run main.pyUm die Syntax der Module zu überprüfen:
python -m compileall main.py mcp_com_api.py exercisesFehlerbehebung
ModuleNotFoundError
Führen Sie uv sync aus und starten Sie das Programm mit uv run main.py, um das globale Python zu vermeiden, wenn die Abhängigkeiten nur in .venv installiert sind.
Authentifizierungsfehler
Überprüfen Sie, ob die vier Auth0-Variablen in derselben Umgebung wie der Server exportiert wurden und ob die Domäne das erwartete Protokoll enthält.
Fehler bei der Wetterabfrage
Testen Sie die Konnektivität mit:
curl "https://wttr.in/Sao%20Paulo?format=%t"Port 8000 belegt
Geben Sie den Port frei oder passen Sie den Port im Server und in der opencode.json an, wobei Sie auf beiden Seiten dieselbe Adresse beibehalten.
Dokumentation und Referenzen
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.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to fetch current weather conditions and forecasts for any city using the Open-Meteo API. Provides temperature, precipitation, and hourly forecast data through natural language queries.
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to retrieve 24-hour weather forecasts and city information through natural language queries using city names or coordinates.MIT
- FlicenseAqualityDmaintenanceProvides weather information and time utilities for AI assistants, enabling them to fetch current weather for any city and get the current timestamp.246
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to fetch real-time weather data for any city and perform basic arithmetic operations like addition.MIT
Related MCP Connectors
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
Real-world data for agents: air quality, geocoding, quakes, holidays, web search
US weather, alerts, earthquakes and elevation for AI agents, from NWS/NOAA and USGS. No API keys.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/marcelomarkus/tdlw-workshop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server