MCP-YNU FastMCP Server

by ynu
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Used for server configuration with environment variables. It appears in the debugging section where users need to update 'MCP_TRANSPORT_TYPE' in a .env file before starting the server.

  • The server is built on Python (version 3.10 or higher) and uses the FastMCP Python SDK to provide a dynamic MCP server implementation.

MCP-YNU - Servidor FastMCP

Una implementación de servidor MCP dinámico que utiliza FastMCP que carga automáticamente herramientas, recursos y avisos desde los directorios respectivos.

Características

  • Carga dinámica de módulos desde los directorios tools/ , resources/ y prompts/
  • Descubrimiento y registro automático de módulos
  • Configuración sencilla y extensibilidad
  • Sugerencias de tipo para una mejor claridad del código y análisis estático
  • Registro completo para supervisar la actividad del servidor

Actualizaciones recientes

  • Se agregaron sugerencias de tipo en todo el código base
  • Manejo mejorado de instancias de MCP
  • Se agregó funcionalidad de registro
  • Se agregó licencia MIT
  • Documentación actualizada con enlaces de referencia

Estructura del directorio

mcp-ynu/ ├── tools/ # Directory for tool modules │ ├── __init__.py │ ├── example.py ├── resources/ # Directory for resource modules │ ├── __init__.py │ ├── example.py ├── prompts/ # Directory for prompt modules │ ├── __init__.py │ ├── example.py ├── logger.py # Logger implementation ├── main.py # Main implementation ├── mcp_server.py # MCP server implementation ├── README.md # Project documentation ├── LICENSE # MIT License └── pyproject.toml # Project configuration

Uso

  1. Crear módulos en los directorios apropiados
  2. Importar mcp mediante from mcp_server import mcp
  3. Ejecutar el servidor:
python main.py

Módulos de ejemplo

Ejemplo de módulo de herramientas (tools/example.py)

from mcp_server import mcp import httpx @mcp.tool() def calculate_bmi(weight_kg: float, height_m: float) -> float: """Calculate BMI given weight in kg and height in meters""" return weight_kg / (height_m**2) @mcp.tool() async def fetch_weather(city: str) -> str: """Fetch current weather for a city""" async with httpx.AsyncClient() as client: response = await client.get(f"https://api.weather.com/{city}") return response.text

Ejemplo de módulo de recursos (resources/example.py)

from mcp_server import mcp @mcp.resource("config://app") def get_config() -> str: """Static configuration data""" return "App configuration here" @mcp.resource("users://{user_id}/profile") def get_user_profile(user_id: str) -> str: """Dynamic user data""" return f"Profile data for user {user_id}"

Ejemplo de módulo de indicaciones (prompts/example.py)

from mcp_server import mcp from mcp.server.fastmcp.prompts import base @mcp.prompt() def review_code(code: str) -> str: return f"Please review this code:\n\n{code}" @mcp.prompt() def debug_error(error: str) -> list[base.Message]: return [ base.UserMessage("I'm seeing this error:"), base.UserMessage(error), base.AssistantMessage("I'll help debug that. What have you tried so far?"), ]

Depuración

  1. Actualice MCP_TRANSPORT_TYPE en .env , ejecute python main.py para iniciar el servidor mcp
  2. Ejecute npx @modelcontextprotocol/inspector para abrir la inspección .
  3. Elija el tipo de transporte SSE con la URL http://localhost:<mcp_server_port>/sse o elija el tipo de transporte STDIO con el comando python y los argumentos /path/to/main.py

Requisitos

  • Python >= 3.10
  • FastMCP

Enlaces de referencia

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

-
security - not tested
A
license - permissive license
-
quality - not tested

Una implementación de servidor MCP dinámico que carga automáticamente herramientas, recursos y avisos desde sus respectivos directorios, lo que permite una fácil extensión y configuración.

  1. Features
    1. Recent Updates
      1. Directory Structure
        1. Usage
          1. Example Modules
            1. Tools Module Example (tools/example.py)
            2. Resources Module Example (resources/example.py)
            3. Prompts Module Example (prompts/example.py)
          2. Debugging
            1. Requirements
              1. Reference Links
                1. License
                  ID: 0i0w71u7vf