Cómo crear tu propio servidor MCP en Python (en 10 minutos)
Crea, prueba y conecta un servidor MCP mínimo con el SDK oficial de Python y MCPServer, con consejos de diseño.
Elige un SDK
Hay SDK oficiales para TypeScript, Python, C#, Java, Kotlin, Go y otros lenguajes. Esta guía usa el SDK oficial de Python 2.x, que requiere Python 3.11 o posterior. Las versiones 1.x usaban FastMCP de mcp.server.fastmcp en lugar de MCPServer.
1. Prepara el proyecto
uv init demo && cd demo
uv add "mcp[cli]"2. Escribe el servidor
Una herramienta es una función normal con anotaciones de tipo y un docstring; el SDK los convierte en el esquema y la descripción de la herramienta. mcp.run() inicia un servidor stdio.
# server.py
from mcp.server import MCPServer
mcp = MCPServer("demo")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
if __name__ == "__main__":
mcp.run()3. Pruébalo
Ábrelo en el MCP Inspector para llamar a tus herramientas desde una interfaz web:
uv run mcp dev server.py4. Conéctalo a un cliente
Usa una ruta absoluta. Claude Desktop y Cursor aceptan esta entrada; en Claude Code ejecuta claude mcp add demo -- uv run --with "mcp[cli]" mcp run /ruta/absoluta/server.py.
{
"mcpServers": {
"demo": {
"command": "uv",
"args": ["run", "--with", "mcp[cli]", "mcp", "run", "/absolute/path/to/server.py"]
}
}
}Consejos de diseño
- Usa nombres y descripciones claros: el modelo elige las herramientas leyéndolos.
- Valida las entradas y devuelve textos breves y útiles.
- No expongas acciones destructivas sin confirmación.
- Añade el tema
mcp-servera tu repositorio de GitHub y Socketlist lo incluirá automáticamente.