使用说明

项目简介

Firefly MCP服务器是一个基于TypeScript的服务,它实现了Model Context Protocol (MCP),可以与Firefly平台无缝集成。通过此服务器,您可以发现、管理和编纂连接到Firefly平台的云和SaaS账户中的资源。它允许LLM客户端通过标准化的MCP协议与Firefly平台交互,实现资源查询和基础设施代码生成等功能。

主要功能点

  • 资源发现: 允许LLM客户端查询和发现云服务商和SaaS平台上的各种资源。
  • 资源编纂 (Codify): 可以将发现的云资源转换为基础设施即代码 (IaC),例如 Terraform 配置。
  • 安全认证: 使用 'FIREFLY_ACCESS_KEY' 和 'FIREFLY_SECRET_KEY' 进行安全通信,确保对Firefly平台的访问安全。
  • 易于集成: 可以与支持MCP协议的LLM客户端轻松集成,例如 Cursor 编辑器。

安装步骤

  1. 前提条件: 确保已安装 Node.js (v14 或更高版本) 和 npm 或 yarn。同时,您需要拥有一个 Firefly 账户并生成访问密钥 (access key) 和 secret 密钥 (secret key)。

  2. 安装 Firefly MCP Server: 您可以使用 NPX 直接运行 Firefly MCP 服务器,无需全局安装:

    npx @fireflyai/firefly-mcp

服务器配置

MCP客户端需要配置 'mcp.json' 文件来连接 Firefly MCP 服务器。以下分别展示了 Stdio 和 SSE 两种传输协议的配置方法。

1. Stdio 配置 (标准输入输出)

如果您希望使用标准输入输出 (Stdio) 协议与 Firefly MCP 服务器通信,请在 'mcp.json' 文件中添加以下配置。此配置指示 MCP 客户端通过 'npx' 命令启动 Firefly MCP 服务器,并设置必要的环境变量。

{
  "mcpServers": {
    "firefly": {
      "command": "npx",
      "args": ["-y", "@fireflyai/firefly-mcp"],
      "env": {
        "FIREFLY_ACCESS_KEY": "your_access_key",  // 替换为您的 Firefly Access Key
        "FIREFLY_SECRET_KEY": "your_secret_key"   // 替换为您的 Firefly Secret Key
      }
    }
  }
}

2. SSE 配置 (Server-Sent Events)

如果您希望使用 Server-Sent Events (SSE) 协议,首先需要启动 Firefly MCP 服务器并指定 SSE 模式和端口。

在终端中运行以下命令启动服务器 (请替换 'your_access_key' 和 'your_secret_key' 为您的 Firefly 凭据,并可根据需要修改端口号 '--port 6001'):

npx @fireflyai/firefly-mcp --sse --port 6001 --access-key your_access_key --secret-key your_secret_key

然后,在 'mcp.json' 文件中配置服务器的 URL。MCP 客户端将通过此 URL 与服务器建立 SSE 连接。

{
  "mcpServers": {
    "firefly": {
      "url": "http://localhost:6001/sse"  // 服务器SSE端点URL,端口号需与启动命令一致
    }
  }
}

注意: 在上述配置中,您需要将 'your_access_key' 和 'your_secret_key' 替换为您在 Firefly 平台生成的实际密钥。选择 Stdio 或 SSE 配置取决于您的 MCP 客户端和具体使用场景的需求。

基本使用方法

配置完成后,您可以使用支持 MCP 协议的 LLM 客户端(例如 Cursor 编辑器)连接到 Firefly MCP 服务器。连接成功后,您可以使用自然语言查询和操作您的云资源。

使用示例 (在 Cursor 中):

在 Prompt 中,您可以像这样提问:

Find all "ubuntu-prod" EC2 instance in 123456789012 AWS account and codify it into Terraform

Firefly MCP 服务器会处理这个请求,调用 Firefly 平台的 API 查询资源,并将结果以 Terraform 代码的形式返回给 LLM 客户端。

预期响应:

resource "aws_instance" "ubuntu-prod" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.micro"
}

通过这种方式,您可以利用自然语言与您的云基础设施进行交互,实现资源管理和自动化任务。

信息

分类

开发者工具