GitHub - gofireflyio/firefly-mcp: Firefly MCP (original) (raw)
Firefly MCP Server
The Firefly MCP (Model Context Protocol) server is a TypeScript-based server that enables seamless integration with the Firefly platform. It allows you to discover, manage, and codify resources across your Cloud and SaaS accounts connected to Firefly.
Features
- 🔍 Resource Discovery: Find any resource in your Cloud and SaaS accounts
- 📝 Resource Codification: Convert discovered resources into Infrastructure as Code
- 🔐 Secure Authentication: Uses FIREFLY_ACCESS_KEY and FIREFLY_SECRET_KEY for secure communication
- 🚀 Easy Integration: Works seamlessly with Claude and Cursor
Prerequisites
- Node.js (v14 or higher)
- npm or yarn
- Firefly account with generated access keys
Installation
You can run the Firefly MCP server directly using NPX:
npx @fireflyai/firefly-mcp
Environment Variables
You can provide your Firefly credentials in two ways:
- Using environment variables:
FIREFLY_ACCESS_KEY=your_access_key FIREFLY_SECRET_KEY=your_secret_key npx @fireflyai/firefly-mcp
- Using arguments:
npx @fireflyai/firefly-mcp --access-key your_access_key --secret-key your_secret_key
Usage
Stdio
Update the mcp.json
file with the following:
{ "mcpServers": { "firefly": { "command": "npx", "args": ["-y", "@fireflyai/firefly-mcp"], "env": { "FIREFLY_ACCESS_KEY": "your_access_key", "FIREFLY_SECRET_KEY": "your_secret_key" } } } }
Run the MCP server using one of the methods above with the following command:
npx @fireflyai/firefly-mcp --sse --port 6001
Update the mcp.json
file with the following:
{ "mcpServers": { "firefly": { "url": "http://localhost:6001/sse" } } }
Using with Cursor
- Start the MCP server using one of the methods above
- Use the Cursor extension to connect to the MCP server - see Cursor Model Context Protocol documentation
- Use natural language to query your resources
Example:
Prompt
Find all "ubuntu-prod" EC2 instance in 123456789012 AWS account and codify it into Terraform
Response
resource "aws_instance" "ubuntu-prod" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t3.micro"
}
Demo
Demo.mov
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'feat: Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For support, please visit Firefly's documentation or create an issue in this repository.