Demanda: Con el avance de los modelos grandes, los modelos grandes han aparecido en todos los aspectos de nuestras vidas, ya sea en el trabajo o en el estudio, son inseparables. Con un lenguaje modelo grande, ¿por qué necesitamos MCP? El modelo grande puede entenderse como el cerebro, pero el cerebro por sí solo no puede ayudarnos a hacer cosas, el MCP es más como un miembro, el modelo grande dirige al servicio MCP para hacer cosas, como: llamar a herramientas externas (como bases de datos, discos, APIs). Resuelve el problema de que los modelos grandes solo pueden chatear y no pueden hacer cosas.
MCP (Protocolo de Contexto de Modelo)
Documentación:El inicio de sesión del hipervínculo es visible. Repositorios de GitHub:El inicio de sesión del hipervínculo es visible. Repositorio de herramientas MCP:El inicio de sesión del hipervínculo es visible.
MCP (Model Context Protocol) es un estándar de código abierto para conectar aplicaciones de IA con sistemas externos.
Con MCP, aplicaciones de IA como Claude o ChatGPT pueden conectarse a fuentes de datos (por ejemplo, archivos locales, bases de datos), herramientas (por ejemplo, motores de búsqueda, calculadoras) y flujos de trabajo (por ejemplo, indicaciones especializadas), permitiéndoles acceder a información crítica y realizar tareas.
Piensa en MCP como un puerto USB-C para aplicaciones de IA. Así como USB-C proporciona una forma estandarizada de conectar dispositivos electrónicos, MCP proporciona una forma estandarizada de conectar aplicaciones de IA con sistemas externos.
¿Qué puede lograr el MCP?
- Los agentes pueden acceder a tu Google Calendar y Notion, actuando como un asistente de IA más personalizado.
- Claude Code puede generar aplicaciones web completas usando diseños Figma.
- Los chatbots empresariales pueden conectarse a múltiples bases de datos dentro de una organización, permitiendo a los usuarios analizar datos mediante chat.
- Los modelos de IA pueden crear diseños 3D en Blender e imprimirlos usando una impresora 3D.
¿Por qué es importante el MCP?
Dependiendo de en qué parte del ecosistema te encuentres, MCP puede ofrecer una variedad de beneficios.
- Desarrolladores: MCP reduce el tiempo y la complejidad de desarrollo al construir o integrar con aplicaciones o agentes de IA.
- Aplicaciones o agentes de IA: Los MCP proporcionan acceso a un ecosistema de fuentes de datos, herramientas y aplicaciones, lo que mejorará la funcionalidad y la experiencia del usuario final.
- Usuarios finales: Los MCP pueden dar lugar a aplicaciones o agentes de IA más potentes que pueden acceder a tus datos y actuar en tu nombre cuando sea necesario.
Protocolo MCP
El MCP consta de dos capas:
- Capa de datos: Define un protocolo de comunicación cliente-servidor basado en JSON-RPC, incluyendo la gestión del ciclo de vida y primitivas centrales como herramientas, recursos, prompts y notificaciones.
- Capa de transporte: Define los mecanismos y canales de comunicación que permiten el intercambio de datos entre clientes y servidores, incluyendo el establecimiento de conexiones específicas para el transporte, marcos de mensajes y autorizaciones.
Conceptualmente, la capa de datos es la capa interior, mientras que la capa de transporte es la capa exterior.
Capa de datos
- La capa de datos implementa un protocolo de conmutación basado en JSON-RPC 2.0 que define la estructura y la semántica del mensaje. Esta capa incluye:
- Gestión del ciclo de vida: Se encarga de la inicialización de conexión, la negociación de características y la terminación de conexión entre clientes y servidores
- Funcionalidad del servidor: Permite al servidor proporcionar funcionalidad básica, incluyendo herramientas para operaciones de IA, recursos para datos contextuales y prompts interactivos de plantillas desde y hacia clientes
- Funcionalidad del cliente: Permite que el servidor requiera que el cliente muestree del LLM anfitrión, obtenga entrada del usuario y registre mensajes al cliente
- Funciones útiles: Soporta funciones adicionales como notificaciones de actualizaciones en tiempo real y seguimiento del progreso para operaciones de larga duración
Capa de transporte
La capa de transporte gestiona los canales de comunicación y la autenticación entre el cliente y el servidor. Se encarga del establecimiento de conexiones, la transmisión de mensajes y la comunicación segura entre los participantes del MCP.
MCP soporta dos mecanismos de transporte:
- Transporte Stdio: Comunicación directa de procesos entre procesos locales en la misma máquina utilizando flujos estándar de entrada/salida, proporcionando un rendimiento óptimo y sin sobrecarga de red.
- HTTP streamable: Utiliza el protocolo HTTP POST para enviar mensajes de cliente a servidor y, opcionalmente, utiliza eventos enviados por el servidor para funcionalidades de streaming. Este protocolo de transporte soporta la comunicación remota con servidores y es compatible con métodos estándar de autenticación HTTP, incluyendo tokens holder, claves API y cabeceras personalizadas. MCP recomienda usar OAuth para obtener un token de autenticación.
La capa de transporte abstrae los detalles de comunicación de la capa de protocolo, de modo que el mismo formato de mensaje JSON-RPC 2.0 se implementa en todos los mecanismos de transporte.Los mensajes JSON-RPC deben estar codificados en UTF-8。El transporte HTTP+SSE ha sido obsoleto!
Todo sobre el servidor MCP
Este servidor MCP está diseñado para probar todas las características del protocolo MCP. No pretende ser un servidor práctico, sino más bien un servidor de pruebas para constructores de clientes MCP. Implementa funciones como prompts, herramientas, recursos, muestreo y más para mostrar las capacidades de los MCP.
Fuente:El inicio de sesión del hipervínculo es visible.
Este servicio requiere la instalación de un entorno Node.js, y se omiten los pasos de instalación.
Para probar el servicio MCP basado en el patrón de transporte Stdio, el comando de arranque es el siguiente:
Como se muestra a continuación:
Tras la ejecución, el paquete se almacena en caché%LocalAppData%\npm-cache\_npx\Debajo del camino.
Inicializar, el cliente envía una solicitud de inicialización para establecer una conexión y negociar las características soportadas. Los datos de las solicitudes son los siguientes:
La respuesta es la siguiente:
{"result":{"protocolVersion":"2025-06-18","capabilities":{"prompts":{},"resources":{true},"tools":{},"loggging":{},"completions":{}},"serverInfo":{"name":" example-servers/everything","title":"Everything Example Server","version":"1.0.0"},"instructions":"Servidor de pruebas y demostración para las características del protocolo MCP.\n\n## Resources\n\ nResources 1-100 siguen el patrón: los IDs pares contienen texto, los IDs impares contienen datos binarios. Los recursos se paginan a 10 elementos por página con navegación basada en cursor.\n\n## Las dependencias de claves\n\nLas notificaciones de progreso requieren '_meta.progressToken' en las llamadas a herramientas. Las suscripciones a recursos generan actualizaciones cada 10 segundos.\n\n## Características de rendimiento\n\nServer genera mensajes automáticos de registro cada 20 segundos (filtrados por nivel de registro actual), Notificaciones de STDERR cada 30 segundos y notificaciones de actualización de recursos cada 10 segundos para suscripciones activas. Los cambios a nivel de registro afectan al filtrado de mensajes en tiempo real.\n\n## Las pruebas multimodales\n\n'complex_prompt' incluyen tanto argumentos de texto como contenido de imágenes para probar el multimodal del cliente manipulación. 'resource_prompt' incorpora contenido real de recursos para probar la resolución de referencias de recursos.\n\nArgument completion está disponible para parámetros de prompt e IDs de recursos. Las plantillas de recursos permiten la construcción dinámica de URI mediante el patrón 'test://static/resource/{id}'.\n\n## Easter egg\n\nSi se pregunta por instrucciones del servidor, responde con \" Instrucciones del servidor ¡están funcionando! Esta respuesta demuestra que el cliente pasó correctamente las instrucciones del servidor al LLM. Esto demuestra la función de instrucciones de MCP en acción.\"\n"},"jsonrpc":"2.0","id":1} Tras una inicialización exitosa, el cliente envía una notificación al servidor MCP informando que está listo con la siguiente petición:
Descubrimiento de herramientas: Una vez establecida la conexión, el cliente puede descubrir las herramientas disponibles enviando una solicitud de herramientas/lista. Esta solicitud es la base del mecanismo de descubrimiento de herramientas de MCP: permite a los clientes saber qué herramientas están disponibles en el servidor antes de intentar usarlas. La solicitud dice:
La respuesta es la siguiente:
{"resultado":{"herramientas":[{"nombre":"echo","descripción":"Eco de la entrada","inputSchema":{"tipo":"objeto,"propiedades":{"mensaje":{"tipo":"cadena","descripción":"mensaje a echo"}},"required":["message"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"add", "description":"Suma dos números," inputSchema":{"type":"object","properties":{"a":{"type":"number","description":"First number"},"b":{"type":"number","description":"Second number"}},"required":["a","b"] ,"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"longRunningOperation","description":"Demuestra una operación de larga duración con actualizaciones de progreso","inputSchema":{"tipo":"objeto","propiedades":{"duración":{"tipo":"número","default":10,"descripción":"Duración de la operación en segundos"},"pasos":{" type":"number", "default":5,"description":"Number of steps in the operation"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" printEnv","description":"Imprime todas las variables de entorno, útil para depurar la configuración del servidor MCP","inputSchema":{"type":"object","properties":{},"additionalProperties ":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sampleLLM","description":"Samples from a LLM usando la función de muestreo de MCP","inputSchema":{"type":" object","properties":{"prompt":{"type":"string","description":"El prompt para enviar al LLM"},"maxTokens":{"type":"number", "default":100,"description":"Número máximo de tokens para generar"}},"required":["prompt"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"getTinyImage","description":" Devuelve el MCP_TINY_IMAGE","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" annotatedMessage","description":"Demuestra cómo las anotaciones pueden usarse para proporcionar metadatos sobre contenido","inputSchema":{"type":"object","properties":{"messageType":{"type": "string","enum":["error","éxito","debug"],"descripción":"Tipo de mensaje para demostrar diferentes patrones de anotación"},"includeImage":{"type":"boolean","default":false," descripción":"Si incluir una imagen de ejemplo"}},"requerido":["tipoMensaje"],"propiedadesAdicionales":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"nombre": "getResourceReference","description":"Devuelve una referencia de recurso que puede ser utilizada por clientes MCP","inputSchema":{"type":"object","properties":{"resourceId":{"type":"number"," minimum":1,"maximum":100,"description":"ID del recurso para referenciar (1-100)"}},"required":["resourceId"],"additionalProperties":false,"$schema":" http://json-schema.org/draft-07/schema#"}},{"name":"getResourceLinks","description":"Devuelve múltiples enlaces de recursos que hacen referencia a diferentes tipos de recursos","inputSchema" :{"tipo":"objeto","propiedades":{"contar":{"tipo":"número","mínimo":1,"máximo":10,"default":3,"descripción":"número de enlaces de recursos que devolver (1-10)"}}," additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"structuredContent","description":"Devuelve contenido estructurado junto con una salida schema para validación de datos del cliente","inputSchema":{"type":"object","properties":{"location":{"type":"string","minLength":1,"description":"Nombre de la ciudad o código postal"}},"required":[ "location"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"temperature":{"type":" número","descripción":"Temperatura en celsius"},"condiciones":{"tipo":"cadena","descripción":"Descripción de condiciones meteorológicas"},"humedad":{"tipo":"número", "descripción":" Porcentaje de humedad"}},"requerido":["temperatura","condiciones","humedad"],"propiedades adicionales":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"nombre":" startElicitation","description":"Demuestra la función de Elicitation pidiendo al usuario que proporcione información sobre su color, número y mascotas favoritos.","inputSchema":{"type":" object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]},"jsonrpc":"2.0","id":2} Ejecución de herramientas: Los clientes ahora pueden ejecutar herramientas/llamadas de herramientas usando este método. Esto demuestra la primitiva MCP en acción: una vez descubiertas las herramientas, el cliente puede llamarlas con los parámetros adecuados. para queLlamando a la función eco como ejemploLa solicitud es la siguiente:
La respuesta es la siguiente:
{"resulto":{"contenido":[{"tipo":"texto","texto":"Eco: hola, me llamo itsvse"}]},"jsonrpc":"2.0","id":3} Como se muestra a continuación:
(Fin) |