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

    anysiteio

    AnySite MCP Server

    A Model Context Protocol (MCP) server that provides comprehensive access to LinkedIn data and functionalities using the AnySite API, enabling not only data retrieval but also robust management of user accounts.

    Community anysiteio
    kontext-dev

    browser-use-mcp-server

    Browse the web, directly from Cursor etc.

    Community kontext-dev
    WordPress

    MCP Adapter

    An MCP adapter that bridges the Abilities API to the Model Context Protocol, enabling MCP clients to discover and invoke WordPress plugin, theme, and core abilities programmatically.

    Community WordPress
    HzaCode

    OneCite

    📚 An intelligent toolkit to automatically parse, complete, and format academic references, with Model Context Protocol (MCP) support.

    Community HzaCode
    cexll

    Codex MCP Tool

    Codex Mcp Server

    Community cexll