Python Examples
БесплатноНе проверенProvides two MCP server examples in Python: a minimal greeting tool and a weather tool that fetches real-time data from Open-Meteo API.
Описание
Provides two MCP server examples in Python: a minimal greeting tool and a weather tool that fetches real-time data from Open-Meteo API.
README
Este proyecto tiene tres paquetes de servidor/cliente MCP en Python:
- basico/mini_mcp.py: ejemplo mínimo para entender la estructura
- basico/main.py: ejemplo de clima usando Open-Meteo, sin seguridad
- seguro/ y github_login/: la misma tool de clima, pero protegida con OAuth 2.1 (Scalekit) — client credentials (M2M) y login real de usuario con GitHub
También incluye index.html, una presentación explicando uv, pipx y MCP con weather-mcp como ejemplo real (arquitectura, seguridad, y cómo exponerlo en la nube). Ábrelo directo en el navegador.
Qué se versiona en este repo
Solo el código y los archivos de configuración de uv, sin artefactos generados:
| Se versiona | No se versiona (ver .gitignore) |
|---|---|
basico/, seguro/, github_login/ (código) |
.venv/, __pycache__/ |
pyproject.toml, .python-version |
*.egg-info, build/, dist/ |
index.html, README.md, .gitignore, .env.template |
.uv-cache/, .claude/, .DS_Store, .env, usuarios_registrados.json |
Ejemplo mínimo
El archivo basico/mini_mcp.py es el más simple del proyecto.
Hace solo esto:
- crea un servidor MCP
- registra una sola tool
- devuelve un saludo
La tool se llama saludar y recibe:
{
"nombre": "Juan Camilo"
}
Respuesta esperada:
{
"result": "Hola, Juan Camilo"
}
Cómo correrlo
Puedes correr el MCP mínimo de cualquiera de estas dos formas:
uv run python basico/mini_mcp.py
o:
uv run mini-mcp
No recibe argumentos por consola. Los parámetros se envían cuando un cliente MCP invoca la tool saludar.
Cómo probarlo localmente
Modo desarrollo con inspector MCP:
uv run mcp dev basico/mini_mcp.py
Prueba directa como función Python:
uv run python -c "from basico.mini_mcp import saludar; print(saludar('Juan Camilo'))"
Configurar en clientes MCP
La opción más estable en este proyecto es registrar este comando:
/Users/sebastianzapata/.local/bin/uv run --project /Users/sebastianzapata/mcp mini-mcp
Después de editar la configuración de cualquier cliente, reinicia la aplicación.
Codex
Archivo:
~/.codex/config.toml
Bloque:
[mcp_servers.mini-mcp]
command = "/Users/sebastianzapata/.local/bin/uv"
args = ["run", "--project", "/Users/sebastianzapata/mcp", "mini-mcp"]
También puedes agregarlo con CLI:
codex mcp add mini-mcp -- /Users/sebastianzapata/.local/bin/uv run --project /Users/sebastianzapata/mcp mini-mcp
Claude Desktop
Archivo:
~/Library/Application Support/Claude/claude_desktop_config.json
Dentro de mcpServers:
{
"mini-mcp": {
"command": "/Users/sebastianzapata/.local/bin/uv",
"args": [
"run",
"--frozen",
"--with",
"mcp[cli]",
"--with-editable",
"/Users/sebastianzapata/mcp",
"mcp",
"run",
"/Users/sebastianzapata/mcp/basico/mini_mcp.py"
]
}
}
También puedes instalarlo con:
uv run mcp install /Users/sebastianzapata/mcp/basico/mini_mcp.py --name mini-mcp --with-editable /Users/sebastianzapata/mcp
Para ensayarlo en Claude, abre un chat nuevo y pide:
Usa la herramienta saludar del MCP mini-mcp con {"nombre":"Juan Camilo"}
Antigravity
Archivo:
~/Library/Application Support/Antigravity/User/settings.json
Dentro de mcpServers:
{
"mini-mcp": {
"command": "/Users/sebastianzapata/.local/bin/uv",
"args": [
"run",
"--project",
"/Users/sebastianzapata/mcp",
"mini-mcp"
]
}
}
Ejemplo de clima
El archivo basico/main.py es un ejemplo más completo.
Expone la tool get_weather, recibe:
{
"latitude": 4.711,
"longitude": -74.0721,
"elevation": 2640
}
Consulta la API de Open-Meteo y devuelve el clima actual.
Ejecutarlo:
uv run python basico/main.py
o:
uv run weather-mcp
Modo desarrollo:
uv run mcp dev basico/main.py
Notas:
- usa Open-Meteo: https://open-meteo.com/en/docs
elevationes opcional
Registrado en Claude Code
claude mcp add weather-mcp -- /Users/sebastianzapata/.local/bin/uv run --project /Users/sebastianzapata/mcp weather-mcp
Registrado en Codex
En ~/.codex/config.toml:
[mcp_servers.weather-mcp]
command = "/Users/sebastianzapata/.local/bin/uv"
args = ["run", "--project", "/Users/sebastianzapata/mcp", "weather-mcp"]
Login de usuario con GitHub (Scalekit)
seguro/secure_mcp.py valida tokens, pero hasta ahora solo los generaban
scripts (client credentials / M2M): ningún humano iniciaba sesión de verdad.
github_login/app.py añade ese flujo: una persona se autentica con su cuenta
de GitHub a través de Scalekit, queda registrada, y el token que recibe
sirve exactamente igual para llamar al MCP seguro.
Requisitos previos en el Dashboard de Scalekit:
- Tener habilitada una conexión social de GitHub.
- Colocar en Allow Callback la URL
http://localhost:8787/callback(o el valor que uses enSCALEKIT_REDIRECT_URI) para que la autenticación funcione y te redireccione donde lo debe hacer.
Ejecutarlo:
cp .env.template .env # si no lo has hecho ya; agrega tus credenciales de Scalekit
uv run github-login
Luego:
- Abre
http://localhost:8787en el navegador. - Haz clic en "Iniciar sesión con GitHub".
- Tras autorizar en GitHub, Scalekit te redirige de vuelta con un token de
usuario y lo registra en
github_login/usuarios_registrados.json(solo local, no se sube a git — ver.gitignore). - Usa ese token como cualquier otro Bearer token contra
secure-mcp:
claude mcp add --transport http secure-mcp \
https://tu-dominio.com/sse \
--header "Authorization: Bearer <token_del_usuario>"
Los dos flujos conviven: weather_client.py e inspector_cloud.py siguen
usando client credentials (un Agente autenticándose a sí mismo), mientras que
github_login/app.py autentica a una persona real. secure_mcp.py no
distingue entre ambos: solo valida que el token sea un JWT vigente firmado
por tu entorno de Scalekit.
Seguridad
basico/main.py ya sigue estas prácticas:
- Sin API key: Open-Meteo es pública, no hay secretos que proteger o filtrar.
- Validación de entrada:
latitude/longitudese validan contra rangos físicos antes de armar la URL. - TLS verificado: usa un
SSLContextcon el bundle decertifi, no desactiva la verificación de certificados. - Timeout explícito: 15s, para que una API externa lenta no cuelgue el servidor.
- Alcance mínimo: una sola tool de solo lectura, sin acceso a filesystem ni shell.
Reglas generales para servidores MCP propios o de terceros:
- Secretos siempre en variables de entorno, nunca hardcodeados en el código.
- Si agregas un
.envcon claves, súmalo a.gitignore(ya cubre.venvy caches). - Cada tool debe hacer una sola cosa bien definida; evita tools genéricas tipo "ejecutar comando" o "leer cualquier archivo".
- Revisa el código de cualquier servidor MCP de terceros antes de instalarlo — corre con tus permisos locales.
- Fija versiones de dependencias (considera generar un
uv.lock).
Publicarlo para que otros lo descarguen
GitHub: el repo ya existe en github.com/sebastianzapatar/mcp2026 (rama main). Para subir el resto de archivos:
git add basico/ seguro/ github_login/ pyproject.toml .python-version index.html README.md .gitignore .env.template
git commit -m "Add weather MCP server and presentation"
git push
PyPI (instalable con pip install weather-mcp o uvx weather-mcp, requiere cuenta en pypi.org y un token de API):
uv build
uv publish
Directorios de MCP: con el repo público en GitHub, puedes enviarlo al registro comunitario de MCP o a directorios como Smithery/Glama.
Установка Python Examples
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/sebastianzapatar/mcp2026FAQ
Python Examples MCP бесплатный?
Да, Python Examples MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Python Examples?
Нет, Python Examples работает без API-ключей и переменных окружения.
Python Examples — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Python Examples в Claude Desktop, Claude Code или Cursor?
Открой Python Examples на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Python Examples with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
