cdryampi

MCP Python Server — API Wrapper

Community cdryampi
Updated

MCP de mi perfil

MCP Python Server — API Wrapper

Este proyecto crea un servidor MCP en Python que expone una herramienta para consultar una API externa. Compatible con Claude Desktop o ChatGPT Desktop que soporten el Model Context Protocol (MCP).

✨ Características

  • Exposición de una herramienta (tool) vía MCP
  • Consulta HTTP a una API externa
  • Integración directa con Claude/Desktop vía claude.json

🚀 Requisitos

  • Python 3.9+
  • mcp[cli] (instalable vía pip o uv)
  • Claude o ChatGPT Desktop (con soporte MCP)

📁 Estructura del proyecto

.
├── servidores/profile.py          # Servidor MCP con herramientas para interactuar con mi backend del curriculum.
├── server.py                     # Servidor MCP con herramienta "consultar_api".
├── .env                          # Variables opcionales para auth/API.
├── claude.json                   # Config. MCP para integrarlo directamente.
└── README.md                     # Este documento.

⚙️ Instalación

Con pip

pip install "mcp[cli]"

Con uv (recomendado)

uv init mcp-api-server
cd mcp-api-server
uv add "mcp[cli]"

Instación del MCP

mcp install mi_script.py

Inatalación con .env

mcp install mi_script.py -f .env

Instalación de dependencias

pip install -r requirements.txt

Variables de entorno

Crea un archivo .env en la raíz del proyecto para definir variables de entorno opcionales:

# .env
API_KEY=mi_api_key
API_URL=https://miapi.com/consulta

👷 Rápido Inicio (Quickstart)

Crear el servidor server.py

from mcp.server.fastmcp import FastMCP
import httpx

mcp = FastMCP("API Wrapper")

@mcp.tool(description="Consulta una API externa")
async def consultar_api(param: str) -> str:
    """Consulta una API externa con un parámetro y devuelve la respuesta."""
    async with httpx.AsyncClient() as client:
        r = await client.get(f"https://miapi.com/consulta?param={param}")
        return r.text

Ejecutar localmente en modo dev

mcp dev server.py

Ejecutar en modo producción

mcp run server.py

O con uv:

uv run --with mcp[cli] mcp run server.py

🚀 Integración con Claude/Desktop

Ubica claude.json en la carpeta de configuración de Claude/Desktop:

  • En Windows: %APPDATA%\Claude\claude.json
  • En Linux/macOS: ~/.claude/claude.json

Ejemplo:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/codigo/backend-curso-inkor/proyectos_memes"
      ]
    },
    "Demo": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "C:\\codigo\\backend-curso-inkor\\MCP\\server.py"
      ]
    }
  }
}

🤖 Uso dentro de Claude/Desktop

Puedes pedirle al modelo:

Usa la herramienta consultar_api con el parámetro "ping"

Y el modelo usará tu servidor MCP para hacer una llamada HTTP en tiempo real.

🎁 Bonus: extensión de herramientas

@mcp.tool()
async def traducir(texto: str, lang: str) -> str:
    return f"Traducido: {texto} → {lang}"

🔍 Recursos

✅ Hecho con amor y httpx 🚀

MCP Server · Populars

MCP Server · New

    AIAnytime

    Awesome MCP Servers

    A curated directory of Model Context Protocol (MCP) servers, plus runnable reference implementations in Python.

    Community AIAnytime
    wiresage

    MikroTik MCP

    MCP server for Mikrotik

    Community wiresage
    n24q02m

    email

    IMAP/SMTP email for AI agents -- read, send, organize folders, and manage attachments across multiple accounts, with auto-discovery.

    Community n24q02m
    reticlehq

    reticle

    AI agents can generate code, but still struggle to understand what they build. Reticle brings Jev-style machine-native runtime perception to web & desktop applications.

    Community reticlehq
    tubeagentkit

    YouTube MCP Server: Transcripts, Search, Channels & Playlists

    YouTube MCP server: get YouTube video transcripts, search YouTube, browse channels and playlists from Claude, ChatGPT, Cursor and VS Code. Remote, free tier.

    Community tubeagentkit