Skip to main content
Glama
freepik-company

Freepik FastMCP Toolkit

Official
README.md
# Freepik MCP

šŸš€ **MCP Server for seamless Freepik API integration**

## šŸŽÆ What is this?

A **Model Context Protocol (MCP) server** that connects your AI assistants (Claude, Cursor, etc.) directly with Freepik's powerful APIs. Generate, search, and manage visual content without leaving your AI workflow.

## šŸ› ļø What tools are available?

- šŸŽØ **Icon Search & Download** - Find and download icons in multiple formats
- šŸ“ **Resource Management** - Access and manage multimedia content
- šŸ¤– **AI Image Classification** - Automatically classify and analyze images
- šŸ–¼ļø **Image Generation** - Create custom images using Mystic AI

## šŸ“‹ Prerequisites

Before you start, make sure you have:

- **Python 3.12+** installed
- **uv** dependency manager ([install here](https://docs.astral.sh/uv/getting-started/installation/))
- **Freepik API Key** ([get yours here](https://freepik.com/api))

## šŸš€ Installation

### 1. Clone and navigate
```bash
git clone <REPOSITORY_URL>
cd freepik-mcp
```

### 2. Install using Makefile
```bash
# Install dependencies
make install

# Verify installation
make version
```

### 3. Configure your API Key
```bash
echo "FREEPIK_API_KEY=your_api_key_here" > .env
```

> šŸ’” **Get your API Key at:** [freepik.com/api](https://freepik.com/api)

## āš™ļø Configuration for AI Assistants

### For Claude Desktop or Cursor on Linux

Add this to your `config.json` file:

> āš ļø **For Windows users:** If you're on Windows, you need to use WSL (Windows Subsystem for Linux) to run this MCP server.

```json
{
  "mcpServers": {
    "freepik-fastmcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/FULL/PATH/TO/freepik-mcp",
        "main.py"
      ],
      "env": {
        "FREEPIK_API_KEY": "your_actual_api_key_here"
      }
    }
  }
}
```

### šŸ”§ Important Configuration Steps

1. **Find your full path:**
   ```bash
   pwd
   # Copy the output and replace /FULL/PATH/TO/ in the config
   ```

2. **Replace with your API key:**
   - Get it from [freepik.com/api](https://freepik.com/api)
   - Replace `your_actual_api_key_here`

## šŸƒā€ā™‚ļø Quick Start

```bash
# Development mode (auto-reload)
make dev

# Production mode
make run

# Check code quality
make lint

# Format code
make format

# Clean temporary files
make clean

# See all commands
make help
```

## šŸ¤ Contributing

We welcome contributions! Please follow these guidelines:

### šŸ“ Commit Convention

This project uses **Conventional Commits**. Format your commits as:

```
<type>(<scope>): <description>

[optional body]

[optional footer(s)]
```

**Types:**
- `feat`: New feature
- `fix`: Bug fix
- `docs`: Documentation changes
- `style`: Code style changes (formatting, etc.)
- `refactor`: Code refactoring
- `test`: Adding or updating tests
- `chore`: Maintenance tasks

**Examples:**
```bash
feat(icons): add search filtering by category
fix(api): resolve authentication timeout issue
docs(readme): update installation instructions
refactor(mystic): improve error handling logic
```

### šŸ”„ Contribution Workflow

1. **Fork** the repository
2. **Create** a feature branch: `git checkout -b feat/amazing-feature`
3. **Commit** using conventional format: `git commit -m "feat: add amazing feature"`
4. **Push** to your branch: `git push origin feat/amazing-feature`
5. **Open** a Pull Request

## šŸ“š Development Commands

| Command | Description |
|---------|-------------|
| `make help` | Show all available commands |
| `make install` | Install dependencies |
| `make dev` | Run in development mode |
| `make run` | Run in production mode |
| `make lint` | Check code quality |
| `make format` | Format code automatically |
| `make clean` | Clean temporary files |
| `make version` | Check FastMCP version |

## šŸ›”ļø Security

- āš ļø **Never commit your API Key**
- āœ… Use `.env` files for sensitive data
- āœ… The `.env` file is in `.gitignore`

## šŸ“– API Documentation

For detailed API information:
- [Freepik API Documentation](https://freepik.com/api)

## šŸ†˜ Troubleshooting

**Common issues:**

1. **"Command not found"** → Install `uv` dependency manager
2. **"Invalid API Key"** → Check your key at [freepik.com/api](https://freepik.com/api)
3. **"Path not found"** → Verify the full path in your config
4. **"Connection refused"** → Make sure the server is running with `make dev`

**Still having issues?** Open an issue on GitHub with:
- Your OS and Python version
- Full error message
- Configuration file (without API key)

---

**Ready to create amazing content with AI? šŸŽØāœØ**

TDQS

B3.2/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have distinct purposes with clear boundaries, such as detect_ai_image for AI detection and text_to_image_mystic_sync for AI image generation. However, there is some overlap between download_resource_by_id and get_resource_download_formats, as both handle downloading resources by ID with format specifications, which could cause confusion. The descriptions help differentiate them, but the similarity in function is notable.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a verb_noun structure, such as detect_ai_image, download_icon_by_id, and search_resources. This uniformity makes the tool set predictable and easy to understand, with no deviations in naming conventions across the nine tools.

Tool Count4/5

With 9 tools, the count is well within the typical 3-15 range for a well-scoped server, covering icon and resource management, AI detection, and image generation. It feels slightly heavy due to some redundancy in download functions, but overall, each tool serves a purpose in the Freepik domain, making it reasonable for the toolkit's scope.

Completeness4/5

The tool set provides strong coverage for searching, retrieving details, and downloading icons and resources, along with AI-related functions like detection and generation. Minor gaps exist, such as the lack of update or delete operations for resources, which are less critical in this context, and no tool for managing user accounts or licenses. However, core workflows for content discovery and access are well-supported.

Maintenance

ActivitySlowing
ResponsivenessSyncing