{"id":"d749edcb-3ff7-4d07-9315-810437731846","slug":"ai-mcp-agents-samples","kind":"mcp","name":"ai-mcp-agents-samples","summary":"Una colección organizada de ejemplos y demos para trabajar con AI Agents y MCP (Model Context Protocol) usando Azure OpenAI.","owner":"nexusadobo","repoUrl":"https://github.com/nexusadobo/ai-mcp-agents-samples","license":"GPL-3.0","licenseTier":"strong-copyleft","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2025-09-24T12:00:12.000Z","addedAt":"2026-10-21T19:41:58.242Z","logoUrl":"https://avatars.githubusercontent.com/u/98604369?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra","memory-knowledge"],"tags":[],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-24T11:55:12.082Z","sample":false,"url":"https://conduits.dev/tools/ai-mcp-agents-samples","language":"Python","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# AI Foundry Agents Samples\r\n\r\nUna colección organizada de ejemplos y demos para trabajar con AI Agents y MCP (Model Context Protocol) usando Azure OpenAI.\r\n\r\n## 📁 Estructura del Proyecto\r\n\r\n```### 🔍 Inspección de Herramientas\r\n- Listar todas las herramientas disponibles\r\n- Describir capacidades de cada herramientary-agents-samples/\r\n├── ai_agents/                  # Configuración de agentes AI\r\n│   ├── __init__.py\r\n│   └── agent_factory.py       # Factory para crear agentes especializados\r\n├── servers/                    # Configuración de servidores MCP\r\n│   ├── __init__.py\r\n│   └── server_manager.py      # Manager para servidores MCP\r\n├── tests/                      # Pruebas y demos específicos\r\n│   ├── __init__.py\r\n│   ├── filesystem_test.py     # Demo de sistema de archivos\r\n│   ├── playwright_test.py     # Demo de Playwright\r\n│   └── combined_test.py       # Demo combinado\r\n├── examples/                   # Ejemplos de uso\r\n│   ├── __init__.py\r\n│   ├── basic_usage.py        # Ejemplos básicos del cliente Azure\r\n│   └── tool_inspection.py    # Inspección de herramientas\r\n├── utils/                      # Utilidades compartidas\r\n│   ├── __init__.py\r\n│   └── azure_client.py       # Cliente de Azure OpenAI\r\n├── sample_files/              # Archivos de ejemplo para demos\r\n├── run_demos.py              # Script principal unificado\r\n├── pyproject.toml\r\n└── README.md\r\n```\r\n\r\n## 🚀 Inicio Rápido\r\n\r\n### Prerrequisitos\r\n\r\n1. **Node.js y npm** instalados (para MCP servers)\r\n2. **Python 3.8+** \r\n3. **Azure OpenAI** configurado\r\n\r\n### Configuración\r\n\r\n1. **Clonar el repositorio:**\r\n```bash\r\ngit clone <repository-url>\r\ncd ai-foundry-agents-samples\r\n```\r\n\r\n2. **Instalar dependencias con UV:**\r\n```bash\r\n# Instalar dependencias del proyecto\r\nuv sync\r\n\r\n# O instalar UV si no lo tienes\r\ncurl -LsSf https://astral.sh/uv/install.sh | sh\r\n```\r\n\r\n3. **Configurar variables de entorno:**\r\nCrea un archivo `.env` con:\r\n```env\r\nAZURE_OPENAI_API_KEY=tu_api_key\r\nAZURE_OPENAI_API_VERSION=2024-06-01\r\nAZURE_OPENAI_ENDPOINT=https://tu-recurso.openai.azure.com/\r\nAZURE_OPENAI_CHAT_DEPLOYMENT_NAME=gpt-4\r\n```\r\n\r\n### Uso del Script Principal\r\n\r\nEl proyecto incluye un script unificado `run_demos.py` que te permite ejecutar diferentes demos fácilmente:\r\n\r\n```bash\r\n# Ver ayuda\r\nuv run python run_demos.py help\r\n\r\n# Ejecutar demo de sistema de archivos\r\nuv run python run_demos.py filesystem\r\n\r\n# Ejecutar demo de Playwright (automatización web)\r\nuv run python run_demos.py playwright\r\n\r\n# Ejecutar demo combinado (filesystem + web)\r\nuv run python run_demos.py combined\r\n\r\n# Inspeccionar herramientas disponibles\r\nuv run python run_demos.py tools\r\n\r\n# Modo interactivo para preguntas personalizadas\r\nuv run python run_demos.py interactive\r\n```\r\n\r\n## 📚 Componentes Principales\r\n\r\n### 🤖 Agent Factory (`ai_agents/agent_factory.py`)\r\n\r\nFactory centralizado para crear diferentes tipos de agentes especializados:\r\n\r\n- **`create_filesystem_agent()`** - Especializado en operaciones de archivos\r\n- **`create_web_automation_agent()`** - Para automatización web con Playwright\r\n- **`create_tool_inspector_agent()`** - Para inspeccionar herramientas disponibles\r\n- **`create_combined_agent()`** - Combina capacidades de archivos y web\r\n\r\n### 🖥️ Server Manager (`servers/server_manager.py`)\r\n\r\nGestor centralizado para servidores MCP con context managers:\r\n\r\n- **`create_filesystem_server()`** - Servidor para operaciones de archivos\r\n- **`create_playwright_server()`** - Servidor para automatización web\r\n- **`create_combined_servers()`** - Múltiples servidores simultáneos\r\n\r\n### 🔧 Azure Client (`utils/azure_client.py`)\r\n\r\nUtilidades para Azure OpenAI:\r\n\r\n- **`get_azure_openai_client()`** - Cliente configurado\r\n- **`get_chat_deployment_name()`** - Nombre del deployment\r\n- **`AzureOpenAIConfig`** - Clase para configuración avanzada\r\n\r\n## 💡 Ejemplos de Uso\r\n\r\n### Uso Básico\r\n\r\n```python\r\nfrom agents.agent_factory import AgentFactory\r\nfrom servers.server_manager import ServerManager\r\nfrom agents import Runner\r\n\r\nasync def ejemplo_basico():\r\n    async with ServerManager.create_filesystem_server() as server:\r\n        agent = AgentFactory.create_filesystem_agent([server])\r\n        \r\n        result = await Runner.run(\r\n            starting_agent=agent,\r\n            input=\"List the files in the sample_files directory\"\r\n        )\r\n        print(result.final_output)\r\n```\r\n\r\n### Uso con Comandos del Sistema\r\n\r\n```python\r\nfrom ai_agents.agent_factory import AgentFactory\r\nfrom servers.server_manager import ServerManager\r\nfrom agents import Runner\r\n\r\nasync def ejemplo_basico():\r\n    async with ServerManager.create_filesystem_server() as server:\r\n        agent = AgentFactory.create_filesystem_agent([server])\r\n        \r\n        result = await Runner.run(\r\n            starting_agent=agent,\r\n            input=\"List the files in the sample_files directory\"\r\n        )\r\n        print(result.final_output)\r\n```\r\n\r\n## 🧪 Ejecutar Tests Individuales\r\n\r\nSi prefieres ejecutar tests específicos en lugar del script unificado:\r\n\r\n```bash\r\n# Test de sistema de archivos\r\nuv run python tests/filesystem_test.py\r\n\r\n# Test de Playwright\r\nuv run python tests/playwright_test.py\r\n\r\n# Test combinado\r\nuv run python tests/combined_test.py\r\n\r\n# Inspección de herramientas\r\nuv run python examples/tool_inspection.py\r\n\r\n# Ejemplos básicos del cliente Azure\r\nuv run python examples/basic_usage.py\r\n```\r\n\r\n## 📋 Funcionalidades Disponibles\r\n\r\n### 📁 Sistema de Archivos\r\n- Leer archivos en el directorio `sample_files/`\r\n- Crear nuevos archivos con código\r\n- Analizar y sugerir mejoras de código\r\n- Gestionar estructuras de archivos\r\n\r\n### 🌐 Automatización Web (Playwright)\r\n- Navegar a páginas web\r\n- Interactuar con elementos (clicks, formularios)\r\n- Tomar capturas de pantalla\r\n- Extraer información de páginas\r\n- Automatizar flujos de trabajo web\r\n\r\n### �️ Comandos del Sistema (⚠️ Usar con precaución)\r\n- Ejecutar comandos básicos del sistema (ls, pwd, cat, etc.)\r\n- Navegar por el sistema de archivos\r\n- Analizar logs y archivos del sistema\r\n- Monitorear procesos y recursos\r\n- **ADVERTENCIA**: Requiere confirmación explícita por seguridad\r\n\r\n### 📝 Control de Versiones Git\r\n- Verificar estado del repositorio\r\n- Analizar historial de commits\r\n- Revisar cambios y diferencias\r\n- Gestionar branches y tags\r\n- Obtener información de repositorios\r\n\r\n### �🔍 Inspección de Herramientas\r\n- Listar todas las herramientas disponibles\r\n- Describir capacidades de cada herramienta\r\n- Proporcionar ejemplos de uso\r\n- Organizar herramientas por categorías\r\n\r\n## 🐛 Solución de Problemas\r\n\r\n### Error: \"npx no está instalado\"\r\n```bash\r\n# Instalar Node.js y npm\r\nsudo apt update\r\nsudo apt install nodejs npm\r\n```\r\n\r\n### Error de variables de entorno\r\nAsegúrate de que tu archivo `.env` esté en la raíz del proyecto y contenga todas las variables necesarias.\r\n\r\n### Error de conexión con Azure OpenAI\r\nVerifica que:\r\n- Las credenciales sean correctas\r\n- El endpoint esté disponible\r\n- El deployment name sea correcto\r\n\r\n### Error de permisos con Shell Server\r\nSi obtienes errores de permisos al usar comandos del sistema:\r\n- Asegúrate de tener los permisos necesarios\r\n- Ejecuta solo comandos seguros\r\n- Confirma que entiendes los riesgos de seguridad\r\n\r\n### Error con Git Server\r\n## 🔧 Servidores MCP Adicionales Disponibles\r\n\r\nSi quieres expandir las capacidades, estos son otros servidores MCP disponibles:\r\n\r\n```bash\r\n# Búsqueda web con Brave\r\n@modelcontextprotocol/server-brave-search\r\n\r\n# Base de datos SQLite\r\n@modelcontextprotocol/server-sqlite  \r\n\r\n# APIs REST genéricas\r\n@modelcontextprotocol/server-fetch\r\n\r\n# Integración con Slack\r\n@modelcontextprotocol/server-slack\r\n\r\n# Servidor de memoria persistente\r\n@modelcontextprotocol/server-memory\r\n\r\n# Procesamiento de PDFs\r\n@modelcontextprotocol/server-pdf\r\n```\r\n\r\n## 🤝 Contribuir\r\n\r\n1. Haz fork del proyecto\r\n2. Crea una rama para tu feature (`git checkout -b feature/nueva-funcionalidad`)\r\n3. Haz commit de tus cambios (`git commit -m 'Añadir nueva funcionalidad'`)\r\n4. Sube la rama (`git push origin feature/nueva-funcionalidad`)\r\n5. Abre un Pull Request\r\n\r\n## 📄 Licencia\r\n\r\nEste proyecto está bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para detalles.\r\n\r\n## 📞 Soporte\r\n\r\nSi tienes problemas o preguntas, por favor abre un [issue](https://github.com/your-repo/issues) en GitHub.\r\n"}