使用说明
项目简介
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 编辑器。
安装步骤
-
前提条件: 确保已安装 Node.js (v14 或更高版本) 和 npm 或 yarn。同时,您需要拥有一个 Firefly 账户并生成访问密钥 (access key) 和 secret 密钥 (secret key)。
-
安装 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" }
通过这种方式,您可以利用自然语言与您的云基础设施进行交互,实现资源管理和自动化任务。
信息
分类
开发者工具