MCP ExplorerExplorer

Unleash Mcp

@cuongtl1992on a year ago
8 MIT
FreeCommunity
AI Systems
A Model Context Protocol (MCP) server implementation that integrates with Unleash Feature Toggle system.

Overview

What is Unleash Mcp

Unleash-MCP is a Model Context Protocol (MCP) server implementation that integrates with the Unleash Feature Toggle system, providing a bridge between LLM applications and feature flag management.

Use cases

Use cases for Unleash-MCP include managing feature flags in AI-driven applications, enabling or disabling features based on real-time conditions, and facilitating A/B testing through controlled feature exposure.

How to use

To use Unleash-MCP, install the required dependencies using npm, configure the server to connect to an Unleash instance, and then utilize its API to check, create, update, and list feature flags.

Key features

Key features of Unleash-MCP include the ability to check feature flag status, expose feature flag information to LLMs, create and update feature flags, and list all projects associated with the feature flags.

Where to use

Unleash-MCP can be used in software development environments where feature toggling is necessary, particularly in AI applications that leverage LLMs for dynamic feature management.

Content

Unleash MCP Server

A Model Context Protocol (MCP) server implementation that integrates with Unleash Feature Toggle system.

Overview

This project provides a bridge between LLM applications and Unleash feature flag system using the Model Context Protocol (MCP). It allows AI applications to:

  1. Check feature flag status from Unleash
  2. Expose feature flag information to LLMs
  3. Create feature flag
  4. Update feature flag
  5. List all projects

Table of Contents

Requirements

  • Node.js (v18 or higher)
  • TypeScript (v5.0 or higher)
  • Access to an Unleash server instance

Installation

# Install dependencies
npm i

Architecture

The Unleash MCP Server acts as a bridge between LLM applications and the Unleash feature flag system:

+----------------+      +-------------------+      +----------------+
|                |      |                   |      |                |
|  LLM App       | <--> |  Unleash MCP      | <--> |  Unleash API   |
|  (MCP Client)  |      |  Server           |      |  Server        |
|                |      |                   |      |                |
+----------------+      +-------------------+      +----------------+

Development

Project Structure

unleash-mcp-server/
├── src/
│   ├── index.ts              # Main entry point
│   ├── server.ts             # Server implementation
│   ├── config.ts             # Configuration handling
│   ├── transport/            # MCP transport implementations
│   │   ├── http.ts           # HTTP/SSE transport
│   │   └── stdio.ts          # STDIO transport
│   ├── unleash/              # Unleash API client implementations
│   │   ├── unleash-client.ts # Main Unleash client
│   │   ├── get-feature-flag.ts
│   │   └── get-all-projects.ts
│   ├── resources/            # MCP resource implementations
│   │   ├── flags.ts          # Feature flag resources
│   │   └── projects.ts       # Project resources
│   ├── tools/                # MCP tool implementations
│   │   ├── get-flag.ts       # Get feature flag tool
│   │   └── get-projects.ts   # Get projects tool
│   └── prompts/              # MCP prompt implementations
│       ├── flag-check.ts     # Check single flag
│       └── batch-flag-check.ts # Check multiple flags
├── tests/                    # Tests
└── package.json              # Project configuration

Coding Standards

  • Naming Conventions:

    • Files: Use kebab-case.ts (e.g., feature-flag.ts)
    • Classes: Use PascalCase (e.g., UnleashClient)
    • Functions/Methods: Use camelCase (e.g., getFlagStatus)
    • Interfaces/Types: Use PascalCase (e.g., FeatureFlagConfig)
  • Imports:

    • Always include .js extension when importing local files
    • Follow import ordering: Node.js built-ins → External dependencies → Local imports
    • Use named exports over default exports
  • Documentation:

    • Use JSDoc comments for public functions, classes, and interfaces
    • Document complex logic with inline comments

Building

# Compile TypeScript
npm run build

# Run the server
npm start

Testing

# Run tests
npm test

Inspecting

# MCP stdio inspect
npm run build
npx @modelcontextprotocol/inspector node dist/index.js

# MCP sse inspect
npm start
npx @modelcontextprotocol/inspector

How to use

For Claude or Cursor config:

{
  "mcpServers": {
    "unleash": {
      "command": "npx",
      "args": [
        "-y",
        "unleash-mcp"
      ],
      "env": {
        "UNLEASH_URL": "YOUR_UNLEASH_END_POINT",
        "UNLEASH_API_TOKEN": "YOUR_UNLEASH_API_TOKEN",
        "MCP_TRANSPORT": "stdio",
        "MCP_HTTP_PORT": 3001
      }
    }
  }
}

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support the Project

If you find this project helpful, consider buying me a coffee!

Buy Me A Coffee QR Code

Scan the QR code above or click here to support the development of this project.

License

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

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers