Muse Command Protocol

MuseHub speaks MCP 2025-11-25 — full Streamable HTTP with elicitation, progress streaming, and server-sent events. AI agents and human tools connect identically, as first-class citizens.

Connecting

Endpoint POST /mcp
SSE stream GET /mcp
Protocol 2025-11-25
Auth Authorization: Bearer <jwt>
Agent JWT token_type: "agent" claim → higher rate limits + activity badge
Machine docs GET /mcp/docs.json

Agent quick-start

  1. Send initialize → receive Mcp-Session-Id
  2. Call musehub_list_domains to discover available domain plugins
  3. Call musehub_get_domain(scoped_id="@author/slug") to read a manifest
  4. Call musehub_browse_repo + musehub_get_view to inspect state
  5. Use musehub/agent-onboard prompt for a full guided walkthrough

Tools 43

musehub_browse_repo server

Get an overview of a MuseHub repository: metadata, branches, and recent commits. Use this to orient yourself before reading files or analysing commit history. Example: musehub_browse_repo(repo_id='a3f2-...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
musehub_list_branches server

List all branches in a MuseHub repository with their head commit IDs. Call before musehub_list_commits to identify the target branch ref. Example: musehub_list_branches(repo_id='a3f2-...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
musehub_list_commits server

List commits on a MuseHub repository (newest first). Optionally filter by branch name and cap the result count. Example: musehub_list_commits(repo_id='a3f2-...', branch='main', limit=10).

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
branch string Branch name filter (e.g. 'main'). Omit to list across all branches.
limit integer Maximum commits to return (default: 20, max: 100).
musehub_read_file server

Read the metadata for a stored artifact (MIDI, MP3, WebP piano roll) in a MuseHub repo. Returns path, size_bytes, mime_type, and object_id. Binary content is not returned — discover object IDs via musehub_browse_repo first. Example: musehub_read_file(repo_id='a3f2-...', object_id='sha256:abc...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
object_id string yes Content-addressed object ID (e.g. 'sha256:abc...').
musehub_get_analysis server

[Deprecated — use musehub_get_domain_insights] Get structured analysis for a MuseHub repository. Dimensions: 'overview' returns repo stats + branch/commit/object counts; 'commits' returns commit activity summary; 'objects' returns artifact inventory grouped by MIME type. Example: musehub_get_analysis(repo_id='a3f2-...', dimension='overview').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
dimension string Analysis dimension: 'overview', 'commits', or 'objects'.
musehub_get_context server

Get the full AI context document for a MuseHub repository. This is the primary read-side interface for domain agents: it returns a structured summary of the repo's current state — domain plugin, branches, recent commits, artifact inventory, and repo metadata — in a single call. Feed this document to the agent before creating state changes to ensure coherence with the existing multidimensional state. Example: musehub_get_context(repo_id='a3f2-...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
musehub_get_commit server

Get detailed information about a single commit, including its message, author, timestamp, parent IDs, and the full list of artifact paths at that snapshot. Use to inspect what changed at a specific point in history. Example: musehub_get_commit(repo_id='a3f2-...', commit_id='sha256:abc...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
commit_id string yes Commit ID (SHA or short ID).
musehub_compare server

Compare two refs (branches or commit IDs) in a MuseHub repository. Returns a multidimensional state diff: which artifacts were added, removed, or modified, and per-dimension change scores sourced from the repo's domain plugin capabilities. Example: musehub_compare(repo_id='a3f2-...', base_ref='main', head_ref='feature/new-section').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
base_ref string yes Base branch name or commit ID.
head_ref string yes Head branch name or commit ID to compare against base.
musehub_list_issues server

List issues for a MuseHub repository. Filter by state (open/closed/all), label string, or assignee. Example: musehub_list_issues(repo_id='a3f2-...', state='open', label='bug').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
state string Filter by state: 'open', 'closed', or 'all'.
label string Filter to issues with this label string.
musehub_get_issue server

Get a single issue by its per-repo number, including the full comment thread. Example: musehub_get_issue(repo_id='a3f2-...', issue_number=42).

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
issue_number integer yes Per-repo issue number.
musehub_list_prs server

List pull requests for a MuseHub repository. Filter by state (open/merged/closed/all) and/or target branch. Example: musehub_list_prs(repo_id='a3f2-...', state='open').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
state string Filter by state: 'open', 'merged', 'closed', or 'all'.
musehub_get_pr server

Get a single pull request by ID, including reviews and inline comments. Example: musehub_get_pr(repo_id='a3f2-...', pr_id='b5e8-...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
pr_id string yes UUID of the pull request.
musehub_list_releases server

List all releases for a MuseHub repository, ordered newest first. Each release includes tag, title, release notes, and asset counts. Example: musehub_list_releases(repo_id='a3f2-...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
musehub_search_repos server

Discover public MuseHub repositories across all domains by text query, domain plugin, or free-text tags. Filter by domain scoped ID (e.g. '@cgcardona/midi') to browse repos of a specific type. Returns repos sorted by relevance. Example: musehub_search_repos(query='jazz', domain='@cgcardona/midi').

Parameters
NameTypeRequiredDescription
query string Free-text query matched against repo names and descriptions.
domain string Filter by domain scoped ID, e.g. '@cgcardona/midi' or '@cgcardona/code'.
tags array Filter repos that have all of these tags.
limit integer Maximum results to return (default: 20, max: 100).
musehub_list_domains server

List and search all registered Muse domain plugins. Domains are the extensibility layer that give Muse its domain-agnostic power — each domain defines its own dimensions, viewer, merge semantics, CLI commands, and artifact types. Filter by query string, viewer_type, or verified status. Returns scoped_id (@author/slug), display_name, description, capabilities, repo_count, and install_count for each domain. Example: musehub_list_domains(query='genomics', verified=true).

Parameters
NameTypeRequiredDescription
query string Full-text search across name and description.
viewer_type string Filter by viewer type (e.g. 'piano_roll', 'code_graph', 'generic').
verified boolean When true, return only officially-verified domains.
limit integer Maximum results (default 20, max 100).
offset integer Pagination offset.
musehub_get_domain server

Fetch the full manifest for a specific Muse domain plugin by its scoped ID. Returns all capabilities: dimensions list, viewer_type, merge_semantics, cli_commands, artifact_types, manifest_hash (content-addressed, immutable), version, repo_count, and install_count. Use this to understand what a domain can do before creating repos or generating domain-specific content. Example: musehub_get_domain(scoped_id='@cgcardona/midi').

Parameters
NameTypeRequiredDescription
scoped_id string yes Domain scoped identifier in '@author/slug' format.
musehub_get_domain_insights server

Get structured insights for a MuseHub repository across any of its domain's dimensions. The available dimensions are defined by the repo's domain plugin — call musehub_get_domain first to learn the dimension names. dimension='overview' always returns cross-domain stats (commits, objects, collaborators). Domain-specific dimensions return per-dimension analytics (e.g. 'harmonic' for MIDI, 'syntax' for Code). Example: musehub_get_domain_insights(repo_id='a3f2-...', dimension='harmonic').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
dimension string Insight dimension to fetch. 'overview' is always available; other values depend on the repo's domain plugin.
ref string Branch name, tag, or commit SHA to scope the insights to. Defaults to HEAD.
musehub_get_view server

Fetch the universal viewer payload for a repo at a given ref. Returns a structured representation of the multidimensional state as rendered by the domain's viewer — including dimension slices, navigation strip entries, and any domain-specific viewer metadata. This is the MCP equivalent of the /{owner}/{repo}/view/{ref} page. Useful for agents that need to inspect or reason about the full state without screen-scraping the HTML viewer. Example: musehub_get_view(repo_id='a3f2-...', ref='main').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
ref string Branch name, tag, or commit SHA. Defaults to HEAD of default branch.
dimension string Optional: restrict the view payload to a single dimension slice. Omit to get the full multi-dimensional view.
musehub_whoami server

Return identity information for the currently authenticated caller. Call this first to confirm authentication, get your user_id, and see how many repos you own. Works for both human users and AI agent tokens. Returns {authenticated: false} when called without a Bearer token. Example: musehub_whoami().

muse_clone server

Return the clone URL and Muse CLI command for a MuseHub repository. Use this to get the information needed to run 'muse clone' locally, or to fetch repo metadata before calling muse_pull. Example: muse_clone(owner='cgcardona', slug='neo-soul-experiment').

Parameters
NameTypeRequiredDescription
owner string yes Repository owner username.
slug string yes Repository slug (URL-safe name).
ref string Optional branch or tag to clone. Defaults to the default branch.
muse_pull server

Fetch missing commits and objects from a MuseHub repository. Equivalent to 'muse pull' — returns new commits and object metadata since the given commit ID. Use since_commit_id to fetch incrementally. Pass object_ids to download specific binary objects. Example: muse_pull(repo_id='a3f2-...', branch='main', since_commit_id='abc123').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the source repository.
branch string Branch to pull from. Defaults to the default branch.
since_commit_id string Only return commits newer than this commit ID.
object_ids array Specific object IDs to fetch (content-addressed).
muse_remote server

Return the remote URL and API endpoints for a MuseHub repository. Equivalent to 'muse remote -v' — returns the origin URL, push/pull API endpoints, and the CLI commands to add this repo as a remote. Example: muse_remote(owner='cgcardona', slug='neo-soul-experiment').

Parameters
NameTypeRequiredDescription
owner string yes Repository owner username.
slug string yes Repository slug (URL-safe name).
musehub_create_repo server

Create a new MuseHub repository for any Muse domain. The slug is auto-generated from the name. Specify a domain scoped ID (e.g. '@cgcardona/midi') to associate the repo with a domain plugin — this unlocks domain-specific viewers, insights, and CLI commands. Set initialize=true (default) to get an initial commit and default branch. Example: musehub_create_repo(name='Genome Edit Session', domain='@alice/genomics', visibility='public').

Parameters
NameTypeRequiredDescription
name string yes Human-readable repository name (slug auto-generated).
description string Optional markdown description of the repository.
visibility string Repository visibility: 'public' or 'private'.
domain string Domain plugin scoped ID (e.g. '@cgcardona/midi', '@cgcardona/code'). Call musehub_list_domains first to discover available domains.
domain_meta object Domain-specific metadata dict declared by the domain plugin (e.g. {"key_signature": "F# minor", "tempo_bpm": 120} for MIDI).
tags array Free-form tags for discovery (e.g. ['jazz', 'trio']).
initialize boolean When true (default), creates an initial commit and default branch.
musehub_create_issue server

Open a new issue in a MuseHub repository. Use issues to track musical problems, feature requests, or collaboration needs. Example: musehub_create_issue(repo_id='a3f2-...', title='Bass too muddy in bars 8-16').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
title string yes Issue title.
body string Optional markdown description.
labels array Label strings to apply on creation.
musehub_update_issue server

Update an existing issue's title, body, labels, state, or assignee. Only provided fields are modified. Set state='closed' to close the issue, state='open' to reopen it. Example: musehub_update_issue(repo_id='a3f2-...', issue_number=42, state='closed').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
issue_number integer yes Per-repo issue number.
title string New title (optional).
body string New markdown body (optional).
labels array Replacement label list (replaces existing labels).
state string New state: 'open' or 'closed'.
assignee string Username to assign, or empty string to unassign.
musehub_create_issue_comment server

Add a comment to an existing issue. Example: musehub_create_issue_comment(repo_id='a3f2-...', issue_number=42, body='Fixed in commit abc...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
issue_number integer yes Per-repo issue number.
body string yes Markdown comment body.
musehub_create_pr server

Open a new pull request proposing to merge from_branch into to_branch. Call musehub_list_branches first to confirm both branches exist. Example: musehub_create_pr(repo_id='a3f2-...', title='Add jazz bridge', from_branch='feature/jazz-bridge', to_branch='main').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
title string yes Pull request title.
from_branch string yes Source branch name to merge from.
to_branch string yes Target branch name to merge into.
body string Optional markdown description.
musehub_merge_pr server

Merge an open pull request. Creates a merge commit on the target branch. The PR must be in 'open' state. Obtain pr_id from musehub_list_prs. Example: musehub_merge_pr(repo_id='a3f2-...', pr_id='b5e8-...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
pr_id string yes UUID of the pull request to merge.
merge_strategy string Merge strategy: 'merge_commit' (default), 'squash', or 'rebase'.
musehub_create_pr_comment server

Post a comment on a pull request, optionally anchored to a specific dimension reference. Pass a dimension_ref object to pinpoint exactly where in the multidimensional state the comment applies — the shape of this object is defined by the repo's domain plugin. For MIDI: {"dimension": "rhythmic", "track": "Drums", "beat_start": 8.0, "beat_end": 12.0}. For Code: {"dimension": "syntax", "file": "src/main.py", "line_start": 42, "line_end": 55}. Omit dimension_ref for a general (PR-level) comment. Example: musehub_create_pr_comment(repo_id='a3f2-...', pr_id='b5e8-...', body='Unexpected state divergence here', dimension_ref={"dimension": "structural", "node": "bridge"}).

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
pr_id string yes UUID of the pull request.
body string yes Markdown comment body.
dimension_ref object Optional domain-specific anchor identifying where in the multidimensional state this comment applies. Schema is defined by the repo's domain plugin.
musehub_submit_pr_review server

Submit a formal review on a pull request. event='approve' approves the PR; event='request_changes' blocks merge; event='comment' adds a neutral review comment. Example: musehub_submit_pr_review(repo_id='a3f2-...', pr_id='b5e8-...', event='approve', body='Sounds great! The bridge lands perfectly.').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
pr_id string yes UUID of the pull request.
event string yes Review verdict: 'approve', 'request_changes', or 'comment'.
body string Optional review summary.
musehub_create_release server

Publish a new release for a MuseHub repository. A release pins a version tag to a commit and packages the musical snapshot. Tags must be unique per repo (e.g. 'v1.0', 'final-mix'). Example: musehub_create_release(repo_id='a3f2-...', tag='v1.0', title='First Release', body='Initial jazz session recording.').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
tag string yes Version tag string (e.g. 'v1.0'). Must be unique per repo.
title string yes Human-readable release title.
body string Markdown release notes.
commit_id string Optional commit UUID to pin this release to.
is_prerelease boolean When true, marks as pre-release.
musehub_star_repo server

Star a MuseHub repository to show appreciation and follow its activity. Starred repos appear in the user's starred list. Idempotent. Example: musehub_star_repo(repo_id='a3f2-...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository to star.
musehub_fork_repo server

Fork a public MuseHub repository under the authenticated user's account. Creates a new repo with all branches and establishes fork lineage. Only public repos can be forked. Example: musehub_fork_repo(repo_id='a3f2-...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the public repository to fork.
musehub_create_label server

Create a repo-scoped label with a name and hex colour. Labels can be applied to issues and PRs for categorisation. Label names must be unique within the repository. Example: musehub_create_label(repo_id='a3f2-...', name='harmonic-issue', color='e11d48').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
name string yes Label name (must be unique per repo).
color string yes 6-character hex colour without '#' (e.g. 'e11d48').
description string Optional label description.
musehub_create_agent_token server

Mint a long-lived JWT agent token for programmatic MuseHub access. Agent tokens have higher rate limits than user tokens and appear with an 'agent' badge in the MuseHub activity feed. After creating a token, store it with: muse config set musehub.token <token>. Requires an authenticated session (the token is issued for the calling user). Example: musehub_create_agent_token(agent_name='my-composer-bot/1.0', expires_in_days=90).

Parameters
NameTypeRequiredDescription
agent_name string yes Human-readable agent identifier, e.g. 'my-bot/1.0'. Appears in the activity feed alongside agent actions.
expires_in_days integer Token validity in days (default: 90, max: 365).
muse_push server

Push commits and binary objects to a MuseHub repository. Equivalent to 'muse push' — uploads new commits and base64-encoded binary objects in a single batch. Enforces fast-forward semantics unless force=true. Authentication required: call musehub_whoami or musehub_create_agent_token first. Example: muse_push(repo_id='a3f2-...', branch='main', head_commit_id='abc123', commits=[...], objects=[...]).

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the target repository.
branch string yes Target branch name (e.g. 'main').
head_commit_id string yes SHA of the new HEAD commit after this push.
commits array List of CommitInput objects to push. Each has: commit_id (str), parent_ids (list[str]), message (str), author (str), timestamp (ISO-8601 str), snapshot_id (str).
objects array List of ObjectInput objects to upload. Each has: object_id (str, e.g. 'sha256:abc...'), path (str, e.g. 'tracks/bass.mid'), content_b64 (str, base64-encoded bytes).
force boolean Allow non-fast-forward push (overwrites remote head). Use with caution.
muse_config server

Read info about Muse configuration keys or generate a 'muse config set' command. Equivalent to 'muse config get <key>' or 'muse config set <key> <value>'. Call without arguments to list all known MuseHub-related config keys. Pass key and value to get the exact CLI command to run. Key examples: musehub.token, musehub.url, musehub.username, user.name. Example: muse_config(key='musehub.token', value='eyJhbGc...').

Parameters
NameTypeRequiredDescription
key string Configuration key to query or set (e.g. 'musehub.token', 'musehub.url', 'user.name'). Omit to list all known keys.
value string When provided together with key, returns the CLI command 'muse config set <key> <value>'.
musehub_compose_with_preferences server elicitation

Interactively compose a musical piece by collecting user preferences via form-mode elicitation. Asks the user for key signature, tempo, time signature, mood, genre, reference artist, and duration. Returns a complete composition plan with chord progressions, section structure, harmonic tension profile, and a step-by-step Muse project workflow. Requires an active MCP session with elicitation capability. Example: musehub_compose_with_preferences(repo_id='a3f2-...').

Parameters
NameTypeRequiredDescription
repo_id string Optional repository to scaffold the composition into.
musehub_review_pr_interactive server elicitation

Review a pull request interactively by first eliciting the reviewer's focus dimension (melodic / harmonic / rhythmic / structural / dynamic / all) and depth (quick / standard / thorough). Returns a deep structured review targeting the user-chosen dimensions with harmonic tension and rhythmic consistency checks. Requires an active MCP session with elicitation capability. Example: musehub_review_pr_interactive(repo_id='a3f2-...', pr_id='pr-uuid').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the MuseHub repository.
pr_id string yes UUID of the pull request to review.
musehub_connect_streaming_platform server elicitation

Connect a streaming platform account (Spotify, SoundCloud, Bandcamp, YouTube Music, Apple Music, TIDAL, Amazon Music, Deezer) via URL-mode elicitation (OAuth). Directs the user to a MuseHub OAuth start page; once authorised, the agent can distribute Muse releases directly to the platform. Requires an active MCP session with URL elicitation capability. Example: musehub_connect_streaming_platform(platform='Spotify', repo_id='a3f2-...').

Parameters
NameTypeRequiredDescription
platform string Streaming platform name. Elicited from user if omitted.
repo_id string Optional repository context for release distribution.
musehub_connect_daw_cloud server elicitation

Connect a cloud DAW or mastering service (LANDR, Splice, Soundtrap, BandLab, Audiotool) via URL-mode elicitation (OAuth). Once connected, agents can trigger cloud renders, stems exports, and AI mastering jobs directly from MuseHub workflows. Requires an active MCP session with URL elicitation capability. Example: musehub_connect_daw_cloud(service='LANDR').

Parameters
NameTypeRequiredDescription
service string Cloud DAW / mastering service name. Elicited if omitted.
musehub_create_release_interactive server elicitation

Create a release interactively in two chained elicitation steps: (1) form-mode: collects tag, title, release notes, changelog highlight, and pre-release flag; (2) URL-mode (optional): offers streaming platform OAuth connection. Creates the release then returns distribution guidance for connected platforms. Requires an active MCP session with elicitation capability. Example: musehub_create_release_interactive(repo_id='a3f2-...').

Parameters
NameTypeRequiredDescription
repo_id string yes UUID of the repository to create the release in.

Resources 12

musehub://trending Trending Repositories

Top public MuseHub repositories ranked by recent star count across all domains. Use this to discover popular state repositories before browsing or forking.

musehub://me My Profile

Authenticated user's profile, public stats, and pinned repositories. Requires authentication.

musehub://me/notifications My Notifications

Unread notification inbox for the authenticated user: PR reviews, issue mentions, and new comments. Requires authentication.

musehub://me/starred My Starred Repositories

Repositories the authenticated user has starred. Requires authentication.

musehub://me/feed My Activity Feed

Recent activity (commits, PRs, issues) across repositories the authenticated user watches. Requires authentication.

muse://docs/overview Muse Paradigm Overview

High-level introduction to the Muse paradigm: State, Commit, Branch, Merge, and Drift. Explains how Muse extends version control from text/code to any multidimensional state space. Essential first read for any agent new to Muse.

muse://docs/protocol MuseDomainPlugin Protocol Spec

Full specification of the MuseDomainPlugin protocol — the six interfaces every domain plugin must implement: StateSerializer, DiffEngine, MergeStrategy, InsightProvider, ViewRenderer, and ArtifactManager. Read this to understand how domains work or to build a new one.

muse://docs/crdt Muse CRDT Reference

Reference for the CRDT data structures used in Muse's multi-agent merge engine: VectorClock, RGA (Replicated Growable Array), ORSet, and AWMap. Required reading for understanding conflict-free concurrent editing.

muse://docs/domains Domain Plugin Authoring Guide

Step-by-step guide for authoring and registering a new Muse domain plugin. Covers the MuseDomainPlugin scaffold, capability manifest schema, viewer registration, and publishing to the MuseHub domain registry.

muse://docs/merge Muse Merge Semantics

Three-way merge semantics and Operational Transform (OT) specification. Covers per-dimension conflict detection, domain-supplied merge strategies, and the Drift protocol for divergent branch reconciliation.

muse://domains Registered Domain Plugins

All domain plugins registered on this MuseHub instance, with their scoped IDs (@author/slug), dimension counts, viewer types, and install counts. Use musehub_list_domains for richer filtering.

musehub://me/tokens My Active Agent Tokens

Active agent JWT tokens issued to the authenticated user. Returns token metadata (never the raw token itself): agent_name, issued_at, expires_at, and last_used. Use musehub_create_agent_token to mint new tokens. Requires authentication.

Resource Templates 17

musehub://repos/{owner}/{slug} Repository Overview

Metadata, stats, and recent activity for a public repository.

musehub://repos/{owner}/{slug}/branches Repository Branches

All branches with their head commit IDs.

musehub://repos/{owner}/{slug}/commits Repository Commits

Paginated commit history (newest first) across all branches.

musehub://repos/{owner}/{slug}/commits/{commit_id} Single Commit

Detailed commit metadata including parent IDs and artifact snapshot.

musehub://repos/{owner}/{slug}/tree/{ref} File Tree

All artifact paths and MIME types at the given branch or commit ref.

musehub://repos/{owner}/{slug}/blob/{ref}/{path} File Metadata

Metadata for a single artifact (path, size, MIME type, object ID).

musehub://repos/{owner}/{slug}/issues Issues

Open issues for the repository.

musehub://repos/{owner}/{slug}/issues/{number} Single Issue

A single issue with its full comment thread.

musehub://repos/{owner}/{slug}/pulls Pull Requests

Pull requests for the repository.

musehub://repos/{owner}/{slug}/pulls/{number} Single Pull Request

A single pull request with reviews and inline musical comments.

musehub://repos/{owner}/{slug}/releases Releases

All releases ordered newest first.

musehub://repos/{owner}/{slug}/releases/{tag} Single Release

A specific release by tag with asset download counts.

musehub://repos/{owner}/{slug}/insights/{ref} Domain Insights

Domain-specific insight dimensions at a given ref. The dimensions returned are sourced from the repo's domain plugin capabilities — e.g. harmony/rhythm/melody for MIDI repos, or symbols/hotspots/coupling for code repos.

musehub://repos/{owner}/{slug}/timeline State Timeline

Chronological evolution of the repository's state across all dimensions. Shows commits, branch divergences, and structural milestones over time.

musehub://users/{username} User Profile

Public profile and list of public repositories for a user.

muse://domains/{author}/{slug} Domain Plugin Manifest

Full manifest for a specific registered domain plugin: capabilities, dimensions, viewer type, artifact types, merge semantics, and install instructions. Use {author}=cgcardona and {slug}=midi to read the built-in MIDI domain.

musehub://repos/{owner}/{slug}/remote Repository Remote Info

Remote URL, push/pull API endpoints, and Muse CLI commands for a repository. Returns origin URL, push endpoint, pull endpoint, clone command, and the 'muse remote add origin' command. Equivalent to 'muse remote -v' for a MuseHub repo.

Prompts 12

musehub/orientation

Explains MuseHub's model (repos, commits, branches, domains, multidimensional state) and which tools to use for what. The essential first read for any new agent or human.

musehub/contribute

End-to-end contribution workflow: discover repo → browse → open issue → push commit → create PR → request review → merge.

repo_id * — UUID of the target repository. owner — Repository owner username. slug — Repository slug.
musehub/create

Domain-agnostic state creation workflow: get context → understand existing dimensions → push new state commit → verify via domain insights. Works for any Muse domain (MIDI, Code, Genomics, etc.).

repo_id * — UUID of the repository to create state in. domain — Domain scoped ID (e.g. '@cgcardona/midi'). Auto-resolved from repo if omitted.
musehub/review_pr

Dimension-aware PR review: get PR → read domain insights → compare branches → submit review with dimension_ref-anchored comments.

repo_id * — UUID of the repository. pr_id * — UUID of the pull request to review.
musehub/issue_triage

Triage open issues: list → label → assign → link to milestones.

repo_id * — UUID of the repository whose issues to triage.
musehub/release_prep

Prepare a release: check merged PRs → write release notes → create release with version tag.

repo_id * — UUID of the repository to release.
musehub/onboard

Interactive creator onboarding (MCP 2025-11-25 elicitation-aware). Guides a new MuseHub creator through: profile setup → domain selection (via musehub_list_domains) → first repo creation → initial state scaffold → optional cloud integration. Requires an active session with elicitation capability.

username — MuseHub username of the creator being onboarded.
musehub/release_to_world

Full elicitation-powered release and distribution pipeline (MCP 2025-11-25). Step 1: interactively create a release via musehub_create_release_interactive (form-mode for metadata). Step 2: connect streaming platforms via musehub_connect_streaming_platform (URL-mode OAuth). Step 3: distribute and share the release across all connected services. Requires an active session with elicitation capability.

repo_id * — UUID of the repository to release.
musehub/domain-discovery

Guide for discovering, evaluating, and selecting a Muse domain plugin. Covers: listing domains → reading manifests → understanding capabilities (dimensions, viewer, merge semantics, CLI commands) → choosing the right domain for a given use case.

use_case — Optional description of what you want to version-control.
musehub/domain-authoring

End-to-end guide for building and publishing a new Muse domain plugin. Covers: designing dimensions → writing the domain manifest → implementing the viewer and merge semantics → publishing to MuseHub via the domains API → verifying the manifest hash.

domain_name — Name of the domain you want to build (e.g. 'Genomics', 'Circuit Design').
musehub/agent-onboard

Onboard an AI agent as a first-class Muse citizen (MCP 2025-11-25). Covers: authenticating with an agent JWT → reading the MCP resource catalogue → discovering domains → creating or forking a repo → running the first read-modify-commit cycle → understanding rate limits and agent-specific claims.

agent_name — Identifier or name of the agent being onboarded. domain — Domain scoped ID the agent will primarily work with.
musehub/push-workflow

Step-by-step guide for pushing a local Muse repository to MuseHub. Covers authentication setup, remote configuration, and the push command. Use this when an agent or user needs to publish work to MuseHub for the first time.

repo_id — UUID of the target MuseHub repository (if already created). owner — Repository owner username. slug — Repository slug.