模型上下文协议服务器

Port MCP服务器是一个模型上下文协议(MCP)服务器,为开发者和AI应用提供高级自动化和自然语言交互功能,适用于快速信息查询、资源创建和权限管理。

  • by port-labs
  • Python
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 port-experimental/port-mcp-server

使用说明

⚠️ 此存储库不再维护

[!警告] 此存储库已被弃用,不再积极维护或支持。 不会提供进一步的更新、错误修复或安全补丁。

迁移到端口的远程MCP服务器

我们强烈建议所有用户迁移到 端口的远程MCP服务器,这是积极维护和支持的解决方案。

远程MCP服务器提供了由端口团队支持的全功能奇偶校验和持续改进。


端口MCP服务器

这 端口IO MCP服务器是 模型上下文协议(MCP) 服务器,为开发人员和人工智能应用程序实现高级自动化和自然语言交互。

如何使用MCP端口

快速查找信息

  • 获取实体详细信息 -“服务X的所有者是谁?”
  • 查看通话状态 -“现在谁在待命?”
  • 获取目录洞察 -“我们在生产中有多少服务?”

分析记分卡

  • 识别弱点 -“哪些服务未能达到黄金水平,为什么?”
  • 获取合规状态 -“显示所有不符合我们安全要求的服务”
  • 提高质量 -“我需要修复什么才能达到下一个记分卡级别?”

创建资源

  • 建立记分卡 -“创建一个名为“安全态势”的新记分卡,分为基本、白银和黄金级别”
  • 定义规则 -“添加一条规则,要求服务有一个团队所有者才能达到银牌级别”
  • 设置质量门 -“创建一个规则,检查服务是否有适当的文档”

管理权限和RBAC

  • 获取操作权限 -“此操作的当前权限设置是什么?”
  • 更新行动策略 -“为部署操作配置审批工作流”
  • 配置动态权限 -“为此操作设置基于团队的访问控制”

我们正在不断扩展Port MCP的功能。有什么建议吗?我们很乐意听取您对我们的 路线图!

安装

先决条件

在开始之前,您需要:

  1. 创建端口帐户(如果您没有):

    • 访问 Port.io
    • 注册一个账户
  2. 获取端口凭据:

    • 导航到您的Port仪表板
    • 前往“设置”>“凭据”
    • 保存客户端ID和客户端密码
  3. 安装要求:

    • 要么 码头工人 安装在您的系统上
    • 或 uvx 已安装包管理器

[!注意] 您还需要提供您的港口地区,即欧盟或美国。如果没有提供,默认为欧盟。

安装方法

端口MCP服务器可以使用两种方法安装:

包装安装(uvx)

使用我们的官方 端口MCP服务器 带有uvx的软件包,便于安装和管理。

分步安装指南

  1. 创建Python虚拟环境 (推荐)

    python -m venv venv
    
  2. 激活虚拟环境

    # On Linux/macOS:
    source venv/bin/activate
    
    # On Windows:
    venv\Scripts\activate
    
  3. 安装UV包管理器

    # Using Homebrew (macOS/Linux):
    brew install uv
    
    # Or using pip:
    pip install uv
    
  4. 验证UV安装

    which uv
    
  5. 设置所需的环境变量

    export PORT_CLIENT_ID="your_port_client_id"
    export PORT_CLIENT_SECRET="your_port_client_secret"
    export PORT_REGION="EU"  # or "US"
    
  6. 设置Python路径 (如果使用虚拟环境)

    export PYTHONPATH="/path/to/your/venv/bin/python"
    
  7. 运行MCP服务器

    uvx mcp-server-port --client-id your_port_client_id --client-secret your_port_client_secret --region EU --log-level DEBUG
    
  8. 验证服务器是否正在运行 您应该开始看到服务器的日志。您还可以查看日志文件:

    cat /tmp/port-mcp.log
    

Docker安装

使用我们的官方Docker镜像:

docker pull ghcr.io/port-labs/port-mcp-server:latest

有关每个MCP客户端的详细说明,请参阅下文。

其他配置

您可以传递以下附加参数以进行更高级的配置:

配置参数 UVX标志 Docker环境变量 说明 默认值
日志级别 log-level PORT_LOG_LEVEL 控制日志输出的级别 ERROR
API验证 api-validation-enabled PORT_API_VALIDATION_ENABLED 控制是否应验证API架构,如果该架构无效则失败 False

使用Claude Desktop

  1. 转到“设置”>“开发人员”,然后单击“编辑配置”。
  2. 编辑 claude_desktop_config.json 文件,并根据安装方法添加以下配置。
  3. 保存文件并重新启动Claude。
  4. 在新聊天中,查看工具部分,您将看到端口可用工具。

码头工人

[!提示] 考虑使用Docker的完整路径(例如。, /usr/local/bin/docker)而不是仅仅 docker。你可以通过跑步找到这条路 which docker 在你的终端。使用完整路径有助于避免path解析问题,并确保不同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

[!注意] 如果你想在虚拟Python环境中运行该命令,请添加 PYTHONPATH 变量到 env 对象及其路径。, /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"
          }
      }
  }
}

使用游标

  1. 转到光标>设置>光标设置。
  2. 单击MCP选项卡,然后“添加新的全局MCP服务器”。
  3. 编辑 mcp.json 文件,并根据安装方法添加以下配置。
  4. 保存文件并返回光标设置。
  5. 您将看到新的端口服务器及其可用工具。

码头工人

[!提示] 考虑使用Docker的完整路径(例如。, /usr/local/bin/docker)而不是仅仅 docker。你可以通过跑步找到这条路 which docker 在你的终端。使用完整路径有助于避免path解析问题,并确保不同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

[!注意] 如果你想在虚拟Python环境中运行该命令,请添加 PYTHONPATH 变量到 env 对象及其路径。, /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"
          }
      }
  }
}

使用VS代码

[!提示] VS Code可以自动发现已安装在Cursor和Claude中的MCP服务器。

[!注意] 为了快速安装,请使用一键安装按钮并选择添加MCP配置的位置。确保用您的端口凭据替换占位符。

Docker快速安装 uvx快速安装

对于手动安装,请执行以下步骤:

  1. 按转到命令选项板 Cmd + Shift + P / Ctrl + Shift + P.
  2. 类型 Preferences: Open User Settings (JSON) 然后按enter键。
  3. 编辑 settings.json 文件并在下面添加以下配置 mcp>servers.
  4. 在代理模式下使用Copilot,确保服务器正在运行,并查看其可用的端口工具。

码头工人

[!提示] 考虑使用Docker的完整路径(例如。, /usr/local/bin/docker)而不是仅仅 docker。你可以通过跑步找到这条路 which docker 在你的终端。使用完整路径有助于避免path解析问题,并确保不同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

[!注意] 如果你想在虚拟Python环境中运行该命令,请添加 PYTHONPATH 变量到 env 对象及其路径。, /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>"
      }
  }

使用Neovim(mcphub.nvim)

要在Neovim中使用端口MCP服务器,请使用插件 麦克弗布恩维姆 使用受支持的LLM扩展之一,例如 下一页 或 CodeCompanion.

安装后,添加端口的MCP服务器配置:

  1. 使用命令访问服务器配置 :MCPHub 并导航到Config选项卡,或直接打开服务器配置文件,通常位于 ~/.config/mcphub/servers.json.
  2. 在下面添加端口MCP服务器的配置 mcpServers 部分(见下文)。
  3. 保存配置文件。
  4. 确保你有环境变量 PORT_CLIENT_ID 和 PORT_CLIENT_SECRET 在Neovim环境中设置。
  5. 通过打开MCPHub视图重新启动服务器 :MCPHub 并通过以下方式触发重启命令 R.
  6. 您应该看到服务器正在运行,并且可以从MCPHub视图访问。要验证,请使用 @mcp LLM扩展中的工具。例如,提示: @mcp list my blueprints.

检查 mcphub.nvm文件 有关如何使用它的更多详细信息。

Docker配置示例 mcphub.nvim

[!注意] 确保你有环境变量 PORT_CLIENT_ID 和 PORT_CLIENT_SECRET 使用您的端口凭据设置。

{
    "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": ""
            }
        }
    }
}

uvx 配置示例 mcphub.nvim

[!注意] 确保你有环境变量 PORT_CLIENT_ID 和 PORT_CLIENT_SECRET 使用您的端口凭据设置。

{
    "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"
            }
        }
    }
}

可用工具

蓝图工具

  1. get_blueprints

    • 从Port检索所有蓝图的列表
    • 可选输入:
      • detailed (boolean,默认值:false):返回每个蓝图的完整架构详细信息
    • 返回:所有可用蓝图的格式化文本表示
  2. get_blueprint

    • 通过标识符检索特定蓝图的信息
    • 所需输入:
      • blueprint_identifier (string):要检索的蓝图的唯一标识符
    • 可选输入:
      • detailed (boolean,默认值:true):返回完整的架构详细信息
  3. create_blueprint

    • 在Port创建新蓝图
    • 所需输入:
      • 各种字段,包括标识符、标题、属性等。
    • 返回:创建的蓝图对象
  4. update_blueprint

    • 更新现有蓝图
    • 所需输入:
      • identifier (string):要更新的蓝图的唯一标识符
      • 要更新的各个字段
    • 返回:更新的蓝图对象
  5. delete_blueprint

    • 从端口删除蓝图
    • 所需输入:
      • blueprint_identifier (string):要删除的蓝图的唯一标识符
    • 返回:成功状态

实体工具

  1. get_entities

    • 检索给定蓝图的所有实体
    • 所需输入:
      • blueprint_identifier (string):获取实体的蓝图的标识符
    • 可选输入:
      • detailed (boolean,默认值:false):返回完整的实体详细信息,包括属性
  2. get_entity

    • 检索特定实体的信息
    • 所需输入:
      • blueprint_identifier (string):实体所属蓝图的标识符
      • entity_identifier (string):要检索的实体的唯一标识符
    • 可选输入:
      • detailed (boolean,默认值:true):返回完整的实体详细信息
  3. create_entity

    • 为特定蓝图创建新实体
    • 所需输入:
      • blueprint_identifier (string):创建实体的蓝图的标识符
      • entity (object):遵循蓝图模式的实体数据
  4. update_entity

    • 更新现有实体
    • 所需输入:
      • blueprint_identifier (string):实体所属蓝图的标识符
      • entity_identifier (string):要更新的实体的唯一标识符
      • entity (object):更新的实体数据
  5. delete_entity

    • 删除实体
    • 所需输入:
      • blueprint_identifier (string):实体所属蓝图的标识符
      • entity_identifier (string):要删除的实体的唯一标识符
    • 可选输入:
      • delete_dependents (boolean,默认值:false):如果为true,也会删除所有依赖项

记分卡工具

  1. get_scorecards

    • 从港口检索所有记分卡
    • 可选输入:
      • detailed (boolean,默认值:false):返回完整的记分卡详细信息
  2. get_scorecard

    • 通过标识符检索特定记分卡的信息
    • 所需输入:
      • scorecard_id (string):要检索的记分卡的唯一标识符
      • blueprint_id (string,可选):记分卡所属蓝图的标识符
  3. create_scorecard

    • 为特定蓝图创建新的记分卡
    • 所需输入:
      • blueprint_id (string):创建记分卡的蓝图的标识符
      • identifier (string):新记分卡的唯一标识符
      • title (string):记分卡的显示标题
      • levels (列表):记分卡级别列表
    • 可选输入:
      • rules (列表):记分卡规则列表
      • description (string):记分卡说明
  4. update_scorecard

    • 更新现有记分卡
    • 所需输入:
      • blueprint_identifier (string):记分卡所属蓝图的标识符
      • scorecard_identifier (string):要更新的记分卡的唯一标识符
      • 要更新的各种字段(标题、级别、规则等)
    • 返回:更新的记分卡对象
  5. delete_scorecard

    • 从端口删除记分卡
    • 所需输入:
      • blueprint_identifier (string):记分卡所属蓝图的标识符
      • scorecard_identifier (string):要删除的记分卡的唯一标识符
    • 返回:成功状态

AI代理工具

  1. invoke_ai_agent
    • 使用特定提示调用Port AI代理
    • 所需输入:
      • prompt (string):发送给AI代理的提示
    • 返回:来自AI代理的调用状态和消息

本地开发

为了在发布新版本之前在本地开发和测试新功能,您可以将MCP客户端(例如Cursor)配置为使用本地克隆存储库。

先决条件

  1. 克隆存储库:如果你还没有,克隆 port-mcp-server 存储库到本地计算机。
  2. 设置环境:
    • 导航到克隆存储库的根目录。
    • 跑 make install。此命令应设置虚拟环境(venv)并安装所有必要的依赖项。
    • 确保创建虚拟环境(通常在 .venv 存储库中的目录)。

配置示例

下面是一个如何配置本地开发服务器的示例。您需要将占位符路径替换为系统上的实际路径。

重要提示:

  • 这 command 应该指向本地存储库虚拟环境中的Python可执行文件。
  • 这 PYTHONPATH 在 env 对象应指向克隆存储库的根目录。
{
  "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
      }
    }
  }
}

设置此设置后,您的MCP客户端将使用您的本地版本的服务器,允许您测试当前分支的更改。

反馈和路线图

我们正在不断改进MCP端口,很乐意收到您的来信!请在我们的 路线图页面.

故障排除

如果遇到身份验证错误,请验证:

  1. 您的端口凭据在参数中设置正确。
  2. 您拥有必要的权限。
  3. 凭据已正确复制到您的配置中。

许可证

此MCP服务器根据MIT许可证获得许可。这意味着您可以自由使用、修改和分发软件,但须遵守 MIT许可证.