MCP Sampling Demo
Demonstrates how to implement sampling in MCP servers, allowing tools to request LLM content generation from the client without requiring external API integrations or credentials.
README
🎯 Cómo funciona la funcionalidad Sampling en Model Context Protocol
¡Hola developer 👋🏻! En este repositorio tienes un ejemplo de cómo funciona el Sampling en Model Context Protocol. Para que puedas entender perfectamente cómo puedes usarlo y qué te aporta dentro de tus MCP Servers. Si quieres verlo en acción, aquí tienes el vídeo relacionado con este repo:
🤔 ¿Cómo funciona el Sampling en MCP?
El sampling en MCP es una característica poderosa que permite que las tools/prompts de tus servidores MCP soliciten al cliente que genere contenido usando sus propios modelos LLM. En lugar de que el servidor MCP tenga que integrar directamente con proveedores de IA, delega esta responsabilidad al cliente.
🔄 Flujo completo del Sampling
El proceso de sampling en MCP sigue este flujo:
- El cliente llama a una herramienta MCP (ej.
summarize) con parámetros específicos. - La herramienta utiliza
extra.sendRequestpara enviar una solicitud de tiposampling/createMessageal cliente. - El cliente procesa la solicitud de sampling usando sus modelos LLM disponibles.
- El cliente devuelve el contenido generado a la herramienta MCP.
- La herramienta procesa la respuesta y la devuelve al cliente original.
⭐ Ventajas del Sampling
- Sin dependencias externas: El servidor MCP no necesita API keys ni integraciones con proveedores de IA.
- Flexibilidad del cliente: El cliente puede elegir el modelo LLM más adecuado para cada tarea.
- Eficiencia: Evita llamadas redundantes a APIs externas.
- Seguridad: Las credenciales y configuraciones del LLM permanecen en el cliente.
💡 Ejemplo práctico
const result = await extra.sendRequest(
{
method: "sampling/createMessage",
params: {
messages: [
{
role: "user",
content: {
type: "text",
text: `Please summarize the following text concisely:\n\n${text}`,
},
},
],
maxTokens: 500,
modelPreferences: {
costPriority: 0.5, // Balance costo y rendimiento
intelligencePriority: 0.5, // Balance inteligencia y rendimiento
speedPriority: 0.5, // Priorizar velocidad
},
},
},
CreateMessageResultSchema
);
🔧 Implementación correcta del Sampling
A diferencia de implementaciones incorrectas que podrían causar dependencias circulares, la implementación correcta utiliza el método sampling/createMessage a través de extra.sendRequest. Es decir, no se debe intentar enviar un mensaje directamente desde la instancia del servidor, sino que debe enviarse desde la sesión del cliente MCP. Para ello puedes usar el parámetro extra que recibe la tool.
async function (
{ text },
extra: RequestHandlerExtra<any, any>
): Promise<CallToolResult> {
🚀 Uso
🔧 Iniciar el servidor
npm install
npm run build
npm start
🛠️ Configuración para Visual Studio Code
Este repositorio ya incluye la configuración necesaria para que puedas configurar este MCP Server en Visual Studio Code. La misma se encuentra en el archivo .vscode/mcp.json. Por lo que una vez arrancado el proyecto solo tienes que hacer clic en Start dentro del archivo mcp.json 🤓.
📺 ¡Suscríbete a mi canal de YouTube!
Si te ha resultado útil este contenido y quieres aprender más sobre Model Context Protocol, inteligencia artificial y desarrollo, ¡no olvides suscribirte a mi canal de YouTube! Así estarás al tanto de nuevos tutoriales, ejemplos prácticos y novedades del mundo tech.
👉 Suscríbete aquí y activa la campanita para no perderte nada.
¡Nos vemos 👋🏻!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.