foo-ai

foo-ai

MCP control for foobar2000. Control your music player with an AI assistant!

Category
Visit Server

README

<p align=center> <a href="https://github.com/Bobini1/foo_ai/releases/latest"><img alt="GitHub Downloads (all assets, all releases)" src="https://img.shields.io/github/downloads/Bobini1/foo_ai/total"></a> </p>

foo_ai

AI MCP control for foobar2000. Control your music player with an AI assistant!

Overview

This component starts a local Model Context Protocol server. You can connect to it with any MCP client that supports SSE (tested with GitHub Copilot and Cursor).

The AI assistant can send requests to get information from the running music player or invoke actions like play, create playlists, change volume, etc.

Compatible with foobar v2.0+, x86 and x64.

Example tasks

  • "Make a new 80s rock playlist and play it."
  • "What's the name of the currently playing track?"
  • "Add this track to my 'Favorites' playlist."
  • "What's the oldest song in my library?"
  • "Turn up the volume a bit."

Example - creating a playlist with Kaczmarski's best songs

Installation

  1. Download the latest release from the Releases page.
  2. Double-click the downloaded .fb2k-component file to install the component.
  3. Restart foobar2000 if it's running.
  4. By default, the server will be listening on http://localhost:9910/sse. You can change the host and port in settings (Preferences > Tools > AI).
  5. Add the URL from the previous step to your MCP client and voilà!

Available features

Tools

The server provides the following tools:

  • list_library: List all tracks in the library. Can specify a query string.
  • list_playlists: List all playlists.
  • list_playlist: List tracks in a specific playlist. Can specify a query string.
  • list_current_track: Get information about the currently playing track.
  • add_tracks: Add tracks to a playlist.
  • remove_tracks: Remove tracks from a playlist.
  • remove_all_tracks: Remove all tracks from a playlist.
  • move_tracks: Move tracks within a playlist.
  • set_active_playlist: Set the active playlist (the one shown in the UI).
  • set_playing_playlist: Set the playing playlist (the one the fb2k picks tracks from).
  • set_playback_state: Play or pause music.
  • play_at_index: Play a track at a specific index in the active playlist.
  • set_focus: Set the focus to a specific track in the active playlist (without playing it).
  • create_playlist: Create a new playlist.
  • rename_playlist: Rename a playlist.
  • delete_playlist: Delete a playlist.
  • set_volume: Set volume.
  • toggle_mute: Toggle mute state.
  • get_volume: Get current volume and mute state.

Resources

The server provides a few resources. They are provided to support subscriptions. When a client subscribes to a resource, it will receive updates whenever it is updated in the player.

This isn't a crucial feature as clients can always call the tools to get the latest info, but it can be useful for real-time updates, if your MCP client supports it.

The following resources are available:

  • current_track://.: Contains info about the current track: when it was last changed and it's playing/paused state.
  • playlists://.: Contains the same info as the list_playlists tool - playlist names, track counts, last modification times, active/playing states, etc.
  • volume://.: Contains the same info as the get_volume tool.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured