⚠️ 此存储库不再维护
\[!警告\] 此存储库已被弃用,不再积极维护或支持。 不会提供进一步的更新、错误修复或安全补丁。
迁移到端口的远程MCP服务器
我们强烈建议所有用户迁移到 端口的远程MCP服务器,这是积极维护和支持的解决方案。
远程MCP服务器提供了由端口团队支持的全功能奇偶校验和持续改进。
______________________________________________________________________
端口MCP服务器
这 端口IO MCP服务器是 模型上下文协议(MCP) 服务器,为开发人员和人工智能应用程序实现高级自动化和自然语言交互。
如何使用MCP端口
快速查找信息
- 获取实体详细信息 -“服务X的所有者是谁?”
- 查看通话状态 -“现在谁在待命?”
- 获取目录洞察 -“我们在生产中有多少服务?”
分析记分卡
- 识别弱点 -“哪些服务未能达到黄金水平,为什么?”
- 获取合规状态 -“显示所有不符合我们安全要求的服务”
- 提高质量 -“我需要修复什么才能达到下一个记分卡级别?”
创建资源
- 建立记分卡 -“创建一个名为“安全态势”的新记分卡,分为基本、白银和黄金级别”
- 定义规则 -“添加一条规则,要求服务有一个团队所有者才能达到银牌级别”
- 设置质量门 -“创建一个规则,检查服务是否有适当的文档”
管理权限和RBAC
- 获取操作权限 -“此操作的当前权限设置是什么?”
- 更新行动策略 -“为部署操作配置审批工作流”
- 配置动态权限 -“为此操作设置基于团队的访问控制”
我们正在不断扩展Port MCP的功能。有什么建议吗?我们很乐意听取您对我们的 路线图!
安装
先决条件
在开始之前,您需要:
- 创建端口帐户(如果您没有):
- 访问 Port.io - 注册一个账户
- 获取端口凭据:
- 导航到您的Port仪表板 - 前往“设置”>“凭据” - 保存客户端ID和客户端密码
- 安装要求:
- 要么 码头工人 安装在您的系统上 - 或 uvx 已安装包管理器
\[!注意\] 您还需要提供您的港口地区,即欧盟或美国。如果没有提供,默认为欧盟。
安装方法
端口MCP服务器可以使用两种方法安装:
包装安装(uvx)
使用我们的官方 端口MCP服务器 带有uvx的软件包,便于安装和管理。
分步安装指南
- 创建Python虚拟环境 (推荐)
python -m venv venv- 激活虚拟环境
# On Linux/macOS:
source venv/bin/activate
# On Windows:
venv\Scripts\activate- 安装UV包管理器
# Using Homebrew (macOS/Linux):
brew install uv
# Or using pip:
pip install uv- 验证UV安装
which uv- 设置所需的环境变量
export PORT_CLIENT_ID="your_port_client_id"
export PORT_CLIENT_SECRET="your_port_client_secret"
export PORT_REGION="EU" # or "US"- 设置Python路径 (如果使用虚拟环境)
export PYTHONPATH="/path/to/your/venv/bin/python"- 运行MCP服务器
uvx mcp-server-port --client-id your_port_client_id --client-secret your_port_client_secret --region EU --log-level DEBUG- 验证服务器是否正在运行
您应该开始看到服务器的日志。您还可以查看日志文件:
cat /tmp/port-mcp.logDocker安装
使用我们的官方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
- 转到“设置”>“开发人员”,然后单击“编辑配置”。
- 编辑
claude_desktop_config.json文件,并根据安装方法添加以下配置。 - 保存文件并重新启动Claude。
- 在新聊天中,查看工具部分,您将看到端口可用工具。
码头工人
\[!提示\] 考虑使用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_SECRET": "
",
"PORT_REGION": "
",
"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",
"
",
"--client-secret",
"
",
"--region",
"
"
],
"env": {
"PORT_CLIENT_ID": "
",
"PORT_CLIENT_SECRET": "
",
"PORT_REGION": "
",
"PYTHONPATH": "/Users/matangrady/.venv-port-mcp/bin/python"
}
}
}
}使用游标
- 转到光标>设置>光标设置。
- 单击MCP选项卡,然后“添加新的全局MCP服务器”。
- 编辑
mcp.json文件,并根据安装方法添加以下配置。 - 保存文件并返回光标设置。
- 您将看到新的端口服务器及其可用工具。
码头工人
\[!提示\] 考虑使用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_SECRET": "
",
"PORT_REGION": "
",
"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",
"
",
"--client-secret",
"
",
"--region",
"
"
],
"env": {
"PORT_CLIENT_ID": "
",
"PORT_CLIENT_SECRET": "
",
"PORT_REGION": "
",
"PYTHONPATH": "/Users/matangrady/.venv-port-mcp/bin/python"
}
}
}
}使用VS代码
\[!提示\] VS Code可以自动发现已安装在Cursor和Claude中的MCP服务器。
\[!注意\] 为了快速安装,请使用一键安装按钮并选择添加MCP配置的位置。确保用您的端口凭据替换占位符。
对于手动安装,请执行以下步骤:
- 按转到命令选项板
Cmd + Shift + P/Ctrl + Shift + P. - 类型
Preferences: Open User Settings (JSON)然后按enter键。 - 编辑
settings.json文件并在下面添加以下配置mcp>servers. - 在代理模式下使用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_SECRET": "
",
"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",
"
",
"--client-secret",
"
",
"--region",
"
"
],
"env": {
"PORT_CLIENT_ID": "
",
"PORT_CLIENT_SECRET": "
",
"PORT_REGION": "
"
}
}使用Neovim(mcphub.nvim)
安装后,添加端口的MCP服务器配置:
- 使用命令访问服务器配置
:MCPHub并导航到Config选项卡,或直接打开服务器配置文件,通常位于~/.config/mcphub/servers.json. - 在下面添加端口MCP服务器的配置
mcpServers部分(见下文)。 - 保存配置文件。
- 确保你有环境变量
PORT_CLIENT_ID和PORT_CLIENT_SECRET在Neovim环境中设置。 - 通过打开MCPHub视图重新启动服务器
:MCPHub并通过以下方式触发重启命令R. - 您应该看到服务器正在运行,并且可以从MCPHub视图访问。要验证,请使用
@mcpLLM扩展中的工具。例如,提示:@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"
}
}
}
}可用工具
蓝图工具
get_blueprints
- 从Port检索所有蓝图的列表 - 可选输入: - detailed (boolean,默认值:false):返回每个蓝图的完整架构详细信息 - 返回:所有可用蓝图的格式化文本表示
get_blueprint
- 通过标识符检索特定蓝图的信息 - 所需输入: - blueprint_identifier (string):要检索的蓝图的唯一标识符 - 可选输入: - detailed (boolean,默认值:true):返回完整的架构详细信息
create_blueprint
- 在Port创建新蓝图 - 所需输入: - 各种字段,包括标识符、标题、属性等。 - 返回:创建的蓝图对象
update_blueprint
- 更新现有蓝图 - 所需输入: - identifier (string):要更新的蓝图的唯一标识符 - 要更新的各个字段 - 返回:更新的蓝图对象
delete_blueprint
- 从端口删除蓝图 - 所需输入: - blueprint_identifier (string):要删除的蓝图的唯一标识符 - 返回:成功状态
实体工具
get_entities
- 检索给定蓝图的所有实体 - 所需输入: - blueprint_identifier (string):获取实体的蓝图的标识符 - 可选输入: - detailed (boolean,默认值:false):返回完整的实体详细信息,包括属性
get_entity
- 检索特定实体的信息 - 所需输入: - blueprint_identifier (string):实体所属蓝图的标识符 - entity_identifier (string):要检索的实体的唯一标识符 - 可选输入: - detailed (boolean,默认值:true):返回完整的实体详细信息
create_entity
- 为特定蓝图创建新实体 - 所需输入: - blueprint_identifier (string):创建实体的蓝图的标识符 - entity (object):遵循蓝图模式的实体数据
update_entity
- 更新现有实体 - 所需输入: - blueprint_identifier (string):实体所属蓝图的标识符 - entity_identifier (string):要更新的实体的唯一标识符 - entity (object):更新的实体数据
delete_entity
- 删除实体 - 所需输入: - blueprint_identifier (string):实体所属蓝图的标识符 - entity_identifier (string):要删除的实体的唯一标识符 - 可选输入: - delete_dependents (boolean,默认值:false):如果为true,也会删除所有依赖项
记分卡工具
get_scorecards
- 从港口检索所有记分卡 - 可选输入: - detailed (boolean,默认值:false):返回完整的记分卡详细信息
get_scorecard
- 通过标识符检索特定记分卡的信息 - 所需输入: - scorecard_id (string):要检索的记分卡的唯一标识符 - blueprint_id (string,可选):记分卡所属蓝图的标识符
create_scorecard
- 为特定蓝图创建新的记分卡 - 所需输入: - blueprint_id (string):创建记分卡的蓝图的标识符 - identifier (string):新记分卡的唯一标识符 - title (string):记分卡的显示标题 - levels (列表):记分卡级别列表 - 可选输入: - rules (列表):记分卡规则列表 - description (string):记分卡说明
update_scorecard
- 更新现有记分卡 - 所需输入: - blueprint_identifier (string):记分卡所属蓝图的标识符 - scorecard_identifier (string):要更新的记分卡的唯一标识符 - 要更新的各种字段(标题、级别、规则等) - 返回:更新的记分卡对象
delete_scorecard
- 从端口删除记分卡 - 所需输入: - blueprint_identifier (string):记分卡所属蓝图的标识符 - scorecard_identifier (string):要删除的记分卡的唯一标识符 - 返回:成功状态
AI代理工具
invoke_ai_agent
- 使用特定提示调用Port AI代理 - 所需输入: - prompt (string):发送给AI代理的提示 - 返回:来自AI代理的调用状态和消息
本地开发
为了在发布新版本之前在本地开发和测试新功能,您可以将MCP客户端(例如Cursor)配置为使用本地克隆存储库。
先决条件
- 克隆存储库:如果你还没有,克隆
port-mcp-server存储库到本地计算机。 - 设置环境:
- 导航到克隆存储库的根目录。 - 跑 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",
"",
"--client-secret",
"",
"--region",
"", // e.g., EU or US
"--log-level",
"DEBUG" // Or your preferred log level
],
"env": {
"PORT_CLIENT_ID": "",
"PORT_CLIENT_SECRET": "",
"PORT_REGION": "",
"PORT_LOG_LEVEL": "DEBUG",
"PYTHONPATH": "/path/to/your/port-mcp-server" // Replace with the actual path to your repository
}
}
}
}设置此设置后,您的MCP客户端将使用您的本地版本的服务器,允许您测试当前分支的更改。
反馈和路线图
我们正在不断改进MCP端口,很乐意收到您的来信!请在我们的 路线图页面.
故障排除
如果遇到身份验证错误,请验证:
- 您的端口凭据在参数中设置正确。
- 您拥有必要的权限。
- 凭据已正确复制到您的配置中。
许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以自由使用、修改和分发软件,但须遵守 MIT许可证.
