项目简介

Port MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,用于连接 Port.io 开发者门户平台。它使大型语言模型(如 Claude、Cursor 等)能够通过标准化的 MCP 接口,利用自然语言与 Port.io 中的数据和功能进行交互。

通过此服务器,LLM 客户端可以访问 Port.io 托管的软件目录数据(蓝图、实体、记分卡等),调用 Port.io 提供的工具执行操作(如创建记分卡、触发自动化工作流),并利用 Port.io 的 AI Agent 能力。

主要功能点

  • 访问 Port.io 数据: 查询和获取 Port.io 平台中蓝图(Blueprints)、实体(Entities)和记分卡(Scorecards)的详细信息。
  • 执行 Port.io 操作: 支持调用 Port.io API 执行特定操作,例如创建记分卡或触发预定义的 AI Agent 任务。
  • 提供结构化上下文: 将 Port.io 的复杂数据(如蓝图的属性Schema、实体的关联关系、记分卡的规则和层级)以 LLM 易于理解的格式提供。
  • 启用自然语言交互: 充当 LLM 和 Port.io 之间的桥梁,允许用户通过对话方式管理和查询开发者门户信息。

安装步骤

  1. 安装 Python 和 pip: 确保您的系统已安装 Python 3.8+ 及配套的包管理器 pip。
  2. 安装 uvx: 打开终端,运行命令 'pip install uvx'。'uvx' 是一个用于运行 Python 包中可执行文件的工具。
  3. 获取 Port.io API 凭据:
    • 访问 Port.io 注册或登录。
    • 在 Port.io 控制面板中,前往 Settings > Credentials。
    • 生成并保存您的 Client IDClient Secret

服务器配置

Port MCP 服务器作为 LLM 客户端的一个外部进程运行。您需要在 LLM 客户端的配置中添加此服务器的启动信息。配置格式通常是 JSON,包含服务器名称、类型 (Command) 以及用于启动服务器进程的命令和参数。

以下是常见的 MCP 客户端所需的配置信息示例及其参数说明:

  • 服务器名称 (Name): 您可以为服务器指定一个名称,例如 'Port'。
  • 类型 (Type): 应设置为 'Command',表示通过命令行启动服务器。
  • 命令 (Command): 启动服务器的命令路径。通常使用 'uvx' 工具来运行安装的包,命令可能是 'uvx'(如果您已将其添加到 PATH)或 'path/to/uvx' 的绝对路径。
  • 参数 (Args): 传递给服务器启动命令的参数列表,这些参数用于配置 Port.io 客户端。
    • 第一个参数是包的名称和版本,例如 '[email protected]'。
    • '--client-id <YOUR_CLIENT_ID>': 必填。 您的 Port.io Client ID。
    • '--client-secret <YOUR_CLIENT_SECRET>': 必填。 您的 Port.io Client Secret。
    • '--region <REGION>': 可选。 您的 Port.io API 区域,可以是 'US' 或 'EU' (默认是 'EU')。

请注意: 具体的配置步骤和 JSON 格式可能因不同的 LLM 客户端而异,请参考您使用的客户端的官方文档。上述参数 '-client-id', '-client-secret', '-region' 是 Port MCP 服务器需要的命令行参数。

基本使用方法

  1. 启动 LLM 客户端: 启动您的 LLM 客户端(如 Claude Desktop, Cursor 等)。如果配置正确,客户端会自动启动 Port MCP 服务器进程。
  2. 与 LLM 交互: 在 LLM 客户端的对话界面中,像往常一样通过自然语言提出问题或发出指令。
  3. LLM 调用工具: LLM 会根据您的指令,识别需要调用 Port MCP 服务器提供的工具(如 'get_blueprints', 'get_entity', 'create_scorecard' 等)。
  4. 获取结果: 服务器执行工具或资源请求后,会将结果(例如实体的详细信息、记分卡列表)返回给 LLM,LLM 再将其呈现给您。

使用示例:

  • 提问:"Show me all blueprints in Port." (服务器将使用 'get_blueprints' 工具)
  • 提问:"What is the health status of the 'user-service' entity in the 'service' blueprint?" (服务器将使用 'get_entity' 工具)
  • 提问:"Create a new scorecard called 'SecurityCheck' for the 'application' blueprint with Basic and Gold levels." (服务器将使用 'create_scorecard' 工具)

信息

分类

开发者工具