Skip to content
Code and Bytes

Code and Bytes

Cómo Implementar Bearer Token en FastMCP Server con transporte streamable-http usando Python

Posted on 13 August, 20257 October, 2025 By jaime

En este tutorial, te mostraré cómo implementar un sistema de autenticación basado en Bearer Token en un servidor FastMCP utilizando el transporte streamable-http. Estaremos trabajando con FastMCP v2, un framework potente para construir servidores MCP (Model Context Protocol).

Requisitos previos

Antes de comenzar, asegúrate de tener instalado:

  • FastMCP v2

Vamos a crear un archivo main.py con el siguiente contenido:

""" Demo Bearer Token """
from fastmcp import FastMCP
from fastmcp.server.auth.providers.jwt import StaticTokenVerifier

verifier = StaticTokenVerifier(
    tokens={
        "dev-guest-token": {
            "client_id": "guest-user",
            "scopes": ["read:data"]
        }
    },
    required_scopes=["read:data"]
)

mcp = FastMCP(name="Bearer Token Example", auth=verifier)


@mcp.tool()
def echo(message: str) -> str:
    """Echoes the input message."""
    return f"Server echoes: {message}"


if __name__ == "__main__":
    mcp.run(transport="http")

Ejecución del servidor

Para iniciar el servidor, ejecuta el siguiente comando:

fastmcp run main.py --transport http

Prueba con MCP Inspector

Para probar nuestro servidor, podemos usar el MCP Inspector con estos pasos:

  1. Ejecuta:
fastmcp dev main.py
  1. En la interfaz del Inspector:
  • Transport Type: Selecciona “Streamable HTTP”
  • URL: Ingresa http://127.0.0.1:8000/mcp
  • Authenticacion > Bearer Token: Ingresa dev-guest-token
  • Presiona “Connect”

Salida esperada en terminal:

🌐 Opening browser...
New StreamableHttp connection request
Query parameters: {"url":"http://127.0.0.1:8000/mcp","transportType":"streamable-http"}
Created StreamableHttp server transport
Created StreamableHttp client transport
Client <-> Proxy  sessionId: f565e6a7-779e-4bea-b966-e7fb79746986
Proxy  <-> Server sessionId: edba962e09af47e48b99e992990cf25b
Received POST message for sessionId f565e6a7-779e-4bea-b966-e7fb79746986
Received GET message for sessionId f565e6a7-779e-4bea-b966-e7fb7974698    

Si proporcionas un token incorrecto, verás el siguiente error en la terminal:

🌐 Opening browser...
New StreamableHttp connection request
Query parameters: {"url":"http://127.0.0.1:8000/mcp","transportType":"streamable-http"}
Created StreamableHttp server transport
Created StreamableHttp client transport
Client <-> Proxy  sessionId: bb6c81d4-913f-411f-9e4c-409f42c9206e
Error from MCP server: Error: Error POSTing to endpoint (HTTP 401): {"error": "invalid_token", "error_description": "Authentication required"}
    at StreamableHTTPClientTransport.send (file:///home/jaime/.npm/_npx/5a9d879542beca3a/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js:284:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Este método es útil para proteger tus endpoints y controlar el acceso a tus herramientas MCP.

Para más información sobre verificación de tokens en FastMCP, visita la documentación oficial.

Python

Post navigation

Previous post
Next post

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Buscar

Categorias

  • AI
  • Asterisk
  • Bases de datos
  • DevOps
  • Git
  • HTML
  • Laravel
  • Linux
  • MCP Server
  • Mikrotik
  • MySQL
  • n8n
  • Personal
  • PHP
  • Python
  • Software recomendado
  • Tips
  • VSCode
  • vTiger
  • Windows
  • Wordpress
©2026 Code and Bytes | WordPress Theme by SuperbThemes