MCP Python Server — API-оболочка
В этом проекте создается MCP-сервер на Python, который предоставляет инструмент для запросов к внешнему API. Совместимо с Claude Desktop или ChatGPT Desktop, которые поддерживают протокол контекста модели (MCP).
✨ Особенности
Демонстрация инструмента через MCP
HTTP-запрос к внешнему API
Прямая интеграция с Claude/Desktop через claude.json
Related MCP server: MCP Python Toolbox
🚀 Требования
Питон 3.9+
mcp[cli] (устанавливается через pip или uv)
Claude или ChatGPT Desktop (с поддержкой MCP)
📁 Структура проекта
.
├── 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.⚙️ Установка
С пипом
pip install "mcp[cli]"С УФ (рекомендуется)
uv init mcp-api-server
cd mcp-api-server
uv add "mcp[cli]"Установка МКП
mcp install mi_script.pyУстановка с .env
mcp install mi_script.py -f .envУстановка зависимостей
pip install -r requirements.txtПеременные среды
Создайте файл .env в корне проекта для определения необязательных переменных среды:
# .env
API_KEY=mi_api_key
API_URL=https://miapi.com/consulta👷 Быстрый старт (Quickstart)
Создайте сервер 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Запустить локально в режиме разработки
mcp dev server.pyЗапуск в производственном режиме
mcp run server.pyИли с помощью uv:
uv run --with mcp[cli] mcp run server.py🚀 Интеграция с Claude/Desktop
Найдите claude.json в папке конфигурации Claude/Desktop:
В Windows: %APPDATA%\Claude\claude.json
В Linux/macOS: ~/.claude/claude.json
Пример:
{
"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"
]
}
}
}🤖 Использовать в Claude/Desktop
Вы можете задать вопрос модели:
Используйте инструмент consult_api с параметром «ping»
А модель будет использовать ваш MCP-сервер для совершения HTTP-вызовов в реальном времени.
🎁 Бонус: Расширение инструментов
@mcp.tool()
async def traducir(texto: str, lang: str) -> str:
return f"Traducido: {texto} → {lang}"🔍 Ресурсы
Официальная документация MCP: https://docs.mcp.run/
Репозиторий Python SDK: https://github.com/modelcontextprotocol/mcp
✅ Сделано с любовью и httpx 🚀