Firefly MCP

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

Generating MCP Configuration via Firefly UI (Hosted MCP Server)

You can easily generate the MCP configuration for Cursor, Claude, or any other MCP client directly from the Firefly UI. This method allows you to securely connect to the Firefly-hosted MCP server with authentication, without running a local MCP server.

Steps

  1. Open the Firefly UI and navigate to the MCP Server integration section.

  2. Click on "Generate MCP configuration". The UI will generate a configuration block for you, including the required authentication.

  3. Copy the generated configuration and use it in your MCP client (e.g., Cursor, Claude).

Example generated configuration

{
  // The 'mcpServers' object defines available MCP servers
  "mcpServers": {
    "firefly": {
      // URL to the Firefly-hosted MCP server with authentication token
      "url": "https://mcp.firefly.ai/sse?auth=YOUR_AUTH_TOKEN",
      "headers": {
        // Authorization header for secure access
        "Authorization": "Basic YOUR_AUTH_TOKEN"
      }
    }
  }
}
  • YOUR_AUTH_TOKEN will be provided by the Firefly UI. It is a sensitive value and should be kept secret. This token contains your authentication credentials and should never be shared publicly or committed to version control systems.

  • This configuration can be used directly in Cursor, Claude, or any compatible MCP client.

Note: This method is an alternative to running your own local MCP server. It is recommended for users who want a quick and secure setup without managing server infrastructure.

Running the MCP Server Locally

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:

  1. Using environment variables:

FIREFLY_ACCESS_KEY=your_access_key FIREFLY_SECRET_KEY=your_secret_key npx @fireflyai/firefly-mcp
  1. Using arguments:

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

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"
      }
    }
  }
}

SSE

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"
    }
  }
}

Usage

Using with Cursor

  1. Start the MCP server using one of the methods above

  2. Use the Cursor extension to connect to the MCP server - see Cursor Model Context Protocol documentation

  3. 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

Video

Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'feat: Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Last updated

Was this helpful?