Integrations
Enables generation of media content using Flux's AI image generation capabilities
Provides tools for generating Git commit messages based on code changes
Built as a TypeScript framework for constructing MCP servers with client session management
FastMCP
FastMCP es un marco de TypeScript para crear servidores MCP con gestión de sesiones de cliente.
[!NOTA]
Para una implementación de Python, consulte FastMCP Python .
Características principales
FastMCP ofrece las siguientes características:
- Herramientas sencillas, recursos y definiciones rápidas
- Función de autenticación
- Gestión de sesiones
- Compatibilidad con contenido de imágenes
- Explotación florestal
- Manejo de errores
- SSE (Eventos enviados por el servidor)
- CORS (habilitado por defecto)
- Notificaciones de progreso
- Eventos de servidor tipificados
- Completado automático de argumentos de solicitud
- Solicitud de muestreo
- Ping SSE automático
- Gestión de rutas
- CLI para pruebas y depuración
Cómo instalar
Inicio rápido
[!NOTA]
Hay muchos casos de uso reales para FastMCP. Por favor vea el estudio de caso .
¡Ahora tienes un servidor MCP en funcionamiento!
Puedes probarlo en la terminal con:
SSE
Los eventos enviados por el servidor (SSE) son un mecanismo mediante el cual un servidor envía actualizaciones en tiempo real a un cliente a través de una conexión HTTPS. En MCP, SSE se utiliza principalmente para habilitar la comunicación remota de MCP, lo que permite acceder a un MCP alojado en una máquina remota y transmitir actualizaciones a través de la red.
También puedes ejecutar el servidor con soporte SSE:
Esto iniciará un servidor que escuchará conexiones SSE en http://localhost:8080/sse
.
Luego puedes conectarte al servidor usando SSEClientTransport
:
Conceptos básicos
herramienta
En las herramientas MCP, los servidores exponen funciones ejecutables que los clientes y LLM pueden llamar para realizar acciones.
FastMCP utiliza la especificación del esquema estándar para definir los parámetros de la herramienta. Esto le permite utilizar su biblioteca de validación de esquema favorita que implementa la especificación, como Zod, ArkType o Valibot.
Ejemplo de Zod:
Ejemplo de ArkType:
Ejemplo de Valibot:
Valibot requiere una dependencia de pares: @valibot/to-json-schema.
Devolviendo una cadena
execute
puede devolver una cadena:
Esto es equivalente a:
Devolver una lista
Si desea devolver una lista de mensajes, puede devolver un objeto con content
:
Devolviendo las imágenes
Para crear un objeto de contenido de imagen, utilice imageContent
:
La función imageContent
acepta las siguientes opciones:
url
: URL de la imagenpath
: Ruta al archivo de imagenbuffer
: Datos de imagen como buffer
Se debe especificar exactamente uno de los siguientes: url
, path
o buffer
.
El ejemplo anterior es equivalente a:
Explotación florestal
Las herramientas pueden registrar mensajes al cliente utilizando el log
del objeto de contexto:
log
tiene los siguientes métodos:
debug(message: string, data?: SerializableValue)
error(message: string, data?: SerializableValue)
info(message: string, data?: SerializableValue)
warn(message: string, data?: SerializableValue)
error
Los errores que deben mostrarse al usuario deben generarse como instancias UserError
:
Notificaciones de progreso
Una herramienta puede informar su progreso llamando reportProgress
en el objeto de contexto:
recurso
Un recurso representa cualquier tipo de datos que un servidor MCP desea poner a disposición de sus clientes. Esto incluye:
- Contenido del archivo
- Capturas de pantalla e imágenes
- Archivos de registro
- Y muchos más
Cada recurso se identifica mediante un URI único y puede contener texto o datos binarios.
[!NOTA]
load
puede devolver múltiples recursos. Esto se puede utilizar, por ejemplo, para devolver una lista de los archivos de un directorio cuando se lee dicho directorio.Copy
También puedes devolver contenido binario con load
:
Plantillas de recursos
También puedes definir plantillas de recursos:
Completado automático de argumentos de plantillas de recursos
Para habilitar el autocompletado de los argumentos de la plantilla de recursos, proporcionamos una función complete
:
inmediato
Prompts permite que el servidor defina plantillas de prompts y flujos de trabajo reutilizables que los clientes pueden presentar fácilmente a sus usuarios y LLM. Esto proporciona una forma poderosa de estandarizar y compartir interacciones LLM comunes.
Completado automático de argumentos de solicitud
El mensaje puede proporcionar autocompletado de argumentos:
Completado automático de argumentos de solicitud mediante enum
Si proporciona una matriz enum
para los argumentos, el servidor completará automáticamente los argumentos.
proceso de dar un título
FastMCP le permite authenticate
clientes mediante una función personalizada:
Ahora puedes acceder a los datos de la sesión autenticada en tus herramientas:
sesión
session
es una instancia de FastMCPSession
y describe una sesión de cliente activa.
Para permitir la comunicación uno a uno entre el cliente y el servidor, se asigna una nueva instancia de servidor para cada conexión de cliente.
Eventos de servidor tipificados
Puedes escuchar los eventos emitidos por el servidor utilizando el método on
:
FastMCPSession
FastMCPSession
representa una sesión de cliente y proporciona métodos para interactuar con el cliente.
Consulte el ejemplo de sesión para saber cómo obtener FastMCPSession
.
requestSampling
requestSampling
realiza una solicitud de muestreo y devuelve la respuesta.
clientCapabilities
clientCapabilities
contiene las capacidades del cliente.
loggingLevel
loggingLevel
describe el nivel de registro establecido por el cliente.
roots
roots
contiene las rutas establecidas por el cliente.
server
server
contiene la instancia del servidor MCP asociado con la sesión.
Eventos de sesión tipificados
Puedes escuchar los eventos emitidos por la sesión utilizando on
:
Ejecución del servidor
Prueba con MCP-CLI
La forma más rápida de probar y depurar su servidor es usar fastmcp dev
:
Esto ejecutará un servidor para probar y depurar su servidor MCP en la terminal usando mcp-cli
.
Inspeccionar con MCP Inspector
Otra opción es inspeccionar su servidor en la interfaz web utilizando el MCP Inspector
:
Preguntas frecuentes
¿Cómo utilizar con Claude Desktop?
Siga la guía https://modelcontextprotocol.io/quickstart/user y agregue la siguiente configuración:
Estudio de caso
[!NOTA]
Si ha desarrollado un servidor utilizando FastMCP, envíe una solicitud de colaboración y preséntela como caso de estudio.
- apinetwork/piapi-mcp-server - Genera medios usando Midjourney/Flux/Kling/LumaLabs/Udio/Chrip/Trellis
- domdomegg/computer-use-mcp - Controlar una computadora
- LiterallyBlah/Dradis-MCP - Gestión de proyectos y vulnerabilidades con Dradis
- Meeting-Baas/meeting-mcp : crea bots de reuniones, busca actas de reuniones y administra datos de grabación.
- drumnation/unsplash-smart-mcp-server : permite que un agente de IA busque, recomiende y distribuya sin problemas fotos profesionales desde Unsplash.
- ssmanji89/halopsa-workflows-mcp - Integración de flujos de trabajo de HaloPSA con asistentes de IA
- aiamblichus/mcp-chat-adapter : proporciona una interfaz limpia para que LLM utilice la finalización del chat.
Expresiones de gratitud
- FastMCP está inspirado en una implementación de Python de Jonathan Lowin .
- Partes del código base fueron adoptadas de LiteMCP .
- Parte del código base se adoptó de nuestro experimento con SSE sobre el protocolo Model Context .
This server cannot be installed
Un marco de TypeScript para crear servidores MCP con capacidades de gestión de sesiones de cliente, definición de herramientas de soporte, autenticación, contenido de imágenes, registro y manejo de errores.