Port MCP Server
Un servidor MCP para Port.io que permite automatizaciones avanzadas e interacciones en lenguaje natural para desarrolladores y aplicaciones de IA.
Documentación
⚠️ Este Repositorio ya no se Mantiene
[!WARNING] Este repositorio ha sido deprecado y ya no se mantiene ni se soporta activamente. No se proporcionarán más actualizaciones, correcciones de errores ni parches de seguridad.
Migrar al Servidor MCP Remoto de Port
Recomendamos encarecidamente a todos los usuarios migrar al Servidor MCP Remoto de Port, que es la solución mantenida y soportada activamente.
El Servidor MCP Remoto ofrece paridad completa de funciones y mejoras continuas respaldadas por el equipo de Port.
Port MCP Server
El servidor MCP de Port IO es un servidor de Protocolo de Contexto de Modelo (MCP), que permite automatizaciones avanzadas e interacciones en lenguaje natural para desarrolladores y aplicaciones de IA.
Lo que Puedes Hacer con Port MCP
Encuentra Información Rápidamente
- Obtén detalles de entidades - "¿Quién es el propietario del servicio X?"
- Consulta el estado de guardia - "¿Quién está de guardia ahora mismo?"
- Obtén información del catálogo - "¿Cuántos servicios tenemos en producción?"
Analiza Scorecards
- Identifica puntos débiles - "¿Qué servicios están fallando para el nivel oro y por qué?"
- Obtén estado de cumplimiento - "Muéstrame todos los servicios que no cumplen nuestros requisitos de seguridad"
- Mejora la calidad - "¿Qué necesito corregir para alcanzar el siguiente nivel de scorecard?"
Crea Recursos
- Construye scorecards - "Crea una nueva scorecard llamada 'Postura de Seguridad' con niveles Básico, Plata y Oro"
- Define reglas - "Agrega una regla que requiera que los servicios tengan un propietario de equipo para alcanzar el nivel Plata"
- Configura puertas de calidad - "Crea una regla que verifique si los servicios tienen documentación adecuada"
Gestiona Permisos y RBAC
- Obtén permisos de acciones - "¿Cuáles son las configuraciones de permisos actuales para esta acción?"
- Actualiza políticas de acciones - "Configura flujos de aprobación para la acción de despliegue"
- Configura permisos dinámicos - "Configura control de acceso basado en equipos para esta acción"
Estamos expandiendo continuamente las capacidades de Port MCP. ¿Tienes una sugerencia? ¡Nos encantaría escuchar tus comentarios en nuestra hoja de ruta!
Instalación
Requisitos Previos
Antes de comenzar, necesitarás:
-
Crear una Cuenta de Port (si no tienes una):
- Visita Port.io
- Regístrate para obtener una cuenta
-
Obtener Credenciales de Port:
- Navega a tu panel de control de Port
- Ve a Configuración > Credenciales
- Guarda tanto el ID de Cliente como el Secreto de Cliente
-
Requisitos de Instalación:
[!NOTE] También necesitarás proporcionar tu región de Port, que es EU o US. Si no se proporciona, el valor predeterminado es EU.
Métodos de Instalación
Port MCP Server se puede instalar usando dos métodos:
Instalación de Paquete (uvx)
Usa nuestro paquete oficial de Port MCP server con uvx para una instalación y gestión fáciles.
Guía de Instalación Paso a Paso
-
Crea un Entorno Virtual de Python (Recomendado)
python -m venv venv -
Activa el Entorno Virtual
# On Linux/macOS: source venv/bin/activate # On Windows: venv\Scripts\activate -
Instala el Gestor de Paquetes UV
# Using Homebrew (macOS/Linux): brew install uv # Or using pip: pip install uv -
Verifica la Instalación de UV
which uv -
Configura las Variables de Entorno Requeridas
export PORT_CLIENT_ID="your_port_client_id" export PORT_CLIENT_SECRET="your_port_client_secret" export PORT_REGION="EU" # or "US" -
Configura la Ruta de Python (si usas entorno virtual)
export PYTHONPATH="/path/to/your/venv/bin/python" -
Ejecuta el Servidor MCP
uvx mcp-server-port --client-id your_port_client_id --client-secret your_port_client_secret --region EU --log-level DEBUG -
Verifica que el Servidor esté Ejecutándose Deberías comenzar a ver registros del servidor. También puedes verificar el archivo de registro:
cat /tmp/port-mcp.log
Instalación con Docker
Usa nuestra imagen oficial de Docker:
docker pull ghcr.io/port-labs/port-mcp-server:latest
Consulta a continuación las instrucciones detalladas para cada cliente MCP.
Configuraciones Adicionales
Puedes pasar estos argumentos adicionales para una configuración más avanzada:
| Parámetro de Configuración | Flag de UVX | Variable de Entorno de Docker | Descripción | Valor Predeterminado |
|---|---|---|---|---|
| Nivel de Registro | log-level | PORT_LOG_LEVEL | Controla el nivel de salida de registros | ERROR |
| Validación de API | api-validation-enabled | PORT_API_VALIDATION_ENABLED | Controla si el esquema de API debe validarse y fallar si no es válido | False |
Uso con Claude Desktop
- Ve a Configuración > Desarrollador y haz clic en "Editar configuración".
- Edita el archivo
claude_desktop_config.jsony agrega la configuración a continuación según el método de instalación. - Guarda el archivo y reinicia Claude.
- En un nuevo chat, revisa la sección de Herramientas y verás las herramientas disponibles de Port.

Docker
[!TIP] Considera usar la ruta completa a Docker (por ejemplo,
/usr/local/bin/docker) en lugar de solodocker. Puedes encontrar esta ruta ejecutandowhich dockeren tu terminal. Usar la ruta completa ayuda a evitar problemas de resolución de PATH y asegura un comportamiento consistente en diferentes entornos de shell.
{
"mcpServers": {
"port": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PORT_CLIENT_ID",
"-e",
"PORT_CLIENT_SECRET",
"-e",
"PORT_REGION",
"-e",
"PORT_LOG_LEVEL",
"ghcr.io/port-labs/port-mcp-server:latest"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>",
"PORT_LOG_LEVEL": "<PORT_LOG_LEVEL>"
}
}
}
}
uvx
[!NOTE] Si deseas ejecutar el comando desde un entorno virtual de Python, agrega una variable
PYTHONPATHal objetoenvcon su ruta, por ejemplo,/path/to/your/venv/bin/python.
{
"mcpServers": {
"Port": {
"command": "uvx",
"args": [
"mcp-server-port@0.2.8",
"--client-id",
"<PORT_CLIENT_ID>",
"--client-secret",
"<PORT_CLIENT_SECRET>",
"--region",
"<PORT_REGION>"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>",
"PYTHONPATH": "/Users/matangrady/.venv-port-mcp/bin/python"
}
}
}
}
Uso con Cursor
- Ve a Cursor > Configuración > Configuración de Cursor.
- Haz clic en la pestaña MCP y en "Agregar nuevo servidor MCP global".
- Edita el archivo
mcp.jsony agrega la configuración a continuación según el método de instalación. - Guarda el archivo y regresa a Configuración de Cursor.
- Verás el nuevo servidor de Port y sus herramientas disponibles.

Docker
[!TIP] Considera usar la ruta completa a Docker (por ejemplo,
/usr/local/bin/docker) en lugar de solodocker. Puedes encontrar esta ruta ejecutandowhich dockeren tu terminal. Usar la ruta completa ayuda a evitar problemas de resolución de PATH y asegura un comportamiento consistente en diferentes entornos de shell.
{
"mcpServers": {
"port": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PORT_CLIENT_ID",
"-e",
"PORT_CLIENT_SECRET",
"-e",
"PORT_REGION",
"-e",
"PORT_LOG_LEVEL",
"ghcr.io/port-labs/port-mcp-server:latest"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>",
"PORT_LOG_LEVEL": "<PORT_LOG_LEVEL>"
}
}
}
}
uvx
[!NOTE] Si deseas ejecutar el comando desde un entorno virtual de Python, agrega una variable
PYTHONPATHal objetoenvcon su ruta, por ejemplo,/path/to/your/venv/bin/python.
{
"mcpServers": {
"Port": {
"command": "uvx",
"args": [
"mcp-server-port@0.2.8",
"--client-id",
"<PORT_CLIENT_ID>",
"--client-secret",
"<PORT_CLIENT_SECRET>",
"--region",
"<PORT_REGION>"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>",
"PYTHONPATH": "/Users/matangrady/.venv-port-mcp/bin/python"
}
}
}
}
Uso con VS Code
[!TIP] VS Code puede descubrir automáticamente servidores MCP ya instalados en Cursor y Claude.
[!NOTE] Para una instalación rápida, usa los botones de instalación con un clic y selecciona dónde agregar la configuración MCP. Asegúrate de reemplazar los marcadores de posición con tus credenciales de Port.
Instalación rápida con Docker Instalación rápida con uvx
Para instalación manual, sigue estos pasos:
- Ve a la Paleta de Comandos presionando
Cmd + Shift + P/Ctrl + Shift + P. - Escribe
Preferences: Open User Settings (JSON)y presiona enter. - Edita el archivo
settings.jsony agrega la configuración a continuación bajomcp>servers. - Usa Copilot en modo Agente, asegúrate de que el servidor esté ejecutándose y ve sus herramientas disponibles de Port.

Docker
[!TIP] Considera usar la ruta completa a Docker (por ejemplo,
/usr/local/bin/docker) en lugar de solodocker. Puedes encontrar esta ruta ejecutandowhich dockeren tu terminal. Usar la ruta completa ayuda a evitar problemas de resolución de PATH y asegura un comportamiento consistente en diferentes entornos de shell.
"Port": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PORT_CLIENT_ID",
"-e",
"PORT_CLIENT_SECRET",
"-e",
"PORT_REGION",
"ghcr.io/port-labs/port-mcp-server:latest"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>"
}
}
uvx
[!NOTE] Si deseas ejecutar el comando desde un entorno virtual de Python, agrega una variable
PYTHONPATHal objetoenvcon su ruta, por ejemplo,/path/to/your/venv/bin/python.
"Port": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-port@0.2.8",
"--client-id",
"<PORT_CLIENT_ID>",
"--client-secret",
"<PORT_CLIENT_SECRET>",
"--region",
"<PORT_REGION>"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>"
}
}
Uso con Neovim (mcphub.nvim)
Para usar Port MCP Server en Neovim, usa el plugin mcphub.nvim con una de las extensiones LLM compatibles, como Avante o CodeCompanion.
Una vez instalado, agrega la configuración del servidor MCP de Port:
- Accede a la configuración de servidores con el comando
:MCPHuby navega a la pestaña Config, o abre el archivo de configuración de servidores directamente, generalmente ubicado en~/.config/mcphub/servers.json. - Agrega la configuración para Port MCP Server bajo la sección
mcpServers(ver a continuación). - Guarda el archivo de configuración.
- Asegúrate de tener las variables de entorno
PORT_CLIENT_IDyPORT_CLIENT_SECRETconfiguradas en tu entorno de Neovim. - Reinicia los servidores abriendo la vista de MCPHub con
:MCPHuby activando el comando de reinicio conR. - Deberías ver el servidor ejecutándose y accesible desde la vista de MCPHub. Para verificar, usa la herramienta
@mcpen tu extensión LLM. Por ejemplo, solicita:@mcp list my blueprints.
Consulta la documentación de mcphub.nvim para más detalles sobre cómo usarlo.
Ejemplo de Configuración de Docker para mcphub.nvim
[!NOTE] Asegúrate de tener las variables de entorno
PORT_CLIENT_IDyPORT_CLIENT_SECRETconfiguradas con tus credenciales de Port.
{
"mcpServers": {
"port": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PORT_CLIENT_ID",
"-e",
"PORT_CLIENT_SECRET",
"-e",
"PORT_REGION",
"ghcr.io/port-labs/port-mcp-server:latest"
],
"env": {
"PORT_REGION": "EU",
"PORT_CLIENT_ID": "",
"PORT_CLIENT_SECRET": ""
}
}
}
}
Ejemplo de Configuración de uvx para mcphub.nvim
[!NOTE] Asegúrate de tener las variables de entorno
PORT_CLIENT_IDyPORT_CLIENT_SECRETconfiguradas con tus credenciales de Port.
{
"mcpServers": {
"port": {
"command": "uvx",
"args": [
"mcp-server-port@0.2.8",
"--client-id",
"PORT_CLIENT_ID",
"--client-secret",
"PORT_CLIENT_SECRET",
"--region",
"PORT_REGION"
],
"env": {
"PORT_CLIENT_ID": "",
"PORT_CLIENT_SECRET": "",
"PORT_REGION": "EU"
}
}
}
}
Herramientas Disponibles
Herramientas de Blueprint
-
get_blueprints- Recupera una lista de todos los blueprints de Port
- Entradas opcionales:
detailed(booleano, predeterminado: false): Devuelve detalles completos del esquema para cada blueprint
- Devuelve: Representación de texto formateado de todos los blueprints disponibles
-
get_blueprint- Recupera información sobre un blueprint específico por su identificador
- Entradas requeridas:
blueprint_identifier(cadena): El identificador único del blueprint a recuperar
- Entradas opcionales:
detailed(booleano, predeterminado: true): Devuelve detalles completos del esquema
-
create_blueprint- Crea un nuevo blueprint en Port
- Entradas requeridas:
- Varios campos incluyendo identificador, título, propiedades, etc.
- Devuelve: El objeto blueprint creado
-
update_blueprint- Actualiza un blueprint existente
- Entradas requeridas:
identifier(cadena): El identificador único del blueprint a actualizar- Varios campos a actualizar
- Devuelve: El objeto blueprint actualizado
-
delete_blueprint- Elimina un blueprint de Port
- Entradas requeridas:
blueprint_identifier(cadena): El identificador único del blueprint a eliminar
- Devuelve: Estado de éxito
Herramientas de Entidad
-
get_entities- Recupera todas las entidades para un blueprint dado
- Entradas requeridas:
blueprint_identifier(cadena): El identificador del blueprint para obtener entidades
- Entradas opcionales:
detailed(booleano, predeterminado: false): Devuelve detalles completos de la entidad incluyendo propiedades
-
get_entity- Recupera información sobre una entidad específica
- Entradas requeridas:
blueprint_identifier(cadena): El identificador del blueprint al que pertenece la entidadentity_identifier(cadena): El identificador único de la entidad a recuperar
- Entradas opcionales:
detailed(booleano, predeterminado: true): Devuelve detalles completos de la entidad
-
create_entity- Crea una nueva entidad para un blueprint específico
- Entradas requeridas:
blueprint_identifier(cadena): El identificador del blueprint para crear la entidadentity(objeto): Los datos de la entidad siguiendo el esquema del blueprint
-
update_entity- Actualiza una entidad existente
- Entradas requeridas:
blueprint_identifier(cadena): El identificador del blueprint al que pertenece la entidadentity_identifier(cadena): El identificador único de la entidad a actualizarentity(objeto): Los datos actualizados de la entidad
-
delete_entity- Elimina una entidad
- Entradas requeridas:
blueprint_identifier(cadena): El identificador del blueprint al que pertenece la entidadentity_identifier(cadena): El identificador único de la entidad a eliminar
- Entradas opcionales:
delete_dependents(booleano, predeterminado: false): Si es true, también elimina todas las dependencias
Herramientas de Scorecard
-
get_scorecards- Recupera todas las scorecards de Port
- Entradas opcionales:
detailed(booleano, predeterminado: false): Devuelve detalles completos de la scorecard
-
get_scorecard- Recupera información sobre un scorecard específico mediante su identificador
- Entradas requeridas:
scorecard_id(string): El identificador único del scorecard a recuperarblueprint_id(string, opcional): El identificador del blueprint al que pertenece el scorecard
-
create_scorecard- Crea un nuevo scorecard para un blueprint específico
- Entradas requeridas:
blueprint_id(string): El identificador del blueprint para el cual crear el scorecardidentifier(string): El identificador único para el nuevo scorecardtitle(string): El título visible del scorecardlevels(list): Lista de niveles para el scorecard
- Entradas opcionales:
rules(list): Lista de reglas para el scorecarddescription(string): Descripción del scorecard
-
update_scorecard- Actualiza un scorecard existente
- Entradas requeridas:
blueprint_identifier(string): El identificador del blueprint al que pertenece el scorecardscorecard_identifier(string): El identificador único del scorecard a actualizar- Varios campos para actualizar (título, niveles, reglas, etc.)
- Devuelve: El objeto del scorecard actualizado
-
delete_scorecard- Elimina un scorecard de Port
- Entradas requeridas:
blueprint_identifier(string): El identificador del blueprint al que pertenece el scorecardscorecard_identifier(string): El identificador único del scorecard a eliminar
- Devuelve: Estado de éxito
Herramienta de Agentes de IA
invoke_ai_agent- Invoca un agente de IA de Port con un prompt específico
- Entradas requeridas:
prompt(string): El prompt a enviar al agente de IA
- Devuelve: Estado de invocación y mensaje del agente de IA
Desarrollo Local
Para desarrollar y probar nuevas funcionalidades localmente antes de publicar una nueva versión, puedes configurar tu cliente MCP (por ejemplo, Cursor) para que use tu repositorio clonado local.
Requisitos Previos
- Clonar el repositorio: Si aún no lo has hecho, clona el repositorio
port-mcp-serveren tu máquina local. - Configurar el entorno:
- Navega al directorio raíz del repositorio clonado.
- Ejecuta
make install. Este comando debería configurar un entorno virtual (venv) e instalar todas las dependencias necesarias. - Asegúrate de que el entorno virtual esté creado (generalmente en un directorio
.venvdentro del repositorio).
Ejemplo de Configuración
A continuación se muestra un ejemplo de cómo podrías configurar tu servidor de desarrollo local. Deberás reemplazar las rutas de marcador de posición con las rutas reales de tu sistema.
Importante:
- El
commanddebe apuntar al ejecutable de Python dentro del entorno virtual de tu repositorio local. - El
PYTHONPATHen el objetoenvdebe apuntar al directorio raíz de tu repositorio clonado.
{
"mcpServers": {
"port_local": {
"command": "/path/to/your/port-mcp-server/.venv/bin/python", // Replace with the actual path to the venv Python
"args": [
"-m",
"src",
"--client-id",
"<YOUR_PORT_CLIENT_ID>",
"--client-secret",
"<YOUR_PORT_CLIENT_SECRET>",
"--region",
"<YOUR_PORT_REGION>", // e.g., EU or US
"--log-level",
"DEBUG" // Or your preferred log level
],
"env": {
"PORT_CLIENT_ID": "<YOUR_PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<YOUR_PORT_CLIENT_SECRET>",
"PORT_REGION": "<YOUR_PORT_REGION>",
"PORT_LOG_LEVEL": "DEBUG",
"PYTHONPATH": "/path/to/your/port-mcp-server" // Replace with the actual path to your repository
}
}
}
}
Después de configurar esto, tu cliente MCP usará tu versión local del servidor, lo que te permitirá probar cambios desde tu rama actual.
Comentarios y Hoja de Ruta
Estamos mejorando continuamente Port MCP y ¡nos encantaría saber de ti! Comparte tus comentarios y solicitudes de funciones en nuestra página de hoja de ruta.
Solución de Problemas
Si encuentras errores de autenticación, verifica que:
- Tus credenciales de Port estén configuradas correctamente en los argumentos.
- Tengas los permisos necesarios.
- Las credenciales estén copiadas correctamente en tu configuración.
Licencia
Este servidor MCP está licenciado bajo la Licencia MIT. Esto significa que eres libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT.