Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

MCP Imslp

by smeet666version 1.1.0i★ –iRuns on your computer
Registry nameio.github.smeet666/mcp-imslp

Install

Overview

Description from the maker (original English)

Read IMSLP, the Petrucci Music Library: works, scores, editions, copyright. No API key.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Design, images & audio

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: IMSLP_USER_AGENT, IMSLP_MIN_INTERVAL_MS, IMSLP_TIMEOUT_MS, IMSLP_MAX_RETRIES, IMSLP_CACHE_TTL_MS, IMSLP_CACHE_MAX_ENTRIES, IMSLP_LOG_LEVEL

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Download the maker’s .mcpb file

The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.

Run this in your terminal

claude mcp add imslp --env IMSLP_USER_AGENT=your-value --env IMSLP_MIN_INTERVAL_MS=your-value --env IMSLP_TIMEOUT_MS=your-value --env IMSLP_MAX_RETRIES=your-value --env IMSLP_CACHE_TTL_MS=your-value --env IMSLP_CACHE_MAX_ENTRIES=your-value --env IMSLP_LOG_LEVEL=your-value -- npx -y mcp-imslp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "imslp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-imslp"
      ],
      "env": {
        "IMSLP_USER_AGENT": "your-value",
        "IMSLP_MIN_INTERVAL_MS": "your-value",
        "IMSLP_TIMEOUT_MS": "your-value",
        "IMSLP_MAX_RETRIES": "your-value",
        "IMSLP_CACHE_TTL_MS": "your-value",
        "IMSLP_CACHE_MAX_ENTRIES": "your-value",
        "IMSLP_LOG_LEVEL": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "imslp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-imslp"
      ],
      "env": {
        "IMSLP_USER_AGENT": "your-value",
        "IMSLP_MIN_INTERVAL_MS": "your-value",
        "IMSLP_TIMEOUT_MS": "your-value",
        "IMSLP_MAX_RETRIES": "your-value",
        "IMSLP_CACHE_TTL_MS": "your-value",
        "IMSLP_CACHE_MAX_ENTRIES": "your-value",
        "IMSLP_LOG_LEVEL": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • IMSLP_USER_AGENT env
    Your application's name. The project identity is appended to it.
  • IMSLP_MIN_INTERVAL_MS env
    Minimum milliseconds between requests. Default 2500, floor 2000.
  • IMSLP_TIMEOUT_MS env
    Per-request timeout in milliseconds. Default 30000.
  • IMSLP_MAX_RETRIES env
    Retries on transient failures. Default 3.
  • IMSLP_CACHE_TTL_MS env
    In-memory cache lifetime in milliseconds. Default 900000.
  • IMSLP_CACHE_MAX_ENTRIES env
    Maximum entries kept in the in-memory cache. Default 100.
  • IMSLP_LOG_LEVEL env
    silent, error, info or debug, on stderr. Default error.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account smeet666, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Design, images & audioi

  • More stars than 0% of the other 2754 servers in this category
  • Published to the registry more recently than 78% of the other 2754 servers in this category
  • Basic checks equal to or better than 100% of the other 2754 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is MCP Imslp safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.1.0) reached the registry 9 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js, MCPB on your computer.

What can I use instead?

In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

Runs on your computer★ 16,165MITUpdated 5 months ago
Install

Claude Real Video

by HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

Runs on your computer★ 2,284MITUpdated 2 months ago
Install

Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.

Runs in the cloud★ 2,152Updated 13 months ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

mcp-imslp

IMSLP, the International Music Score Library Project, is also called the Petrucci Music Library. It is a free library of classical music run by volunteers, holding the sheet music, the parts, the arrangements and the recordings of works whose copyright has lapsed, together with what its pages say about each composer. It reviews the copyright of every score for Canada, the United States and the European Union separately, and publishes its pages under CC BY-SA 4.0.

This server connects a chat client to that library. You can search the works and the people it catalogues, read a work with its opus number, its key, its instrumentation and the year it was written, page through the editions a work holds with their publishers, editors and copyright terms, read what the library says about a composer, and browse a genre, a key or an instrumentation. It reads the library and links to it, and it needs no API key and no account.

_Version française_


Install

One-click install

Claude Code

claude mcp add imslp -- npx -y mcp-imslp

Claude Desktop, Cursor, and any client using the standard config format

{

"mcpServers": { "imslp": { "command": "npx", "args": ["-y", "mcp-imslp"] } } }

Node 24 or later is required, and no environment variable has to be set.

With Docker
{

"mcpServers": { "imslp": { "command": "docker", "args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-imslp:1.1.0"] } } }

-i keeps stdin open, which is where the protocol travels, and -t is left out because a TTY rewrites the stream. The container needs outbound HTTPS to imslp.org, and nothing else: no volume, no port, no credential.

Bundle, without npm

Download mcp-imslp-1.1.0.mcpb from the latest release and open it. A client that supports MCP bundles installs it on its own, with no npm and no configuration file to edit. The bundle carries its dependencies, so nothing is fetched at install time.

What you can ask

  • "What does IMSLP hold of Chopin's nocturnes?"
  • "Read me the page of Erik Satie and tell me when he lived."
  • "List the editions of Debussy's Clair de lune, with who published each one."
  • "Is the Henle edition of that piece free to use in the United States?"
  • "Show me works for solo cello in the library."

The ordinary path runs from a search to a work: search_works names the page of a work, and get_work reads that page. The same holds for a person, from search_people to get_person or list_person_works.

Tools

ToolWhat it does
search_worksFinds the page of a work by title, composer or words on the page.
search_peopleFinds the category a composer, editor, arranger or performer is filed under.
get_workReads one work: its facets, its sections and its copyright terms.
list_work_filesPages through the editions a work holds, with their files.
list_person_worksReads the works the library files under one person.
get_personReads what the library holds about one person.
browse_categoryReads the works filed under a genre, a key or an instrumentation.

A work is addressed by the title of its page, written Work (Composer), as in Nocturnes, Op.9 (Chopin, Frédéric). A person is addressed by a category, written Category:Surname, Forename. Both come back from a search, and the Category: prefix may be left out.

The library titles a work in the language its composer used, so Die Zauberflöte finds the opera where The Magic Flute finds the pages written about it. A thin answer for a famous work is a sign the title is in another language.

search_works

Searches the pages of the works for words appearing anywhere on them, so a title, a composer or a dedication all find the works carrying them.

ArgumentTypeRequiredWhat it does
querystring, 1 to 300 charactersyesWhat to look for across the pages of the works.
limitinteger, 1 to 50, default 10noRows to serve.
offsetinteger, 0 or more, default 0noRows to skip, using the next_offset of a prior answer.

In return: rows carrying page, which get_work takes; work and composer, read off that title; page_url; snippet, the words around the match; size_bytes, words and last_edited as the library states them. The envelope carries returned, has_more and next_offset, which is the offset to read on from. total is always null: the library publishes no count of what a search matched. composer is null on a title written outside the Work (Composer) form, and snippet is null on a row the search summarised with nothing.

search_people

Finds the composers, editors, arrangers and performers by name. The library writes a name its own way, surname first, so searching finds a person where guessing at the spelling reaches nothing.

ArgumentTypeRequiredWhat it does
querystring, 1 to 300 charactersyesThe name to look for among the people of the library.
limitinteger, 1 to 50, default 10noRows to serve.
offsetinteger, 0 or more, default 0noRows to skip, using the next_offset of a prior answer.

In return: rows carrying category, which get_person and list_person_works take; name without the prefix; page_url; snippet; and redirect_to. A row with a redirect_to stands for another category and holds no works of its own, so follow the category it names. The envelope is the one search_works returns, and total is null here for the same reason.

get_work

Reads one work: its title and alternative titles, the composer, the opus and catalogue numbers, the year of composition and of first publication, the dedication, the key, the language, the librettist, the instrumentation, the movements, the first performance, the style and the period.

ArgumentTypeRequiredWhat it does
pagestring, 1 to 300 charactersone of twoThe page title, written Work (Composer).
pageidinteger, positiveone of twoThe page id a search returned, as an alternative to page.

In return: every facet above, each null when the page leaves it empty, and each in the wording the page used, so ca.1830 stays ca.1830. Beside them come genre_categories, which browse_category takes; external_links and authorities, the records of the work at VIAF, LCCN, WorldCat, BNF and GND; sections, with the number of entries the site counts in each; and copyright_summary, one entry per distinct statement, with the number of editions carrying it. editions holds every edition with its files, and turns null with editions_truncated true when the work holds more than five, which list_work_files then pages through. redirected_from names the title asked for when it led here, and pageid is null for a work addressed by title.

list_work_files

Reads the scores and the recordings of a work, edition by edition. An edition is a set of files published under one set of terms: the publisher, the editor and the copyright statement belong to the edition, and the files sit under it. A block of recordings carries performers and no copyright statement.

ArgumentTypeRequiredWhat it does
pagestring, 1 to 300 charactersone of twoThe page title, written Work (Composer).
pageidinteger, positiveone of twoThe page id a search returned, as an alternative to page.
sectionstring, 1 to 80 charactersnoOne section of the page, in its own wording: Scores, Parts, Recordings, Arrangements and Transcriptions. Matched without regard to case.
limitinteger, 1 to 100, default 10noEditions to serve.
offsetinteger, 0 or more, default 0noEditions to skip.

In return: editions, each with its section, publisher_info, editor, copyright and files. A file carries imslp_id, description, `fo

Only the beginning is shown; read the rest in the repo

Ask PopNx