El Protocolo de Contexto de Modelo (MCP) se está convirtiendo rápidamente en la forma estándar para que los modelos de IA interactúen con herramientas y fuentes de datos externas. El SDK de TypeScript de MCP, desarrollado por Anthropic, proporciona a los desarrolladores todas las herramientas que necesitan para construir servidores y clientes MCP en TypeScript.
El SDK maneja los detalles centrales del protocolo: comunicación JSON-RPC, gestión de transportes, definición de herramientas, exposición de recursos y autenticación, permitiéndote centrarte en construir herramientas útiles. Soporta transportes Stdio y SSE, respuestas en streaming, negociación de capacidades e interfaces completamente type-safe.
Componentes Principales
| Componente | Descripción |
|---|---|
| Server | Crea y configura servidores MCP |
| Client | Conecta a servidores MCP e invoca herramientas |
| Transport | Implementaciones de Stdio, SSE y transporte personalizado |
| Types | Definiciones completas de tipos del protocolo MCP |
| StreamableHTTP | Transporte HTTP con soporte SSE |
Arquitectura del Servidor
flowchart LR
A[Servidor MCP] --> B[Instancia Server]
B --> C[Manejadores de Herramientas]
B --> D[Manejadores de Recursos]
B --> E[Manejadores de Prompts]
C --> F[Definiciones de Herramientas]
D --> G[URI de Recursos]
E --> H[Plantillas de Prompts]
B --> I[Capa de Transporte]
I --> J[Transporte Stdio]
I --> K[Transporte SSE]
I --> L[StreamableHTTP]La arquitectura del servidor se organiza alrededor de una instancia Server donde registras manejadores para herramientas, recursos y prompts. La capa de transporte maneja la comunicación de bajo nivel con los clientes, y la clase Server maneja la negociación del protocolo y el enrutamiento de mensajes.
Ejemplo Rápido
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({
name: "example-server",
version: "1.0.0",
}, {
capabilities: { tools: {} },
});
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [{ name: "hello", description: "Say hello", inputSchema: { type: "object", properties: {} } }],
}));
const transport = new StdioServerTransport();
await server.connect(transport);
Comparación de Versiones del SDK
| Característica | v0.5 | v1.0 | v1.2 |
|---|---|---|---|
| Definiciones de herramientas | Básicas | Esquema completo | Esquema tipado |
| Plantillas de recursos | No | Estáticas | Plantillas URI dinámicas |
| Streaming | No | SSE | SSE + StreamableHTTP |
| Raíces | No | No | Listado de directorios |
| Progreso | No | No | Progreso de operaciones |
| Logging | No | No | Logging estructurado |
Para más información, visita el repositorio de GitHub de MCP TypeScript SDK y la documentación de la especificación MCP.
Preguntas Frecuentes
Q: ¿Qué versión de Node.js necesito? A: El SDK requiere Node.js 18 o superior.
Q: ¿Puedo usar el SDK en el navegador? A: Los tipos centrales del protocolo se pueden usar en el navegador, pero los transportes de servidor y cliente son nativos de Node.js.
Q: ¿Cómo maneja el SDK la autenticación? A: El SDK soporta flujos de autenticación OAuth 2.0 y API keys, dependiendo del transporte.
Q: ¿El SDK soporta respuestas en streaming? A: Sí, a través de los transportes SSE y StreamableHTTP para respuestas en tiempo real.
Q: ¿Puedo usar el SDK con Express.js o Fastify? A: Sí, puedes integrar la capa de transporte MCP en frameworks HTTP existentes de Node.js.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!