使用说明
⚠️ 此存储库不再维护
[!警告] 此存储库已被弃用,不再积极维护或支持。 不会提供进一步的更新、错误修复或安全补丁。
迁移到端口的远程MCP服务器
我们强烈建议所有用户迁移到 端口的远程MCP服务器,这是积极维护和支持的解决方案。
远程MCP服务器提供了由端口团队支持的全功能奇偶校验和持续改进。
端口MCP服务器
这 端口IO MCP服务器是 模型上下文协议(MCP) 服务器,为开发人员和人工智能应用程序实现高级自动化和自然语言交互。
如何使用MCP端口
快速查找信息
- 获取实体详细信息 -“服务X的所有者是谁?”
- 查看通话状态 -“现在谁在待命?”
- 获取目录洞察 -“我们在生产中有多少服务?”
分析记分卡
- 识别弱点 -“哪些服务未能达到黄金水平,为什么?”
- 获取合规状态 -“显示所有不符合我们安全要求的服务”
- 提高质量 -“我需要修复什么才能达到下一个记分卡级别?”
创建资源
- 建立记分卡 -“创建一个名为“安全态势”的新记分卡,分为基本、白银和黄金级别”
- 定义规则 -“添加一条规则,要求服务有一个团队所有者才能达到银牌级别”
- 设置质量门 -“创建一个规则,检查服务是否有适当的文档”
管理权限和RBAC
- 获取操作权限 -“此操作的当前权限设置是什么?”
- 更新行动策略 -“为部署操作配置审批工作流”
- 配置动态权限 -“为此操作设置基于团队的访问控制”
我们正在不断扩展Port MCP的功能。有什么建议吗?我们很乐意听取您对我们的 路线图!
安装
先决条件
在开始之前,您需要:
-
创建端口帐户(如果您没有):
- 访问 Port.io
- 注册一个账户
-
获取端口凭据:
- 导航到您的Port仪表板
- 前往“设置”>“凭据”
- 保存客户端ID和客户端密码
-
安装要求:
[!注意] 您还需要提供您的港口地区,即欧盟或美国。如果没有提供,默认为欧盟。
安装方法
端口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.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
- 转到“设置”>“开发人员”,然后单击“编辑配置”。
- 编辑
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_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"
}
}
}
}
使用游标
- 转到光标>设置>光标设置。
- 单击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_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配置的位置。确保用您的端口凭据替换占位符。
对于手动安装,请执行以下步骤:
- 按转到命令选项板
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_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服务器配置:
- 使用命令访问服务器配置
: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",
"<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端口,很乐意收到您的来信!请在我们的 路线图页面.
故障排除
如果遇到身份验证错误,请验证:
- 您的端口凭据在参数中设置正确。
- 您拥有必要的权限。
- 凭据已正确复制到您的配置中。
许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以自由使用、修改和分发软件,但须遵守 MIT许可证.
