模型上下文协议服务器

一个演示用的模型上下文协议服务器,提供基本工具和资源,如数字相加和个性化问候生成。

  • by EberDrod
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 EberDrod/MCP-

使用说明

Demo MCP Server

Servidor MCP (Model Context Protocol) de demostración que proporciona herramientas y recursos básicos.

📋 Descripción

Este servidor MCP implementa funcionalidades simples para demostrar el uso de FastMCP:

  • Herramienta: Suma de dos números
  • Recurso: Generación de saludos personalizados

🔧 Requisitos

pip install mcp fastmcp

📦 Instalación

  1. Clona o descarga el repositorio
  2. Instala las dependencias:
    pip install mcp fastmcp
    
  3. Ejecuta el servidor:
    python server.py
    

💻 Código

# server.py
from mcp.server.fastmcp import FastMCP

# Crear servidor MCP
mcp = FastMCP("Demo")

# Agregar herramienta de suma
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

# Agregar recurso de saludo dinámico
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

🚀 Uso

Ejecutar el servidor

# Método 1: Directamente con Python
python server.py

# Método 2: Usando el CLI de MCP
mcp run server.py

Usar las herramientas

Una vez que el servidor está ejecutándose, los clientes MCP pueden:

Herramienta add:

{
  "tool": "add",
  "arguments": {
    "a": 5,
    "b": 3
  }
}

Resultado: 8

Recurso greeting:

URI: greeting://Alice
Resultado: "Hello, Alice!"

URI: greeting://Bob
Resultado: "Hello, Bob!"

📖 ¿Qué hace este código?

1️⃣ Importación y configuración

from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Demo")
  • Importa la clase FastMCP del paquete MCP
  • Crea una instancia del servidor con el nombre "Demo"

2️⃣ Herramienta: add

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b
  • Decorador @mcp.tool(): Registra la función como una herramienta disponible en el servidor MCP
  • Función: Suma dos números enteros y devuelve el resultado
  • Uso: Los clientes MCP pueden llamar a esta herramienta para realizar operaciones matemáticas

3️⃣ Recurso: get_greeting

@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"
  • Decorador @mcp.resource(): Registra un recurso dinámico con patrón URI
  • URI Pattern: greeting://{name} - el {name} es un parámetro variable
  • Función: Genera un saludo personalizado con el nombre proporcionado
  • Ejemplos:
    • greeting://Alice → "Hello, Alice!"
    • greeting://Bob → "Hello, Bob!"
    • greeting://Claude → "Hello, Claude!"

🔑 Conceptos clave

Concepto Descripción
MCP Server Servidor que expone herramientas y recursos a modelos de IA
Tool Función ejecutable que el modelo puede invocar para realizar acciones
Resource Contenido accesible mediante URIs con parámetros dinámicos
FastMCP Framework simplificado para crear servidores MCP en Python

🌟 Características

  • ✅ Implementación simple y clara
  • ✅ Herramientas con tipado fuerte
  • ✅ Recursos dinámicos con parámetros
  • ✅ Compatible con el protocolo MCP estándar

📚 Recursos adicionales

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Haz fork del proyecto
  2. Crea una rama para tu feature
  3. Commit tus cambios
  4. Push a la rama
  5. Abre un Pull Request

📄 Licencia

Este proyecto es de código abierto y está disponible bajo la licencia MIT.


Nota: Este es un servidor de demostración con fines educativos. Para producción, considera agregar manejo de errores, validación de datos y seguridad adicional.