Port MCP Server
Um servidor MCP para Port.io que possibilita automações avançadas e interações em linguagem natural para desenvolvedores e aplicações de IA.
Documentação
⚠️ Este Repositório Não é Mais Mantido
[!WARNING] Este repositório foi descontinuado e não é mais mantido ou suportado ativamente. Nenhuma atualização adicional, correção de bugs ou patches de segurança serão fornecidos.
Migre para o Port's Remote MCP Server
Recomendamos fortemente que todos os usuários migrem para o Port's Remote MCP Server, que é a solução ativamente mantida e suportada.
O Remote MCP Server oferece paridade total de recursos e melhorias contínuas apoiadas pela equipe da Port.
Port MCP Server
O servidor MCP da Port IO é um servidor Model Context Protocol (MCP), permitindo automações avançadas e interações em linguagem natural para desenvolvedores e aplicações de IA.
O Que Você Pode Fazer Com o Port MCP
Encontre Informações Rapidamente
- Obtenha detalhes de entidades - "Quem é o proprietário do serviço X?"
- Verifique o status de plantão - "Quem está de plantão agora?"
- Obtenha insights do catálogo - "Quantos serviços temos em produção?"
Analise Scorecards
- Identifique pontos fracos - "Quais serviços estão falhando no nível ouro e por quê?"
- Obtenha status de conformidade - "Mostre-me todos os serviços que não atendem aos nossos requisitos de segurança"
- Melhore a qualidade - "O que preciso corrigir para alcançar o próximo nível do scorecard?"
Crie Recursos
- Construa scorecards - "Crie um novo scorecard chamado 'Postura de Segurança' com níveis Básico, Prata e Ouro"
- Defina regras - "Adicione uma regra que exija que os serviços tenham um proprietário de equipe para alcançar o nível Prata"
- Configure portões de qualidade - "Crie uma regra que verifique se os serviços têm documentação adequada"
Gerencie Permissões e RBAC
- Busque permissões de ações - "Quais são as configurações de permissão atuais para esta ação?"
- Atualize políticas de ações - "Configure fluxos de aprovação para a ação de implantação"
- Configure permissões dinâmicas - "Configure controle de acesso baseado em equipe para esta ação"
Estamos continuamente expandindo as capacidades do Port MCP. Tem uma sugestão? Adoraríamos ouvir seu feedback em nosso roadmap!
Instalação
Pré-requisitos
Antes de começar, você precisará de:
-
Criar uma Conta Port (se você não tiver uma):
- Visite Port.io
- Cadastre-se para uma conta
-
Obter Credenciais Port:
- Navegue até seu painel Port
- Vá para Configurações > Credenciais
- Salve tanto o Client ID quanto o Client Secret
-
Requisitos de Instalação:
[!NOTE] Você também precisará fornecer sua região Port, que é EU ou US. Se não for fornecida, o padrão é EU.
Métodos de instalação
O Port MCP Server pode ser instalado usando dois métodos:
Instalação via Pacote (uvx)
Use nosso pacote oficial Port MCP server com uvx para instalação e gerenciamento fáceis.
Guia de Instalação Passo a Passo
-
Crie um Ambiente Virtual Python (Recomendado)
python -m venv venv -
Ative o Ambiente Virtual
# On Linux/macOS: source venv/bin/activate # On Windows: venv\Scripts\activate -
Instale o Gerenciador de Pacotes UV
# Using Homebrew (macOS/Linux): brew install uv # Or using pip: pip install uv -
Verifique a Instalação do UV
which uv -
Defina as Variáveis de Ambiente Necessárias
export PORT_CLIENT_ID="your_port_client_id" export PORT_CLIENT_SECRET="your_port_client_secret" export PORT_REGION="EU" # or "US" -
Defina o Caminho do Python (se estiver usando ambiente virtual)
export PYTHONPATH="/path/to/your/venv/bin/python" -
Execute o MCP Server
uvx mcp-server-port --client-id your_port_client_id --client-secret your_port_client_secret --region EU --log-level DEBUG -
Verifique se o Servidor Está em Execução Você deve começar a ver logs do servidor. Você também pode verificar o arquivo de log:
cat /tmp/port-mcp.log
Instalação via Docker
Use nossa imagem Docker oficial:
docker pull ghcr.io/port-labs/port-mcp-server:latest
Veja abaixo instruções detalhadas para cada cliente MCP.
Configurações adicionais
Você pode passar estes argumentos adicionais para configuração mais avançada:
| Parâmetro de Configuração | Flag UVX | Variável de Ambiente Docker | Descrição | Valor Padrão |
|---|---|---|---|---|
| Nível de Log | log-level | PORT_LOG_LEVEL | Controla o nível de saída de log | ERROR |
| Validação de API | api-validation-enabled | PORT_API_VALIDATION_ENABLED | Controla se o esquema da API deve ser validado e falhar se não for válido | False |
Uso com Claude Desktop
- Vá para Configurações > Desenvolvedor e clique em "Editar config".
- Edite o arquivo
claude_desktop_config.jsone adicione a configuração abaixo com base no método de instalação. - Salve o arquivo e reinicie o Claude.
- Em um novo chat, verifique a seção Ferramentas e você verá as ferramentas disponíveis do Port.

Docker
[!TIP] Considere usar o caminho completo para o Docker (por exemplo,
/usr/local/bin/docker) em vez de apenasdocker. Você pode encontrar este caminho executandowhich dockerno seu terminal. Usar o caminho completo ajuda a evitar problemas de resolução de PATH e garante comportamento consistente em diferentes ambientes 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] Se você quiser executar o comando a partir de um ambiente virtual Python, adicione uma variável
PYTHONPATHao objetoenvcom seu caminho, por exemplo,/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 com Cursor
- Vá para Cursor > Configurações > Configurações do Cursor.
- Clique na aba MCP e em "Adicionar novo servidor MCP global".
- Edite o arquivo
mcp.jsone adicione a configuração abaixo com base no método de instalação. - Salve o arquivo e retorne às Configurações do Cursor.
- Você verá o novo servidor Port e suas ferramentas disponíveis.

Docker
[!TIP] Considere usar o caminho completo para o Docker (por exemplo,
/usr/local/bin/docker) em vez de apenasdocker. Você pode encontrar este caminho executandowhich dockerno seu terminal. Usar o caminho completo ajuda a evitar problemas de resolução de PATH e garante comportamento consistente em diferentes ambientes 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] Se você quiser executar o comando a partir de um ambiente virtual Python, adicione uma variável
PYTHONPATHao objetoenvcom seu caminho, por exemplo,/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 com VS Code
[!TIP] O VS Code pode descobrir automaticamente servidores MCP já instalados no Cursor e no Claude.
[!NOTE] Para instalação rápida, use os botões de instalação com um clique e selecione onde adicionar a configuração MCP. Certifique-se de substituir os placeholders pelas suas credenciais Port.
Instalação rápida Docker Instalação rápida uvx
Para instalação manual, siga estes passos:
- Vá para a Paleta de Comandos pressionando
Cmd + Shift + P/Ctrl + Shift + P. - Digite
Preferences: Open User Settings (JSON)e pressione enter. - Edite o arquivo
settings.jsone adicione a configuração abaixo sobmcp>servers. - Use o Copilot no modo Agente, certifique-se de que o servidor está em execução e veja suas ferramentas Port disponíveis.

Docker
[!TIP] Considere usar o caminho completo para o Docker (por exemplo,
/usr/local/bin/docker) em vez de apenasdocker. Você pode encontrar este caminho executandowhich dockerno seu terminal. Usar o caminho completo ajuda a evitar problemas de resolução de PATH e garante comportamento consistente em diferentes ambientes 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] Se você quiser executar o comando a partir de um ambiente virtual Python, adicione uma variável
PYTHONPATHao objetoenvcom seu caminho, por exemplo,/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 com Neovim (mcphub.nvim)
Para usar o Port MCP Server no Neovim, use o plugin mcphub.nvim com uma das extensões LLM suportadas, como Avante ou CodeCompanion.
Uma vez instalado, adicione a configuração do servidor MCP do Port:
- Acesse a configuração dos servidores com o comando
:MCPHube navegue até a aba Config, ou abra o arquivo de configuração dos servidores diretamente, geralmente localizado em~/.config/mcphub/servers.json. - Adicione a configuração do Port MCP Server sob a seção
mcpServers(veja abaixo). - Salve o arquivo de configuração.
- Certifique-se de ter as variáveis de ambiente
PORT_CLIENT_IDePORT_CLIENT_SECRETdefinidas no seu ambiente Neovim. - Reinicie os servidores abrindo a visualização MCPHub com
:MCPHube acionando o comando de reinicialização comR. - Você deve ver o servidor em execução e acessível a partir da visualização MCPHub. Para verificar, use a ferramenta
@mcpna sua extensão LLM. Por exemplo, prompt:@mcp list my blueprints.
Consulte a documentação do mcphub.nvim para mais detalhes sobre como usá-lo.
Exemplo de Configuração Docker para mcphub.nvim
[!NOTE] Certifique-se de ter as variáveis de ambiente
PORT_CLIENT_IDePORT_CLIENT_SECRETdefinidas com suas credenciais 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": ""
}
}
}
}
Exemplo de Configuração uvx para mcphub.nvim
[!NOTE] Certifique-se de ter as variáveis de ambiente
PORT_CLIENT_IDePORT_CLIENT_SECRETdefinidas com suas credenciais 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"
}
}
}
}
Ferramentas Disponíveis
Ferramentas de Blueprint
-
get_blueprints- Recupere uma lista de todos os blueprints do Port
- Entradas opcionais:
detailed(booleano, padrão: false): Retorna detalhes completos do esquema para cada blueprint
- Retorna: Representação em texto formatado de todos os blueprints disponíveis
-
get_blueprint- Recupere informações sobre um blueprint específico pelo seu identificador
- Entradas obrigatórias:
blueprint_identifier(string): O identificador único do blueprint a ser recuperado
- Entradas opcionais:
detailed(booleano, padrão: true): Retorna detalhes completos do esquema
-
create_blueprint- Crie um novo blueprint no Port
- Entradas obrigatórias:
- Vários campos incluindo identificador, título, propriedades, etc.
- Retorna: O objeto blueprint criado
-
update_blueprint- Atualize um blueprint existente
- Entradas obrigatórias:
identifier(string): O identificador único do blueprint a ser atualizado- Vários campos para atualizar
- Retorna: O objeto blueprint atualizado
-
delete_blueprint- Exclua um blueprint do Port
- Entradas obrigatórias:
blueprint_identifier(string): O identificador único do blueprint a ser excluído
- Retorna: Status de sucesso
Ferramentas de Entidade
-
get_entities- Recupere todas as entidades para um determinado blueprint
- Entradas obrigatórias:
blueprint_identifier(string): O identificador do blueprint para obter entidades
- Entradas opcionais:
detailed(booleano, padrão: false): Retorna detalhes completos da entidade incluindo propriedades
-
get_entity- Recupere informações sobre uma entidade específica
- Entradas obrigatórias:
blueprint_identifier(string): O identificador do blueprint ao qual a entidade pertenceentity_identifier(string): O identificador único da entidade a ser recuperada
- Entradas opcionais:
detailed(booleano, padrão: true): Retorna detalhes completos da entidade
-
create_entity- Crie uma nova entidade para um blueprint específico
- Entradas obrigatórias:
blueprint_identifier(string): O identificador do blueprint para criar a entidadeentity(objeto): Os dados da entidade seguindo o esquema do blueprint
-
update_entity- Atualize uma entidade existente
- Entradas obrigatórias:
blueprint_identifier(string): O identificador do blueprint ao qual a entidade pertenceentity_identifier(string): O identificador único da entidade a ser atualizadaentity(objeto): Os dados atualizados da entidade
-
delete_entity- Exclua uma entidade
- Entradas obrigatórias:
blueprint_identifier(string): O identificador do blueprint ao qual a entidade pertenceentity_identifier(string): O identificador único da entidade a ser excluída
- Entradas opcionais:
delete_dependents(booleano, padrão: false): Se true, também exclui todas as dependências
Ferramentas de Scorecard
-
get_scorecards- Recupere todos os scorecards do Port
- Entradas opcionais:
detailed(booleano, padrão: false): Retorna detalhes completos do scorecard
-
get_scorecard- Recuperar informações sobre um scorecard específico pelo seu identificador
- Entradas obrigatórias:
scorecard_id(string): O identificador único do scorecard a ser recuperadoblueprint_id(string, opcional): O identificador do blueprint ao qual o scorecard pertence
-
create_scorecard- Criar um novo scorecard para um blueprint específico
- Entradas obrigatórias:
blueprint_id(string): O identificador do blueprint para o qual criar o scorecardidentifier(string): O identificador único do novo scorecardtitle(string): O título de exibição do scorecardlevels(lista): Lista de níveis do scorecard
- Entradas opcionais:
rules(lista): Lista de regras do scorecarddescription(string): Descrição do scorecard
-
update_scorecard- Atualizar um scorecard existente
- Entradas obrigatórias:
blueprint_identifier(string): O identificador do blueprint ao qual o scorecard pertencescorecard_identifier(string): O identificador único do scorecard a ser atualizado- Vários campos para atualizar (título, níveis, regras, etc.)
- Retorna: O objeto scorecard atualizado
-
delete_scorecard- Excluir um scorecard do Port
- Entradas obrigatórias:
blueprint_identifier(string): O identificador do blueprint ao qual o scorecard pertencescorecard_identifier(string): O identificador único do scorecard a ser excluído
- Retorna: Status de sucesso
Ferramenta de Agentes de IA
invoke_ai_agent- Invocar um agente de IA do Port com um prompt específico
- Entradas obrigatórias:
prompt(string): O prompt a ser enviado ao agente de IA
- Retorna: Status da invocação e mensagem do agente de IA
Desenvolvimento Local
Para desenvolver e testar novas funcionalidades localmente antes de publicar uma nova versão, você pode configurar seu cliente MCP (por exemplo, Cursor) para usar seu repositório clonado local.
Pré-requisitos
- Clone o repositório: Se você ainda não o fez, clone o repositório
port-mcp-serverpara sua máquina local. - Configure o ambiente:
- Navegue até o diretório raiz do repositório clonado.
- Execute
make install. Este comando deve configurar um ambiente virtual (venv) e instalar todas as dependências necessárias. - Certifique-se de que o ambiente virtual foi criado (geralmente em um diretório
.venvdentro do repositório).
Exemplo de Configuração
Abaixo está um exemplo de como você pode configurar seu servidor de desenvolvimento local. Você precisará substituir os caminhos de exemplo pelos caminhos reais do seu sistema.
Importante:
- O
commanddeve apontar para o executável Python dentro do ambiente virtual do seu repositório local. - O
PYTHONPATHno objetoenvdeve apontar para o diretório raiz do seu repositório 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
}
}
}
}
Após configurar isso, seu cliente MCP usará sua versão local do servidor, permitindo que você teste alterações do seu branch atual.
Feedback e Roadmap
Estamos melhorando continuamente o Port MCP e adoraríamos ouvir sua opinião! Compartilhe seus comentários e solicitações de recursos em nossa página de roadmap.
Solução de Problemas
Se você encontrar erros de autenticação, verifique se:
- Suas credenciais do Port estão configuradas corretamente nos argumentos.
- Você tem as permissões necessárias.
- As credenciais foram copiadas corretamente para sua configuração.
Licença
Este servidor MCP é licenciado sob a Licença MIT. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença MIT.