Mureka mcp

Local 2025-09-01 01:07:06 0

A Model Context Protocol server that enables AI assistants like Claude to generate lyrics, songs, and background music through Mureka's APIs.


![export](https://raw.githubusercontent.com/SkyworkAI/Mureka-mcp/refs/heads/master/assets/mureka_mcp.png) [![Discord Community](https://raw.githubusercontent.com/SkyworkAI/Mureka-mcp/refs/heads/master/assets/discord_mureka.svg)](https://discord.com/invite/nwu9ANqAf5) [![Twitter](https://raw.githubusercontent.com/SkyworkAI/Mureka-mcp/refs/heads/master/assets/x_mureka.svg)](https://x.com/Mureka_AI) [![PyPI](https://raw.githubusercontent.com/SkyworkAI/Mureka-mcp/refs/heads/master/assets/pypi_mureka.svg)](https://pypi.org/project/mureka-mcp)

Official Mureka Model Context Protocol (MCP) server that enables interaction with powerful lyrics, song and bgm generating APIs. This server allows MCP clients like Claude Desktop, OpenAI Agents and others to generate lyrics, song and background music(instrumental).

Quickstart with Claude Desktop

  1. Get your API key from Mureka.
  2. Install uv (Python package manager), install with curl -LsSf https://astral.sh/uv/install.sh | sh or see the uv repo for additional install methods.
  3. Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:
{
    "mcpServers": {
        "Mureka": {
            "command": "uvx",
            "args": [
                "mureka-mcp"
            ],
            "env": {
                "MUREKA_API_KEY": "<insert-your-api-key-here>",
                "MUREKA_API_URL": "https://api.mureka.ai",
                "TIME_OUT_SECONDS":"300"
            }
        }
    }
}

Then restart the Claude app and see 4 MCP tools available in the window, indicating successful loading

Optional features

You can add the TIME_OUT_SECONDS environment variable to the claude_desktop_config.json to set the timeout period for song or bgm generation waiting(Default 60s).

Example usage

⚠️ Warning: Mureka credits are needed to use these tools. Try asking Claude: - "Please create a song for my daughter Jessica to wish her a happy birthday and play it"

  • "Please generate lyrics about Christmas"
  • "Please generate a song based on the lyrics just now"
  • "Please generate background music suitable for playing in the coffee shop"

bgm 1 download

bgm 2 download

Troubleshooting

Logs when running with Claude Desktop can be found at:

  • Windows: %APPDATA%Claudelogsmcp-server-Mureka.log
  • macOS: ~/Library/Logs/Claude/mcp-server-Mureka.log

Quickstart with Openai agents sdk

Coming soon

[
  {
    "description": "Generate lyrics with a given prompt then return the title and lyrics text to the client directly.     ⚠️ COST WARNING: This tool makes an API call to mureka.ai which may incur costs. Only use when explicitly requested by the user.     Args:        prompt (str): The prompt to generate lyrics for song            Returns:        The title and lyrics of song.    ",
    "name": "generate_lyrics",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "prompt": {
          "title": "Prompt",
          "type": "string"
        }
      },
      "required": [
        "prompt"
      ],
      "type": "object"
    }
  },
  {
    "description": "Generate song based on the lyrics text and save the output audio file to a given directory.    Directory is optional, if not provided, the output file will be saved to $HOME/Desktop.        ⚠️ COST WARNING: This tool makes an API call to mureka.ai which may incur costs. Only use when explicitly requested by the user.        Args:        lyrics (str): The lyrics to generate song        prompt (str, optional): Control song generation by inputting a prompt.For example:ru0026b, slow, passionate, male vocal.        output_directory (str, optional): Directory where files should be saved.            Defaults to $HOME/Desktop if not provided.        Returns:        The output file and name of song generated.    ",
    "name": "generate_song",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "lyrics": {
          "title": "Lyrics",
          "type": "string"
        },
        "output_directory": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Output Directory"
        },
        "prompt": {
          "default": "",
          "title": "Prompt",
          "type": "string"
        }
      },
      "required": [
        "lyrics"
      ],
      "type": "object"
    }
  },
  {
    "description": "Generate background music(instrumental) based on the prompt text and save the output audio file to a given directory.    Directory is optional, if not provided, the output file will be saved to $HOME/Desktop.        ⚠️ COST WARNING: This tool makes an API call to mureka.ai which may incur costs. Only use when explicitly requested by the user.        Args:        prompt (str, optional): Control music generation by inputting a prompt.For example:ru0026b, slow, passionate, male vocal.        output_directory (str, optional): Directory where files should be saved.            Defaults to $HOME/Desktop if not provided.                Returns:        The output file and name of background music(instrumental) generated.    ",
    "name": "generate_instrumental",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "output_directory": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Output Directory"
        },
        "prompt": {
          "default": "",
          "title": "Prompt",
          "type": "string"
        }
      },
      "required": null,
      "type": "object"
    }
  },
  {
    "description": "Play an audio file. Supports WAV and MP3 formats.",
    "name": "play_audio",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "input_file_path": {
          "title": "Input File Path",
          "type": "string"
        }
      },
      "required": [
        "input_file_path"
      ],
      "type": "object"
    }
  }
]