Guía de instalación y configuración de MCP servers #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Guía de configuración para los MCP de Jira y GitHub
Preparación previa
Descargar el repositorio:
Obtener credenciales necesarias:
Para GitHub:
repo(acceso completo a repositorios)read:org(acceso de lectura a organizaciones)read:user(acceso de lectura a datos de usuario)user:email(acceso a direcciones de correo electrónico)user:follow(acceso para seguir a otros usuarios)Para Jira:
Configuración del MCP de GitHub
Requisitos:
Nota importante:
El desarrollo de este servidor MCP ha sido trasladado al repositorio oficial de GitHub en github/github-mcp-server. Sin embargo, la versión incluida en este repositorio sigue siendo funcional.
Configuración en el archivo MCP:
Funcionalidades disponibles:
create_or_update_file: Crear o actualizar un archivo en un repositoriopush_files: Enviar múltiples archivos en un solo commitsearch_repositories: Buscar repositorios en GitHubcreate_repository: Crear un nuevo repositorioConfiguración del MCP de Jira
Requisitos:
Instalación de dependencias:
cd /Users/andryut/Development/MCPservers/src/jira npm installConfiguración en el archivo MCP:
Funcionalidades disponibles:
get_issue: Obtener información detallada de issues por su clave (ej. "RMPRE-123")Implementación final
Crear o actualizar el archivo de configuración:
mkdir -p ~/.codeium/windsurf/Guardar la configuración completa:
{ "mcpServers": { "github": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-github" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "tu_token_personal" } }, "jira": { "command": "npx", "args": [ "-y", "tsx", "/ruta/a/MCPservers/src/jira/main.ts" ], "env": { "JIRA_USERNAME": "usuario@ejemplo.com", "JIRA_API_KEY": "tu_token_de_api", "JIRA_BASE_URL": "https://tu-organizacion.atlassian.net" } } } }Reiniciar el cliente MCP (Claude Desktop o Codeium) para que los cambios surtan efecto.
Verificación
Para comprobar que la configuración funciona correctamente, puedes hacer preguntas como:
Los servidores MCP se iniciarán automáticamente cuando el cliente los necesite y se comunicarán a través de la entrada/salida estándar (stdio).
Ejemplo completo: Implementación de una tarjeta con MCP
A continuación se presenta un ejemplo completo de cómo utilizar los MCP de Jira y GitHub para implementar una tarjeta, desde la consulta de información hasta la creación de un Pull Request.
1. Consultar información de la tarjeta en Jira
Primero, consultamos los detalles de la tarjeta en Jira para entender qué debemos implementar:
Usuario: Necesito obtener la información completa de la tarjeta CALC-483 de Jira para implementarla.
Asistente: Voy a consultar la información de esa tarjeta en Jira.
[El asistente usa el MCP de Jira para obtener los detalles]
2. Entender el estado actual y el cambio esperado
Antes de comenzar con la implementación, es importante entender el estado actual y el cambio esperado:
Usuario: Ahora necesito entender exactamente qué código debo modificar y cuál es el cambio esperado para esta tarjeta. ¿Puedes buscar en el repositorio dónde aparece el texto "Habilitar Descripción en Asignaciones"?
Asistente: Voy a ayudarte a entender el contexto completo. Primero, vamos a examinar dónde aparece actualmente el texto "Habilitar Descripción en Asignaciones" en la aplicación.
[El asistente usa el MCP de GitHub para buscar en el código]
He encontrado que el texto "Habilitar Descripción en Asignaciones" aparece en:
El modelo General (.../.../....rb) como una constante:
En los archivos de traducciones (.../.../es.yml):
En la migración que creó esta general:
Según la tarjeta CALC-483, el cambio esperado es:
Este cambio afectará cómo se muestra esta opción en la interfaz de usuario, pero no cambiará su funcionalidad.
3. Proponer pruebas automatizadas
Antes de comenzar con la implementación, es importante definir cómo se probará el cambio:
Usuario: Antes de implementar el cambio, necesito proponer pruebas automatizadas para verificar que la implementación sea correcta. ¿Qué tipos de pruebas recomiendas para este tipo de cambio?
Asistente: Voy a proponer algunas pruebas automatizadas para verificar que el cambio se implemente correctamente.
[El asistente analiza el código y los requisitos]
Propongo las siguientes pruebas automatizadas:
Pruebas unitarias:
Pruebas de integración:
Pruebas de regresión:
4. Actualizar la pestaña de calidad (Requiere extensión de API)
Ahora que tenemos las pruebas propuestas, seleccionamos las más importantes y actualizamos la pestaña de calidad en Jira:
Usuario: De las pruebas propuestas, debemos centrarnos solo en las pruebas unitarias por ahora debido a restricciones de tiempo. ¿Puedes actualizar la pestaña de calidad de la tarjeta CALC-483 en Jira con esa selección y los criterios de aceptación correspondientes?
Asistente: Entendido, nos centraremos en las pruebas unitarias. Voy a actualizar la pestaña de calidad de la tarjeta CALC-483 en Jira con esta selección.
[El asistente usa el MCP de Jira para actualizar la tarjeta]
He actualizado la pestaña de calidad de la tarjeta CALC-483 con las pruebas unitarias seleccionadas y he añadido los siguientes criterios de aceptación:
5. Crear una rama para la implementación
A continuación, creamos una rama a partir de master para nuestra implementación:
Usuario: Necesito crear una rama git para esta tarjeta a partir de master. Ya tengo el repositorio clonado localmente en /path/to/buk-webapp y estoy posicionado en la raíz del proyecto.
Asistente: Perfecto. Vamos a asegurarnos de tener la última versión de la rama principal y luego crear una nueva rama para esta tarjeta.
6. Implementar la funcionalidad
Ahora implementamos la funcionalidad requerida:
Usuario: Ahora necesito implementar el cambio de nombre en todos los archivos identificados. ¿Puedes darme los comandos exactos o instrucciones paso a paso para modificar cada archivo correctamente?
Asistente: Basándome en la estructura del proyecto, necesitamos encontrar dónde está definida esta configuración general.
[El asistente analiza la estructura del código]
He encontrado que la configuración está definida en varios archivos. Primero, vamos a cambiar la definición de la general en el archivo .../.../....rb:
7. Probar la implementación (Opcional)
Realizamos pruebas para verificar que la implementación funciona correctamente, enfocándonos en las pruebas unitarias seleccionadas en el paso 4:
Usuario: He implementado los cambios en todos los archivos. ¿Cómo puedo ejecutar las pruebas unitarias que definimos para verificar que todo funciona correctamente?
Asistente: Vamos a implementar las pruebas unitarias que seleccionamos anteriormente. Crearé un archivo de prueba para verificar los tres criterios que definimos:
Para ejecutar estas pruebas unitarias, usamos:
$ bundle exec rspec spec/models/general_spec.rbTambién podemos verificar manualmente que la migración se haya aplicado correctamente:
$ bundle exec rails db:migrate:statusY finalmente, aunque no implementaremos pruebas de integración por ahora, podemos verificar visualmente que el cambio se refleje en la interfaz de usuario:
$ bundle exec rails sLuego visitamos la página de administración de generales en el navegador y confirmamos que aparece "Habilitar Detalle en Asignaciones" en lugar de "Habilitar Descripción en Asignaciones".
8. Crear un Pull Request
Finalmente, creamos un Pull Request para que nuestra implementación sea revisada:
Usuario: Las pruebas han pasado correctamente. Ahora necesito crear un Pull Request en GitHub con estos cambios. ¿Cuál es el proceso completo, incluyendo la actualización desde master y el formato correcto para el mensaje de commit?
Asistente: Antes de crear el Pull Request, es importante asegurarnos de que nuestra rama esté actualizada con los últimos cambios de la rama principal. Luego prepararemos los cambios y crearemos un commit con un mensaje bien estructurado.
[El asistente usa el MCP de GitHub para crear el Pull Request]
He creado un Pull Request con título "CALC-483: Cambiar nombre de general Habilitar Descripción en Asignaciones" desde la rama feature/PROYECTO-123-cambiar-nombre-configuracion hacia main.
Descripción del PR:
"Este PR cambia el nombre de la general 'Habilitar Descripción en Asignaciones' por 'Habilitar Detalle en Asignaciones' para mantener coherencia en toda la aplicación, según lo solicitado en la tarjeta CALC-483.
Cambios realizados:
Por favor, revisar y aprobar."
Puedes ver el PR en: https://github.com/usuario/mi-proyecto/pull/87
9. Actualizar la tarjeta en Jira (Requiere extensión de API)
Por último, actualizamos el estado de la tarjeta en Jira:
Usuario: El Pull Request ha sido creado exitosamente. Antes de actualizar la tarjeta en Jira, necesito saber cuáles son los posibles estados a los que puede transicionar desde su estado actual "Backlog". ¿Puedes consultar esa información usando el MCP de Jira?
Asistente: Claro, voy a usar el MCP de Jira para consultar las posibles transiciones de estado para la tarjeta CALC-483.
[El asistente usa el MCP de Jira para consultar las transiciones disponibles]
He consultado las posibles transiciones para la tarjeta CALC-483. Actualmente está en estado "Backlog" y puede transicionar a los siguientes estados:
La transición recomendada en este punto del flujo de trabajo es a "En revisión", ya que hemos completado la implementación y creado un Pull Request para revisión.
Usuario: Perfecto, ahora actualiza la tarjeta CALC-483 a estado "En revisión" y añade un comentario que incluya el enlace al Pull Request que acabamos de crear.
Asistente: Voy a usar el MCP de Jira para actualizar el estado de la tarjeta CALC-483.
[El asistente usa el MCP de Jira para actualizar la tarjeta]
He actualizado la tarjeta CALC-483 en Jira:
Este ejemplo muestra cómo los MCP de Jira y GitHub pueden integrarse en tu flujo de trabajo para facilitar la implementación de tareas, desde la consulta de información hasta la creación de Pull Requests y actualización de tarjetas.
Conclusiones y consideraciones importantes
La importancia del review humano
A pesar de la potencia de los MCP servers para automatizar tareas, es fundamental mantener un proceso de review humano por las siguientes razones:
Validación de contexto: Los MCP servers trabajan con la información disponible, pero los desarrolladores aportan contexto adicional y conocimiento del negocio que puede no estar documentado.
Evaluación de impacto: Un desarrollador experimentado puede identificar posibles efectos secundarios o impactos en otras partes del sistema que no son evidentes para la herramienta.
Mejora continua: El feedback humano sobre las soluciones propuestas por los MCP servers permite mejorar tanto las implementaciones como el uso de la herramienta.
Consideraciones de seguridad y calidad: El review humano es esencial para garantizar que las implementaciones cumplen con los estándares de seguridad y calidad del código.
La necesidad de un mejor slicing
La efectividad de los MCP servers depende directamente de la calidad del slicing de las tareas:
Granularidad adecuada: Las tareas demasiado grandes o ambiguas dificultan el trabajo con MCP servers. Un buen slicing produce tareas concretas, bien definidas y con alcance limitado.
Contexto claro: Cada tarea debe incluir suficiente contexto para ser entendida, pero sin abarcar demasiados aspectos diferentes del sistema.
Dependencias explícitas: Un buen slicing identifica claramente las dependencias entre tareas, permitiendo trabajar en ellas en el orden correcto.
Criterios de aceptación precisos: Definir criterios de aceptación claros y verificables mejora significativamente la capacidad de los MCP servers para proponer e implementar soluciones adecuadas.
Mejora en tiempos de implementación sin sacrificar análisis
Los MCP servers no reemplazan el análisis, pero optimizan el tiempo de implementación:
Análisis asistido: Los MCP servers pueden ayudar en el análisis inicial, identificando patrones en el código y proponiendo enfoques, pero el análisis final sigue requiriendo criterio humano.
Automatización de tareas repetitivas: Tareas como la creación de ramas, commits con formato estandarizado, y actualizaciones de estado en Jira pueden automatizarse, liberando tiempo para el análisis de mayor valor.
Implementación acelerada: Una vez definida la solución, los MCP servers pueden generar rápidamente el código necesario siguiendo patrones establecidos y mejores prácticas.
Pruebas más completas: El tiempo ahorrado en la implementación puede invertirse en pruebas más exhaustivas y en mejorar la calidad general del código.
Integración progresiva en el flujo de trabajo existente
La adopción de MCP servers debe realizarse de manera progresiva e integrada con los flujos de trabajo existentes:
Adopción incremental: Comenzar con tareas simples y bien definidas antes de avanzar a casos más complejos permite a los equipos adaptarse gradualmente a la herramienta.
Complemento, no reemplazo: Los MCP servers deben verse como un complemento a las habilidades del equipo, no como un reemplazo de roles o responsabilidades existentes.
Personalización por proyecto: Cada proyecto puede requerir configuraciones específicas de los MCP servers para adaptarse a sus particularidades, tecnologías y procesos.
Documentación de patrones exitosos: Documentar los casos de uso donde los MCP servers han sido más efectivos ayuda a establecer mejores prácticas y a optimizar su uso en futuros proyectos.
Nota: Esta guía de instalación y configuración de MCP servers fue creada completamente utilizando Cascade.