Token导航 LogoToken导航TokenDH.com
As A Proxy logo
运维云端stdio官方级别未说明来源级核验

As A Proxy

MCP Server

FastMCP提供的MCP服务器代理功能,允许通过HTTP从任何MCP客户端访问,集中管理认证和依赖,适用于共享或远程环境。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude远程服务Claude DesktopClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

0GiS0

提供方

0GiS0

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

🔌 MCP Server Proxy con FastMCP

📝 Artículo relacionado: 🔌 MCP Server como proxy de otro MCP Server

![Python 3.10+](https://www.python.org/downloads/) ![FastMCP](https://gofastmcp.com/)

🤔 ¿Qué problema resuelve?

Muchos MCP Servers tienen limitaciones que dificultan su uso en entornos compartidos o remotos:

  • ❌ Funcionan via stdio → Solo pueden ejecutarse localmente
  • ❌ Requieren credenciales (PAT, API Keys, tokens) → Cada cliente debe configurarlas
  • ❌ Necesitan dependencias específicas → Hay que instalarlas en cada máquina
  • ❌ No pueden exponerse como servicio remoto

Este proyecto demuestra cómo crear un proxy con FastMCP que resuelve estos problemas:

  • ✅ Ejecutar el servidor en una máquina centralizada
  • ✅ Acceder desde cualquier cliente MCP via HTTP
  • Compartir el acceso entre múltiples usuarios/agentes
  • Centralizar la autenticación (tokens, PATs, API keys)
  • ✅ Desplegar en un servidor o contenedor para acceso remoto

🎯 Caso de ejemplo: Azure DevOps MCP

Este repositorio usa el Azure DevOps MCP Server como ejemplo porque:

  1. Usa stdio → No puede exponerse directamente como servicio
  2. Requiere PAT → Necesita un Personal Access Token para autenticarse
  3. Es muy útil → Permite interactuar con Azure DevOps desde agentes IA

Pero el mismo patrón aplica a cualquier MCP Server que use stdio y/o requiera credenciales.

🏗️ Arquitectura

┌─────────────┐     HTTP/SSE      ┌─────────────────┐     stdio      ┌──────────────────────┐
│  MCP Client │ ───────────────▶  │  FastMCP Proxy  │ ────────────▶  │  MCP Server (stdio)  │
│  (Copilot)  │                   │  (Este Server)  │                │  (ej: Azure DevOps)  │
└─────────────┘                   └─────────────────┘                └──────────────────────┘
                                         │
                                         ▼
                                  🔐 Credenciales centralizadas
                                  (PAT, API Keys, Tokens...)

📋 Requisitos

  • Python 3.10 o superior
  • Node.js 20 o superior (para el ejemplo con Azure DevOps)
  • Las credenciales que requiera el MCP Server que quieras proxear

🚀 Instalación

1. Clonar el repositorio

git clone https://github.com/0GiS0/mcp-server-as-a-proxy.git
cd mcp-server-as-a-proxy

2. Instalar dependencias

pip install -e .

3. Configurar variables de entorno

cp .env.example .env

Edita el archivo .env con tus credenciales (ejemplo para Azure DevOps):

AZURE_DEVOPS_ORG=tu-organizacion
ADO_MCP_AUTH_TOKEN=tu-personal-access-token

4. Ejecutar el servidor

python proxy_server.py

El servidor estará disponible en http://localhost:8080/mcp

🔧 Cómo adaptar a otro MCP Server

El código en proxy_server.py se puede adaptar fácilmente para cualquier MCP Server stdio:

from fastmcp import FastMCP
from fastmcp.server.proxy import ProxyClient
from fastmcp.client.transports import StdioTransport

# 1️⃣ Configura el transport para TU MCP Server
transport = StdioTransport(
    command="npx",                    # O python, node, etc.
    args=["-y", "@tu-mcp/server"],    # Argumentos del servidor
    env={
        "API_KEY": "tu-api-key",      # Variables de entorno necesarias
        "OTHER_SECRET": "..."
    }
)

# 2️⃣ Crea el proxy
proxy = FastMCP.as_proxy(
    ProxyClient(transport),
    name="MiMCPProxy"
)

# 3️⃣ Expón via HTTP (Streamable)
if __name__ == "__main__":
    proxy.run(transport="http", host="0.0.0.0", port=8080)

🔌 Configuración del Cliente MCP

VS Code (mcp.json)

{
  "servers": {
    "mi-proxy": {
      "type": "http",
      "url": "http://localhost:8080/mcp"
    }
  }
}

Claude Desktop

{
  "mcpServers": {
    "mi-proxy": {
      "url": "http://localhost:8080/mcp",
      "transport": "http"
    }
  }
}

📊 Escalabilidad

NOTA: La arquitectura actual está diseñada para desarrollo y demos. Para producción con múltiples usuarios, consulta el issue #7.
EscenarioEstado
Desarrollo/demos✅ Funciona bien
Producción (múltiples usuarios)⚠️ Requiere configuración adicional

Opciones para escalar:

  • Múltiples instancias + Load Balancer
  • Gunicorn con workers: gunicorn proxy_server:proxy -w 4 -k uvicorn.workers.UvicornWorker
  • Kubernetes con réplicas

⚠️ Seguridad

IMPORTANTE: Este proxy actualmente no implementa autenticación propia. Para uso en producción, añade una capa de autenticación.

🔐 Autenticación con Microsoft Entra ID

FastMCP incluye un provider nativo para Azure. Documentación completa: FastMCP Azure Integration

from fastmcp.server.auth.providers.azure import AzureProvider

auth_provider = AzureProvider(
    client_id="tu-app-client-id",
    client_secret="tu-client-secret",
    tenant_id="tu-tenant-id",
    base_url="http://localhost:8080",
    required_scopes=["mcp-access"],
)

proxy = FastMCP.as_proxy(
    ProxyClient(transport),
    name="MiProxy",
    auth=auth_provider  # 👈 Añadir autenticación
)

📚 Referencias

🌐 Sígueme en Mis Redes Sociales

Si te ha gustado este proyecto y quieres ver más contenido como este, no olvides suscribirte a mi canal de YouTube y seguirme en mis redes sociales:

📄 Licencia

MIT

目录标签

目录标签

PythonClaude远程服务服务器代理本地部署HTTP访问认证管理FastMCP

支持客户端

Claude DesktopClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP