GitHub
Interactúa con las APIs de GitHub para automatización y gestión de repositorios.
Documentación
GitHub MCP Server
El servidor GitHub MCP es un servidor Model Context Protocol (MCP) que proporciona una integración perfecta con las API de GitHub, habilitando capacidades avanzadas de automatización e interacción para desarrolladores y herramientas.
Casos de uso
- Automatizar flujos de trabajo y procesos de GitHub.
- Extraer y analizar datos de repositorios de GitHub.
- Construir herramientas y aplicaciones impulsadas por IA que interactúen con el ecosistema de GitHub.
Requisitos previos
- Para ejecutar el servidor en un contenedor, necesitarás tener Docker instalado.
- Una vez que Docker esté instalado, también deberás asegurarte de que Docker esté en ejecución. La imagen es pública; si obtienes errores al hacer pull, es posible que tengas un token caducado y necesites
docker logout ghcr.io. - Por último, necesitarás Crear un token de acceso personal de GitHub. El servidor MCP puede usar muchas de las API de GitHub, así que habilita los permisos que te sientas cómodo otorgando a tus herramientas de IA (para obtener más información sobre los tokens de acceso, consulta la documentación).
Instalación
Uso con VS Code
Para una instalación rápida, usa uno de los botones de instalación con un clic en la parte superior de este README. Una vez que completes ese flujo, activa el modo Agente (ubicado junto a la entrada de texto de Copilot Chat) y el servidor se iniciará.
Para la instalación manual, agrega el siguiente bloque JSON a tu archivo de Configuración de Usuario (JSON) en VS Code. Puedes hacer esto presionando Ctrl + Shift + P y escribiendo Preferences: Open User Settings (JSON).
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub Personal Access Token",
"password": true
}
],
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
}
Opcionalmente, puedes agregar un ejemplo similar (es decir, sin la clave mcp) a un archivo llamado .vscode/mcp.json en tu espacio de trabajo. Esto te permitirá compartir la configuración con otros.
{
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub Personal Access Token",
"password": true
}
],
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
Más información sobre el uso de las herramientas del servidor MCP en la documentación del modo agente de VS Code.
Uso con Claude Desktop
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Compilar desde el código fuente
Si no tienes Docker, puedes usar go build para compilar el binario en el directorio cmd/github-mcp-server, y usar el comando github-mcp-server stdio con la variable de entorno GITHUB_PERSONAL_ACCESS_TOKEN configurada con tu token. Para especificar la ubicación de salida de la compilación, usa la bandera -o. Debes configurar tu servidor para que use el ejecutable compilado como su command. Por ejemplo:
{
"mcp": {
"servers": {
"github": {
"command": "/path/to/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
}
Configuración de herramientas
El servidor GitHub MCP admite habilitar o deshabilitar grupos específicos de funcionalidades mediante la bandera --toolsets. Esto te permite controlar qué capacidades de la API de GitHub están disponibles para tus herramientas de IA. Habilitar solo los conjuntos de herramientas que necesitas puede ayudar al LLM con la elección de herramientas y reducir el tamaño del contexto.
Conjuntos de herramientas disponibles
Los siguientes conjuntos de herramientas están disponibles (todos están activados por defecto):
| Toolset | Description |
|---|---|
repos | Herramientas relacionadas con repositorios (operaciones de archivos, ramas, confirmaciones) |
issues | Herramientas relacionadas con issues (crear, leer, actualizar, comentar) |
users | Todo lo relacionado con los usuarios de GitHub |
pull_requests | Operaciones de pull requests (crear, fusionar, revisar) |
code_security | Alertas de escaneo de código y características de seguridad |
experiments | Características experimentales (no consideradas estables) |
Especificación de conjuntos de herramientas
Para especificar los conjuntos de herramientas que deseas que estén disponibles para el LLM, puedes pasar una lista de permitidos de dos maneras:
-
Usando argumento de línea de comandos:
github-mcp-server --toolsets repos,issues,pull_requests,code_security -
Usando variable de entorno:
GITHUB_TOOLSETS="repos,issues,pull_requests,code_security" ./github-mcp-server
La variable de entorno GITHUB_TOOLSETS tiene prioridad sobre el argumento de línea de comandos si ambos se proporcionan.
Uso de conjuntos de herramientas con Docker
Cuando uses Docker, puedes pasar los conjuntos de herramientas como variables de entorno:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_TOOLSETS="repos,issues,pull_requests,code_security,experiments" \
ghcr.io/github/github-mcp-server
El conjunto de herramientas 'all'
El conjunto de herramientas especial all se puede proporcionar para habilitar todos los conjuntos de herramientas disponibles independientemente de cualquier otra configuración:
./github-mcp-server --toolsets all
O usando la variable de entorno:
GITHUB_TOOLSETS="all" ./github-mcp-server
Descubrimiento dinámico de herramientas
Nota: Esta característica está actualmente en beta y puede no estar disponible en todos los entornos. Por favor, pruébala y háznos saber si encuentras algún problema.
En lugar de comenzar con todas las herramientas habilitadas, puedes activar el descubrimiento dinámico de conjuntos de herramientas. Los conjuntos de herramientas dinámicos permiten que el host MCP liste y habilite conjuntos de herramientas en respuesta a una solicitud del usuario. Esto debería ayudar a evitar situaciones en las que el modelo se confunda por la gran cantidad de herramientas disponibles.
Uso del descubrimiento dinámico de herramientas
Cuando uses el binario, puedes pasar la bandera --dynamic-toolsets.
./github-mcp-server --dynamic-toolsets
Cuando uses Docker, puedes pasar los conjuntos de herramientas como variables de entorno:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_DYNAMIC_TOOLSETS=1 \
ghcr.io/github/github-mcp-server
Servidor GitHub Enterprise
La bandera --gh-host y la variable de entorno GITHUB_HOST se pueden usar para configurar el nombre de host del servidor GitHub Enterprise. Prefija el nombre de host con el esquema URI https://, ya que de lo contrario se establece por defecto a http://, que el servidor GitHub Enterprise no admite.
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"-e",
"GITHUB_HOST",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
"GITHUB_HOST": "https://<your GHES domain name>"
}
}
i18n / Sobrescribir descripciones
Las descripciones de las herramientas se pueden sobrescribir creando un archivo github-mcp-server-config.json en el mismo directorio que el binario.
El archivo debe contener un objeto JSON con los nombres de las herramientas como claves y las nuevas descripciones como valores. Por ejemplo:
{
"TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
"TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}
Puedes crear una exportación de las traducciones actuales ejecutando el binario con la bandera --export-translations.
Esta bandera conservará cualquier traducción/sobrescritura que hayas realizado, mientras agrega cualquier traducción nueva que se haya añadido al binario desde la última vez que exportaste.
./github-mcp-server --export-translations
cat github-mcp-server-config.json
También puedes usar variables de entorno para sobrescribir las descripciones. Los nombres de las variables de entorno son los mismos que las claves en el archivo JSON, prefijados con GITHUB_MCP_ y en mayúsculas.
Por ejemplo, para sobrescribir la herramienta TOOL_ADD_ISSUE_COMMENT_DESCRIPTION, puedes configurar la siguiente variable de entorno:
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"
Herramientas
Usuarios
- get_me - Obtener detalles del usuario autenticado
- No se requieren parámetros
Issues
-
get_issue - Obtiene el contenido de un issue dentro de un repositorio
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)issue_number: Número de issue (number, obligatorio)
-
get_issue_comments - Obtener comentarios para un issue de GitHub
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)issue_number: Número de issue (number, obligatorio)
-
create_issue - Crear un nuevo issue en un repositorio de GitHub
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)title: Título del issue (string, obligatorio)body: Contenido del cuerpo del issue (string, opcional)assignees: Nombres de usuario para asignar a este issue (string[], opcional)labels: Etiquetas para aplicar a este issue (string[], opcional)
-
add_issue_comment - Agregar un comentario a un issue
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)issue_number: Número de issue (number, obligatorio)body: Texto del comentario (string, obligatorio)
-
list_issues - Listar y filtrar issues del repositorio
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)state: Filtrar por estado ('open', 'closed', 'all') (string, opcional)labels: Etiquetas para filtrar (string[], opcional)sort: Ordenar por ('created', 'updated', 'comments') (string, opcional)direction: Dirección de ordenamiento ('asc', 'desc') (string, opcional)since: Filtrar por fecha (marca de tiempo ISO 8601) (string, opcional)page: Número de página (number, opcional)perPage: Resultados por página (number, opcional)
-
update_issue - Actualizar un issue existente en un repositorio de GitHub
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)issue_number: Número de issue a actualizar (number, obligatorio)title: Nuevo título (string, opcional)body: Nueva descripción (string, opcional)state: Nuevo estado ('open' o 'closed') (string, opcional)labels: Nuevas etiquetas (string[], opcional)assignees: Nuevos asignados (string[], opcional)milestone: Nuevo número de hito (number, opcional)
-
search_issues - Buscar issues y pull requests
query: Consulta de búsqueda (string, obligatorio)sort: Campo de ordenamiento (string, opcional)order: Orden de ordenamiento (string, opcional)page: Número de página (number, opcional)perPage: Resultados por página (number, opcional)
Pull Requests
-
get_pull_request - Obtener detalles de un pull request específico
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)pullNumber: Número de pull request (number, obligatorio)
-
list_pull_requests - Listar y filtrar pull requests del repositorio
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)state: Estado del PR (string, opcional)sort: Campo de ordenamiento (string, opcional)direction: Dirección de ordenamiento (string, opcional)perPage: Resultados por página (number, opcional)page: Número de página (number, opcional)
-
merge_pull_request - Fusionar un pull request
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)pullNumber: Número de pull request (number, obligatorio)commit_title: Título para el commit de fusión (string, opcional)commit_message: Mensaje para el commit de fusión (string, opcional)merge_method: Método de fusión (string, opcional)
-
get_pull_request_files - Obtener la lista de archivos modificados en un pull request
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)pullNumber: Número de pull request (number, obligatorio)
-
get_pull_request_status - Obtener el estado combinado de todas las comprobaciones de estado para un pull request
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)pullNumber: Número de pull request (number, obligatorio)
-
update_pull_request_branch - Actualizar una rama de pull request con los últimos cambios de la rama base
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)pullNumber: Número de pull request (number, obligatorio)expectedHeadSha: El SHA esperado de la referencia HEAD del pull request (string, opcional)
-
get_pull_request_comments - Obtener los comentarios de revisión en un pull request
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)pullNumber: Número de pull request (number, obligatorio)
-
get_pull_request_reviews - Obtener las revisiones en un pull request
owner: Propietario del repositorio (string, obligatorio)repo: Nombre del repositorio (string, obligatorio)pullNumber: Número de pull request (number, obligatorio)
-
create_pull_request_review - Crear una revisión en una revisión de pull request
-
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)pullNumber: Número de pull request (número, obligatorio)body: Texto del comentario de revisión (cadena, opcional)event: Acción de revisión ('APPROVE', 'REQUEST_CHANGES', 'COMMENT') (cadena, obligatorio)commitId: SHA del commit a revisar (cadena, opcional)comments: Matriz de comentarios específicos de línea para colocar comentarios en los cambios del pull request (matriz, opcional)- Para comentarios en línea: proporciona
path,position(oline) ybody - Para comentarios de varias líneas: proporciona
path,start_line,line, opcionalmenteside/start_sideybody
- Para comentarios en línea: proporciona
-
create_pull_request - Crear un nuevo pull request
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)title: Título del PR (cadena, obligatorio)body: Descripción del PR (cadena, opcional)head: Rama que contiene los cambios (cadena, obligatorio)base: Rama en la que se fusionará (cadena, obligatorio)draft: Crear como PR borrador (booleano, opcional)maintainer_can_modify: Permitir ediciones del mantenedor (booleano, opcional)
-
add_pull_request_review_comment - Agregar un comentario de revisión a un pull request o responder a un comentario existente
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)pull_number: Número de pull request (número, obligatorio)body: El texto del comentario de revisión (cadena, obligatorio)commit_id: El SHA del commit sobre el que comentar (cadena, obligatorio a menos que se use in_reply_to)path: La ruta relativa al archivo que requiere un comentario (cadena, obligatorio a menos que se use in_reply_to)line: La línea del blob en el diff del pull request a la que se aplica el comentario (número, opcional)side: El lado del diff sobre el que comentar (LEFT o RIGHT) (cadena, opcional)start_line: Para comentarios de varias líneas, la primera línea del rango (número, opcional)start_side: Para comentarios de varias líneas, el lado inicial del diff (LEFT o RIGHT) (cadena, opcional)subject_type: El nivel al que se dirige el comentario (línea o archivo) (cadena, opcional)in_reply_to: El ID del comentario de revisión al que responder (número, opcional). Cuando se especifica, solo se requiere el cuerpo y los demás parámetros se ignoran.
-
update_pull_request - Actualizar un pull request existente en un repositorio de GitHub
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)pullNumber: Número de pull request a actualizar (número, obligatorio)title: Nuevo título (cadena, opcional)body: Nueva descripción (cadena, opcional)state: Nuevo estado ('open' o 'closed') (cadena, opcional)base: Nuevo nombre de la rama base (cadena, opcional)maintainer_can_modify: Permitir ediciones del mantenedor (booleano, opcional)
Repositorios
-
create_or_update_file - Crear o actualizar un solo archivo en un repositorio
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)path: Ruta del archivo (cadena, obligatorio)message: Mensaje del commit (cadena, obligatorio)content: Contenido del archivo (cadena, obligatorio)branch: Nombre de la rama (cadena, opcional)sha: SHA del archivo si se actualiza (cadena, opcional)
-
list_branches - Listar ramas en un repositorio de GitHub
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)page: Número de página (número, opcional)perPage: Resultados por página (número, opcional)
-
push_files - Enviar múltiples archivos en un solo commit
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)branch: Rama a la que enviar (cadena, obligatorio)files: Archivos a enviar, cada uno con ruta y contenido (matriz, obligatorio)message: Mensaje del commit (cadena, obligatorio)
-
search_repositories - Buscar repositorios de GitHub
query: Consulta de búsqueda (cadena, obligatorio)sort: Campo de ordenación (cadena, opcional)order: Orden de ordenación (cadena, opcional)page: Número de página (número, opcional)perPage: Resultados por página (número, opcional)
-
create_repository - Crear un nuevo repositorio de GitHub
name: Nombre del repositorio (cadena, obligatorio)description: Descripción del repositorio (cadena, opcional)private: Si el repositorio es privado (booleano, opcional)autoInit: Auto-inicializar con README (booleano, opcional)
-
get_file_contents - Obtener el contenido de un archivo o directorio
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)path: Ruta del archivo (cadena, obligatorio)ref: Referencia de Git (cadena, opcional)
-
fork_repository - Hacer fork de un repositorio
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)organization: Nombre de la organización de destino (cadena, opcional)
-
create_branch - Crear una nueva rama
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)branch: Nombre de la nueva rama (cadena, obligatorio)sha: SHA desde el que crear la rama (cadena, obligatorio)
-
list_commits - Obtener una lista de commits de una rama en un repositorio
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)sha: Nombre de la rama, etiqueta o SHA del commit (cadena, opcional)path: Solo commits que contengan esta ruta de archivo (cadena, opcional)page: Número de página (número, opcional)perPage: Resultados por página (número, opcional)
-
get_commit - Obtener detalles de un commit de un repositorio
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)sha: SHA del commit, nombre de la rama o nombre de la etiqueta (cadena, obligatorio)page: Número de página, para archivos en el commit (número, opcional)perPage: Resultados por página, para archivos en el commit (número, opcional)
-
search_code - Buscar código en repositorios de GitHub
query: Consulta de búsqueda (cadena, obligatorio)sort: Campo de ordenación (cadena, opcional)order: Orden de ordenación (cadena, opcional)page: Número de página (número, opcional)perPage: Resultados por página (número, opcional)
Usuarios
- search_users - Buscar usuarios de GitHub
q: Consulta de búsqueda (cadena, obligatorio)sort: Campo de ordenación (cadena, opcional)order: Orden de ordenación (cadena, opcional)page: Número de página (número, opcional)perPage: Resultados por página (número, opcional)
Escaneo de código
-
get_code_scanning_alert - Obtener una alerta de escaneo de código
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)alertNumber: Número de alerta (número, obligatorio)
-
list_code_scanning_alerts - Listar alertas de escaneo de código para un repositorio
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)ref: Referencia de Git (cadena, opcional)state: Estado de la alerta (cadena, opcional)severity: Severidad de la alerta (cadena, opcional)tool_name: El nombre de la herramienta utilizada para el escaneo de código (cadena, opcional)
Escaneo de secretos
-
get_secret_scanning_alert - Obtener una alerta de escaneo de secretos
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)alertNumber: Número de alerta (número, obligatorio)
-
list_secret_scanning_alerts - Listar alertas de escaneo de secretos para un repositorio
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)state: Estado de la alerta (cadena, opcional)secret_type: Los tipos de secretos a filtrar en una lista separada por comas (cadena, opcional)resolution: El estado de resolución (cadena, opcional)
Recursos
Contenido del repositorio
-
Obtener contenido del repositorio Recupera el contenido de un repositorio en una ruta específica.
- Plantilla:
repo://{owner}/{repo}/contents{/path*} - Parámetros:
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)path: Ruta del archivo o directorio (cadena, opcional)
- Plantilla:
-
Obtener contenido del repositorio para una rama específica Recupera el contenido de un repositorio en una ruta específica para una rama determinada.
- Plantilla:
repo://{owner}/{repo}/refs/heads/{branch}/contents{/path*} - Parámetros:
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)branch: Nombre de la rama (cadena, obligatorio)path: Ruta del archivo o directorio (cadena, opcional)
- Plantilla:
-
Obtener contenido del repositorio para un commit específico Recupera el contenido de un repositorio en una ruta específica para un commit determinado.
- Plantilla:
repo://{owner}/{repo}/sha/{sha}/contents{/path*} - Parámetros:
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)sha: SHA del commit (cadena, obligatorio)path: Ruta del archivo o directorio (cadena, opcional)
- Plantilla:
-
Obtener contenido del repositorio para una etiqueta específica Recupera el contenido de un repositorio en una ruta específica para una etiqueta determinada.
- Plantilla:
repo://{owner}/{repo}/refs/tags/{tag}/contents{/path*} - Parámetros:
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)tag: Nombre de la etiqueta (cadena, obligatorio)path: Ruta del archivo o directorio (cadena, opcional)
- Plantilla:
-
Obtener contenido del repositorio para un pull request específico Recupera el contenido de un repositorio en una ruta específica para un pull request determinado.
- Plantilla:
repo://{owner}/{repo}/refs/pull/{prNumber}/head/contents{/path*} - Parámetros:
owner: Propietario del repositorio (cadena, obligatorio)repo: Nombre del repositorio (cadena, obligatorio)prNumber: Número de pull request (cadena, obligatorio)path: Ruta del archivo o directorio (cadena, opcional)
- Plantilla:
Uso de la biblioteca
La API de Go exportada de este módulo debe considerarse actualmente inestable y sujeta a cambios que puedan romper la compatibilidad. En el futuro, podríamos ofrecer estabilidad; por favor, abre un issue si hay un caso de uso donde esto sería valioso.
Licencia
Este proyecto está licenciado bajo los términos de la licencia de código abierto MIT. Consulta MIT para conocer los términos completos.