agentCLAWHUBUnverified

musescore-fpx

Query musescore.com (sheet music search, score/license metadata, official download links) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the musescore-mcp server — one-shot HTTP calls through a signed-in browser tab. Use when you want MuseScore data without the MCP, in a script, or on a machine where the MCP isn't installed. Skill: musescore-fpx Owner: chrischall Summary: Query musescore.com (sheet music search, score/license metadata, official download links) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the musescore-mcp server — one-shot HTTP calls through a signed-in browser tab. Use when you want MuseScore data without the MCP, in a script, or on a machine where the MCP isn't installed. Tags: latest:1.1.8 Versio

OpenClaw

Rank

62

Safety

84

Downloads

1.5k

Updated

Oct 10, 2026

Version

1.1.8

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 10, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 10, 2026
Adoption signal
1.5K downloadsadoption · observed Oct 10, 2026
Latest release
1.1.8release · observed Oct 9, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:musescore-fpx
  1. Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
  2. Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musescore-fpx/snapshot"

Documentation

CLAWHUB

147,524 characters of source documentation, loaded on request.

Extracted files

4 files captured from the source.

SKILL.md

---
name: musescore-fpx
description: >-
  Query musescore.com (sheet music search, score/license metadata, official
  download links) from a shell with the fpx CLI (@fetchproxy/cli) instead of
  running the musescore-mcp server — one-shot HTTP calls through a signed-in
  browser tab. Use when you want MuseScore data without the MCP, in a script,
  or on a machine where the MCP isn't installed.
---

# MuseScore via fpx (no MCP)

musescore.com has **no public API** (the old one was shut down) and sits
behind a Cloudflare managed challenge ("Just a moment…") that 403s any plain
`curl`/Node request. `fpx` routes the request through the user's own
signed-in browser tab (the ContextMint Bridge extension), which has already cleared
the challenge, so the same page loads that a browser would get. No MuseScore
login is required for search/metadata — just a normal open tab.

This is the same data the `musescore_search` / `musescore_get_score` /
`musescore_download` MCP tools return, reached with one CLI call instead of a
running server.

## One-time setup

```sh
npm install -g @fetchproxy/cli               # provides `fpx`
fpx profile add musescore --domain musescore.com
fpx pair -p musescore                        # prints a pair code → approve in ContextMint Bridge
```

Requirements: the **ContextMint Bridge** browser extension installed (from
https://github.com/nullnet-app/contextmint-bridge/releases — Chrome: load the chrome zip
unpacked; Safari not available yet, use Chrome for now —
it is the fetchproxy extension renamed, same maintainer; verify a zip against its
`.sha256` or build from source), with an open
`musescore.com` tab (apex host — no `www`) that has cleared the Cloudflare
challenge, and its Chrome **Site access** allowing `musescore.com`. Pairing
persists — after the first approval every later `fpx` call reuses it.

## Core call — and the JSON-store extraction it needs

Every page is a plain `GET`, HTML in, HTML out:

```sh
fpx get 'https://musescore.com/sheetmusic?text=zelda&recording_type=free-download' -p musescore \
  > /tmp/search.html
```

**The fetched HTML has no result cards** — MuseScore hydrates the DOM
client-side. The real data is an **HTML-entity-encoded JSON store** embedded
in the markup (MuseScore's analogue of a Next.js `__NEXT_DATA__` blob). `jq`
alone can't read it — decode the entities and bracket-match the array/object
you want first. `references/extract-store.js` is a small, dependency-free
Node script that does exactly that (mirrors `src/store.ts`'s
`recoverJson`/`findArrayByKey`/`findEnclosingObject`); pipe the saved HTML
through it, then `jq`:

```sh
node references/extract-store.js scores < /tmp/search.html | jq '.[] | {id, title, composer_name}'
```

Ready-to-run URL patterns (search, score detail, static render assets) and
their `jq` projections are in `references/endpoints.md`.

## The one rule: search returns ids, detail needs both ids

A score's canonical path is `/user/<userId>/scores/<scoreId>` — search card

_meta.json

{
  "ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
  "slug": "musescore-fpx",
  "version": "1.1.8",
  "publishedAt": 1791588278525
}

references/endpoints.md

# MuseScore endpoints for fpx

All paths are on the apex host `musescore.com` (no `www`). Every request
needs a signed-in tab with the Cloudflare challenge cleared — plain
`curl`/Node gets a "Just a moment…" 403. Live-verified shapes; taken from
`docs/MUSESCORE-API.md` and `src/*.ts` in this repo (2026-06).

`node extract-store.js` below refers to `references/extract-store.js`
(dependency-free; run it from this `references/` directory, or adjust the
path).

---

## 1. Search

```
GET https://musescore.com/sheetmusic?text=<q>&recording_type=free-download&instrument=<id>&complexity=<id>&page=<n>
```

```sh
fpx get 'https://musescore.com/sheetmusic?text=zelda&recording_type=free-download' -p musescore \
  > /tmp/search.html
node extract-store.js scores < /tmp/search.html \
  | jq '.[] | {id, title, composer: .composer_name, uploader: .user.name, pages: .pages_count, is_free, downloadable: .is_downloadable}'
```

Filter params (all optional besides `text`): `instrument`, `complexity`,
`genres`, `type`, `score_format`, `instrumentation`, `license`, `page`
(1-based; page 1 is the default and can be omitted).

- **`recording_type=free-download`** is MuseScore's "Free to view, play &
  download" facet — omit it to search the whole (mostly download-paywalled)
  catalog.
- **`instrument` and `complexity` are NUMERIC ids, not words.** A word
  (`instrument=piano`) matches nothing and MuseScore silently falls back to a
  "no results" recency feed. Verified ids:

  | instrument | id | | instrument | id |
  | --- | --- | --- | --- | --- |
  | piano | 2 | | flute | 22 |
  | trombone | 4 | | bassoon | 25 |
  | soprano | 6 | | saxophone alto | 54 |
  | alto | 7 | | violin | 68 |
  | accordion | 10 | | guitar | 72 |
  | harpsichord | 11 | | trombone tenor | 21 |
  | organ | 12 | | vocals / voice | 16 |
  | cornet | 13 | | baritone | 19 |
  | euphonium | 14 | | tuba | 15 |

  `complexity`: `1`=Beginner, `2`=Intermediate, `3`=Advanced.

- **The store's results array is keyed `"scores"`** — a no-match query omits
  it and emits `see_other_scores` / `no_result_scores` (a generic "see these
  instead" feed) plus a sponsored `scores_to_be_promoted` array instead.
  Always extract `scores` specifically (as above), not "the first array of
  objects", or a genuinely empty search will look like it returned results.

Per-score fields worth knowing: `id`, `user.{id,name,is_pro,is_publisher}`,
`title` (has `[b]…[/b]` + entities — decode with `decodeText`-style cleanup if
you need clean text), `composer_name`, `parts`, `pages_count`, `duration`,
`hits`/`favorite_count`/`download_count`/`comments_count`,
`instrumentations[].name`, `rating.{rating,count}`, and the flags
`is_free`/`is_downloadable`/`is_public_domain`/`is_official`/`is_purchased`.

## 2. Score detail

```
GET https://musescore.com/user/<userId>/scores/<scoreId>
```

```sh
fpx get 'https://musescore.com/user/12345/scores/67890' -p musescore > /tmp/score.html
node extract-store.js license --object < /tmp/score.html \

skill-card.md

## Description:

Queries MuseScore search results, score metadata, and official download links through a paired browser tab using the fpx CLI instead of an MCP server.

This skill is ready for commercial/non-commercial use.

## Publisher:

[chrischall](https://clawhub.ai/user/chrischall)

### License/Terms of Use:

MIT-0

## Use Case:

Developers and agents use this skill to search MuseScore, inspect score and license metadata, and resolve official download links in shell workflows without running the MuseScore MCP server.

### Deployment Geography for Use:

Global

## Known Risks and Mitigations:

Risk: Approved bridge pairing persists, so later fpx calls can reuse access to the MuseScore browser tab.

Mitigation: Verify the extension source, use a dedicated browser profile or minimally privileged tab, and revoke or reset pairing when no longer needed.

Risk: A resolved score download URL does not guarantee access to the file.

Mitigation: Check is_free or hasAccess before opening the official link in the browser; do not automate purchases.

## Reference(s):

- [MuseScore FPX on ClawHub](https://clawhub.ai/chrischall/skills/musescore-fpx)
- [MuseScore endpoint guide](references/endpoints.md)
- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)

## Skill Output:

**Output Type(s):** [Shell commands, JSON, Guidance]

**Output Format:** [Markdown with shell commands and JSON examples]

**Output Parameters:** [1D]

**Other Properties Related to Output:** [Resolves official download URLs but does not download score files through fpx.]

## Skill Version(s):

1.1.8 (source: ClawHub release metadata)

## Ethical Considerations:

Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
Github ReposUpdated 16h agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/chrischall/skills/musescore-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/skills/musescore-fpx",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T09:45:18.893Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musescore-fpx/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musescore-fpx/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-10T09:45:18.893Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1.5K downloads",
      "href": "https://clawhub.ai/chrischall/musescore-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/musescore-fpx",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T09:45:18.893Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.1.8",
      "href": "https://clawhub.ai/chrischall/musescore-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/musescore-fpx",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:24:38.525Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musescore-fpx/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musescore-fpx/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.1.8",
      "description": "- Removed the file: skill-card.md - No other changes to features or documentation.",
      "href": "https://clawhub.ai/chrischall/musescore-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/musescore-fpx",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:24:38.525Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 10, 2026.

Sponsored

Ads related to musescore-fpx and adjacent AI workflows.