ACP-MCP-Server

Un servidor puente que conecta agentes del Protocolo de Comunicación de Agentes (ACP) con clientes del Protocolo de Contexto de Modelo (MCP).

Documentación

ACP-MCP-Server

PyPI version Python 3.11+ License: MIT

Un servidor puente que conecta agentes del Protocolo de Comunicación de Agentes (ACP) con clientes del Protocolo de Contexto de Modelos (MCP), permitiendo una integración fluida entre agentes de IA basados en ACP y herramientas compatibles con MCP como Claude Desktop.

✨ Características

  • 🔄 Puente de Protocolo: Conecta sin problemas agentes ACP con clientes MCP
  • 🚀 Múltiples Transportes: Soporta STDIO, SSE y HTTP Streamable
  • 🤖 Descubrimiento de Agentes: Descubrimiento y registro automático de agentes ACP
  • 🧠 Enrutamiento Inteligente: Enrutamiento inteligente de solicitudes a los agentes adecuados
  • 🔄 Soporte Asíncrono: Soporte completo para operaciones síncronas y asíncronas
  • 💬 Sesiones Interactivas: Soporte para interacciones de agentes de múltiples turnos
  • 🌐 Multimodal: Maneja texto, imágenes y otros tipos de contenido

🚀 Inicio Rápido

Instalación

# Install from PyPI
pip install acp-mcp-server

# Or use uvx for isolated execution
uvx acp-mcp-server

Uso Básico

# Run with STDIO (default, for Claude Desktop)
acp-mcp-server

# Run with SSE transport
acp-mcp-server --transport sse --port 8000

# Run with HTTP transport
acp-mcp-server --transport streamable-http --host 0.0.0.0 --port 9000

# Connect to different ACP server
acp-mcp-server --acp-url http://localhost:8001

Uso con Claude Desktop

Agregue a su configuración de Claude Desktop:

{
  "mcpServers": {
    "acp-bridge": {
      "command": "uvx",
      "args": ["acp-mcp-server"]
    }
  }
}

📋 Requisitos

  • Python 3.11+
  • Servidor ACP en ejecución con agentes
  • FastMCP para la implementación del protocolo

🔧 Configuración

Variables de Entorno

  • ACP_BASE_URL: URL del servidor ACP (predeterminado: http://localhost:8000)

Opciones de Línea de Comandos

usage: acp-mcp-server [-h] [--transport {stdio,sse,streamable-http}] [--host HOST] [--port PORT] [--path PATH] [--acp-url ACP_URL] [--version]

options:
  -h, --help            show this help message and exit
  --transport {stdio,sse,streamable-http}
                        Transport protocol (default: stdio)
  --host HOST           Host address for HTTP transports (default: 127.0.0.1)
  --port PORT           Port number for HTTP transports (default: 8000)
  --path PATH           URL path for HTTP transports (default: /mcp)
  --acp-url ACP_URL     ACP server URL (default: http://localhost:8000)
  --version             show program's version number and exit

🛠️ Herramientas Disponibles

El servidor puente proporciona varias herramientas MCP:

Gestión de Agentes

  • discover_acp_agents: Descubrir agentes ACP disponibles
  • get_agent_info: Obtener información detallada sobre agentes específicos

Ejecución de Agentes

  • run_acp_agent: Ejecutar agentes en modos síncrono/asíncrono
  • get_async_run_result: Recuperar resultados de ejecuciones asíncronas
  • list_active_runs: Listar todas las ejecuciones de agentes activas

Enrutamiento Inteligente

  • smart_route_request: Enrutar inteligentemente solicitudes a los mejores agentes
  • test_routing: Probar la lógica de enrutamiento sin ejecución
  • add_routing_rule: Agregar reglas de enrutamiento personalizadas
  • list_routing_strategies: Ver todas las estrategias de enrutamiento

Sesiones Interactivas

  • start_interactive_agent: Iniciar sesiones interactivas de agentes
  • provide_user_input: Proporcionar entrada a agentes en espera
  • list_pending_interactions: Ver interacciones pendientes

Procesamiento de Mensajes

  • convert_acp_message: Convertir entre formatos ACP y MCP
  • analyze_message_content: Analizar la estructura y el contenido de los mensajes

🏗️ Arquitectura

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   MCP Client    │    │  ACP-MCP Bridge │    │   ACP Agents    │
│ (Claude Desktop)│◄──►│     Server      │◄──►│ (echo, chat,    │
│                 │    │                 │    │  translate...)  │
└─────────────────┘    └─────────────────┘    └─────────────────┘
       │                         │                       │
   MCP Protocol            Protocol Bridge         ACP Protocol
  (STDIO/SSE/HTTP)        (FastMCP + aiohttp)    (HTTP/WebSocket)

🔌 Modos de Transporte

STDIO (Predeterminado)

Perfecto para la integración con Claude Desktop:

acp-mcp-server

SSE (Eventos Enviados por el Servidor)

Para aplicaciones web y transmisión:

acp-mcp-server --transport sse --port 8000

HTTP Streamable

Para la integración con API REST:

acp-mcp-server --transport streamable-http --port 9000

🐳 Docker

Inicio Rápido con Docker

# Build the image
docker build -t acp-mcp-server .

# Run with Streamable HTTP transport
docker run -p 9000:9000 acp-mcp-server

# Run with SSE transport
docker run -p 8000:8000 acp-mcp-server \
  --transport sse --host 0.0.0.0 --port 8000

# Connect to custom ACP server
docker run -p 9000:9000 -e ACP_BASE_URL=http://my-acp-server:8001 acp-mcp-server

Usando Docker Compose

# Run HTTP transport service
docker-compose up acp-mcp-http

# Run SSE transport service
docker-compose up acp-mcp-sse

# Run both services
docker-compose up

# Run development mode with live code reload
docker-compose --profile dev up acp-mcp-dev

Imagen Docker de Producción

Para implementaciones de producción, use el Dockerfile de múltiples etapas:

# Build production image
docker build -f Dockerfile.prod -t acp-mcp-server:prod .

# Run production container
docker run -d \
  --name acp-mcp-server \
  --restart unless-stopped \
  -p 9000:9000 \
  -e ACP_BASE_URL=http://your-acp-server:8000 \
  acp-mcp-server:prod

🤝 Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción.

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENCIA para más detalles.

🔗 Proyectos Relacionados

  • FastMCP - Marco de servidor MCP rápido y pitónico
  • ACP SDK - SDK del Protocolo de Comunicación de Agentes
  • Claude Desktop - Asistente de IA con soporte MCP

📞 Soporte