MCP Python サーバー - API ラッパー
このプロジェクトでは、外部 API をクエリするためのツールを公開する Python で MCP サーバーを作成します。モデル コンテキスト プロトコル (MCP) をサポートする Claude Desktop または ChatGPT Desktop と互換性があります。
✨ 特徴
MCP経由でツールを公開する
外部 API への HTTP クエリ
claude.json 経由で Claude/Desktop と直接統合
Related MCP server: MCP Python Toolbox
🚀 要件
Python 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付き(推奨)
uv init mcp-api-server
cd mcp-api-server
uv add "mcp[cli]"MCPのインストール
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👷 クイックスタート(クイックスタート)
サーバーを作成する 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/Desktop 構成フォルダで claude.json を見つけます。
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/デスクトップ内で使用
モデルに次の質問をすることができます:
「ping」パラメータを指定したconsult_apiツールを使用する
そして、モデルは 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 で作りました 🚀