Blender integration through the Model Context Protocol
Doricomcp is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Read and edit a live Dorico 6 score by conversation, through Dorico's own interfaces.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user doricomcp '--' uvx doricomcp
# 2 — ask your agent for something these tools do
# dorico_status, list_capabilities, describe_commands and 63 more
Doricomcp costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Doricomcp as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need uv (docs.astral.sh/uv): uvx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user doricomcp '--' uvx doricomcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
66 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Live Dorico status (mode, selection, note input, undo availability) from Remote Control.
Takes no parameters.
The confirmation matrix: every capability, its mechanism and whether the live harness confirmed it.
Takes no parameters.
Search Dorico's 1,200 commands (regex on name/display name) with their parameters and enum values.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filter | string | no | — |
| limit | integer | no | — |
Exact accepted values of a Dorico enum type (or regex over enum type names).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
Type, display name and enum values of an event property (e.g. kNoteVelocity, kEventColour).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
Library entities (ids + names), live from Dorico: kInstrumentCollection, kClefCollection, kPlayingTechniqueAppearanceCollection, kOrnamentCollection, kTempoPresetCollection, kParagraphStyleCollection...
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection | string | yes | — |
| filter | string | no | — |
Escape hatch: run any catalogued Dorico command ("Namespace.Command?Param=value&..."), validated against the catalogue. With select_event_id the event is selected first in the same undo step.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| command | string | yes | — |
| select_event_id | integer | no | — |
| flow | integer | no | — |
A picture of Dorico's score window, to check engraving by eye. bar: scroll there first; zoom: view zoom in percent for the picture (e.g. 200 to read dynamics and small markings), restored afterwards.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bar | integer | no | — |
| zoom | integer | no | — |
| flow | integer | no | — |
Dorico's open dialogs (every window other than a project window): title, modal, the texts shown and the controls (role, title or label, value, enabled, path). A modal dialog blocks all commands until it is answered with dialog_click / dialog_set. Needs Accessibility permission for the app running…
Takes no parameters.
Press a control in a Dorico dialog: a button ("OK", "Cancel", "Apply", "Close"), checkbox, radio button or tab, by its title, the label before it, or its path from list_dialogs. dialog: its title, if several are open.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| control | string | yes | — |
| dialog | string | no | — |
Set a control in a Dorico dialog: a checkbox or radio button to true/false, a text field to text, a pop-up or combo box to one of its items (by name). control: its title, the label before it, or its path.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| control | string | yes | — |
| value | string | yes | — |
| dialog | string | no | — |
Forget cached reads (time signatures, dynamics, keys, structure); use after editing in Dorico by hand.
Takes no parameters.
Players, instruments, layouts and flows; per flow its streams and voices (voice-stream id -> instrument, staff index, voice index). Use the voice ids for read_music/add_notes.
Takes no parameters.
Bar numbers <-> positions, time signatures (read by Dorico's own equality API, cached) and optionally key signatures (include_keys: a letter-entry probe into an empty span; it plays 7 audition notes).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| flow | integer | no | — |
| include_keys | boolean | no | — |
Notes, chords, rests (explicit and implicit), grace notes, tuplets, slurs and articulations per voice, with exact positions, durations, spelled pitches, MIDI numbers and event ids. Range: bars (inclusive) or positions [from_pos, to_pos).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| flow | integer | no | — |
| voices | array | no | — |
| from_bar | integer | no | — |
| to_bar | integer | no | — |
| from_pos | string | no | — |
| to_pos | string | no | — |
| detail | string | no | — |
| grid_step | string | no | — |
Dynamics (levels incl. sfz/rfz/fz, hairpins), slurs, clefs, ottavas, text, tempo (text, bpm), holds, rehearsal marks, repeats, breaks, playing techniques (name), ornaments, time/key signatures in a range. Each row says whether its content is readable.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| flow | integer | no | — |
| from_bar | integer | no | — |
| to_bar | integer | no | — |
| from_pos | string | no | — |
| to_pos | string | no | — |
What is in force at a point: time signature, key signature, clef, dynamic level (and a hairpin running through the point), ottava, the last tempo marking (text, bpm), and the notes sounding in the voice.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| flow | integer | no | — |
| voice | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
| include_key | boolean | no | — |
Voice-leading check of the score: parallel and contrary fifths/octaves/unisons, hidden fifths/octaves in the outer voices, crossings, spacing over an octave between upper voices, leaps over max_leap semitones and tritone leaps. voices: from highest to lowest (default: ordered by average pitch).…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| voices | array | no | — |
| flow | integer | no | — |
| from_bar | integer | no | — |
| to_bar | integer | no | — |
| chords | string | no | — |
| key | string | no | — |
| max_leap | integer | no | — |
What changed in a flow: without since, take a snapshot and return its token; with since=<token>, list the events added, removed and changed since then, each marked by "server" (written through these tools) or "Dorico" (edited in Dorico by hand), and a new token. Changes inside dynamic groups…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| flow | integer | no | — |
| since | string | no | — |
The current selection in Dorico (event type and, if available, its properties).
Takes no parameters.
House-style options: kind kEngraving (per score), kNotation (per flow: flow_id), kLayout (per layout: layout_id).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | no | — |
| layout_id | integer | no | — |
| flow_id | integer | no | — |
| filter | string | no | — |
Write notes, chords and rests one after another from a position.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| notes | string | yes | — |
| voice | integer | yes | — |
| flow | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
| replace | boolean | no | — |
Delete the notes, rests, grace notes and tuplets of a voice in a range (bars inclusive, or positions [from_pos, to_pos)); slurs, text and other markings in the voice stay unless include_markings=True.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| voice | integer | yes | — |
| flow | integer | no | — |
| from_bar | integer | no | — |
| to_bar | integer | no | — |
| from_pos | string | no | — |
| to_pos | string | no | — |
| include_markings | boolean | no | — |
Delete events by id: notes, rests or markings (dynamics, hairpins, slurs, text, clefs, octave lines...).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_ids | array | yes | — |
| flow | integer | no | — |
Change one note's pitch and spelling (e.g. "F#4", "Ebb5") in place: it keeps its id, rhythm, slurs and articulations.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_id | integer | yes | — |
| pitch | string | yes | — |
| flow | integer | no | — |
Change a note's or rest's duration (crotchets or w h q e s t with dots).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_id | integer | yes | — |
| duration | string | yes | — |
| flow | integer | no | — |
Apply an edit to notes: pitch_up/pitch_down (diatonic steps x count), chromatic_up/down, octave_up/down, respell_above/below, double_duration, halve_duration, tie (to the next note of the same pitch), delete;
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_ids | array | yes | — |
| action | string | yes | — |
| count | integer | no | — |
| flow | integer | no | — |
Add a note at an interval to each given note, making a chord: "3" (third above), "-3", "maj3", "min6 below", "p5", "octave".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_ids | array | yes | — |
| interval | string | yes | — |
| flow | integer | no | — |
Add a grace note before the note at the given position (value: notated length, default quaver).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pitch | string | yes | — |
| voice | integer | yes | — |
| flow | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
| value | string | no | — |
Copy (or move) notes and rests of a range to another place or voice/staff (markings are not copied).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| voice | integer | yes | — |
| dest_voice | integer | yes | — |
| flow | integer | no | — |
| from_bar | integer | no | — |
| to_bar | integer | no | — |
| from_pos | string | no | — |
| to_pos | string | no | — |
| dest_bar | integer | no | — |
| dest_beat | string | no | — |
| dest_pos | string | no | — |
| move | boolean | no | — |
A tuplet typed with Dorico's note input, overwriting what is there: ratio "3:2", "5:4"; unit = the tuplet's note value (e, q, s, h); notes in add_notes syntax with notated values, e.g. "C5:e D5 E5" or "Eb4+G4:q B4 D5". Accidentals are always explicit (C#5, Ab4); plain letters mean naturals.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ratio | string | yes | — |
| unit | string | yes | — |
| notes | string | yes | — |
| voice | integer | yes | — |
| flow | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
Exchange the notes and rests of two voices in a range (e.g. divisi lines trading places), one undo step.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| voice | integer | yes | — |
| other_voice | integer | yes | — |
| flow | integer | no | — |
| from_bar | integer | no | — |
| to_bar | integer | no | — |
| from_pos | string | no | — |
| to_pos | string | no | — |
Start a new voice on the same staff as voice (e.g. a second, stems-down voice), typing notes (add_notes syntax, plain or single-dotted values). Returns the new voice id for later add_notes calls.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| notes | string | yes | — |
| voice | integer | yes | — |
| flow | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
staccato, staccatissimo, tenuto, accent, marcato, stress, unstress, staccato_tenuto on notes.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_ids | array | yes | — |
| kind | string | yes | — |
| flow | integer | no | — |
A line from one note to another in the same voice: slur, cresc, dim, messa_di_voce (hairpins), 8va, 8vb, 15ma, 15mb (octave lines), glissando. Only that voice gets it, even with other voices on the staff.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | — |
| start_event_id | integer | no | — |
| end_event_id | integer | no | — |
| spans | array | no | — |
| flow | integer | no | — |
A hairpin (cresc, dim, messa_di_voce) from one position to another, e.g. bar 33 beat 0 to bar 33 beat 3/2, wherever notes start (also inside a held note). voices: put the same hairpin on several instruments (one voice each), e.g. the whole string section. A hairpin starting at a dynamic joins its…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | — |
| voice | integer | yes | — |
| to_bar | integer | no | — |
| to_beat | string | no | — |
| to_pos | string | no | — |
| flow | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
| voices | array | no | — |
An immediate dynamic (p, pp, mp, mf, f, ff, sfz, fp, ...) on the voice's instrument at a position, also where no note starts (inside a held note) or where a hairpin ends. voices: the same on several instruments.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | — |
| voice | integer | yes | — |
| flow | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
| voices | array | no | — |
| at | array | no | — |
kind=ornament (value tr, mordent, inv, turn), hold (fermata, breath, caesura...), playing_technique (value: a name like pizz., arco, con sord., sul pont., ord., or a library id like pta.pizzText), tie, articulation (value staccato...).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_ids | array | yes | — |
| kind | string | yes | — |
| value | string | no | — |
| flow | integer | no | — |
Staff text (e.g. "dolce", "espress.") attached to a voice at a position.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | — |
| voice | integer | yes | — |
| flow | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
A clef change on the voice's staff: clef.treble, clef.bass, clef.alto, clef.tenor, clef.treble8ba ...
| Parameter | Type | Required | Notes |
|---|---|---|---|
| clef | string | yes | — |
| voice | integer | yes | — |
| flow | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
A tempo marking: "q=120", "Allegro q=132", "h.=60", "rit.", "a tempo".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | — |
| flow | integer | no | — |
| bar | integer | no | — |
| beat | string | no | — |
| pos | string | no | — |
Time signature from a bar on: 3/4, 6/8, 2+3/8, c, cut. Single n/d values are read back to confirm.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | — |
| bar | integer | yes | — |
| flow | integer | no | — |
Key signature from a bar on: "2#", "3b", "0", or names like "Eb", "F#m", "c minor".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | — |
| bar | integer | yes | — |
| flow | integer | no | — |
| beat | string | no | — |
Barline at the start of a bar: "||" double, "|:" start repeat, ":|" end repeat, ":|:", "|||" final, ":" dashed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | — |
| bar | integer | yes | — |
| flow | integer | no | — |
segno, coda, fine, "to coda", "D.C.", "D.C. al Fine", "D.C. al Coda", "D.S. al Fine", "D.S. al Coda".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | — |
| bar | integer | yes | — |
| flow | integer | no | — |
| beat | string | no | — |
A rehearsal mark (next letter in sequence) at the start of a bar.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bar | integer | yes | — |
| flow | integer | no | — |
Force a system or frame (page) break before a bar.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bar | integer | yes | — |
| kind | string | no | — |
| flow | integer | no | — |
Set any event property (all layouts), e.g. kNoteVelocity=100, kEventColour=#ffff0000, kEventScale=kCue, kNoteForcedVoiceDirection... Omit value to reset to default. See describe_property.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_ids | array | yes | — |
| name | string | yes | — |
| value | string | no | — |
| flow | integer | no | — |
| part | integer | no | — |
Set a house-style option (paths and values from get_options). kind: kEngraving, kNotation (flow_ids), kLayout (layout_ids). Written via Dorico's own commands (the setoptions message ignores layout ids).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | — |
| path | string | yes | — |
| value | string | yes | — |
| layout_ids | array | no | — |
| flow_ids | array | no | — |
Add a solo (or section) player holding an instrument from the library, e.g. instrument.strings.violin, instrument.wind.flute (list_library kInstrumentCollection).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| instrument | string | yes | — |
| section | boolean | no | — |
Give an existing player (index in get_score_overview players) an extra instrument (doubling).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| player_id | integer | yes | — |
| instrument | string | yes | — |
Rename a player (index in get_score_overview players).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| player_id | integer | yes | — |
| name | string | yes | — |
| short_name | string | no | — |
Add a new flow (movement) at the end of the project, with all players.
Takes no parameters.
Rename a flow (ids from get_score_overview flows).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| flow_id | integer | yes | — |
| name | string | yes | — |
Delete a flow and all its music (one undo step; undo restores it). Dorico's "all music ... will also be deleted" confirmation is answered OK. The last flow cannot be deleted.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| flow_id | integer | yes | — |
Remove an instrument and all its music (one undo step; undo restores it). Instrument ids are in get_score_overview players. Dorico's "will also delete all its music" confirmation is answered OK.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| instrument_id | integer | yes | — |
Add a custom score layout (optionally named). Part layouts are created automatically with players.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | — |
Rename a layout (ids from get_score_overview layouts).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layout_id | integer | yes | — |
| name | string | yes | — |
Include or exclude flows in a layout (Dorico does not expose a layout's flows for read-back).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layout_id | integer | yes | — |
| flow_ids | array | yes | — |
| include | boolean | no | — |
Instrument order template, e.g. instrumentscoreorder.orchestral, instrumentscoreorder.windband, instrumentscoreorder.choral (list_library kInstrumentScoreOrderCollection).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| order | string | yes | — |
Scroll Dorico's view to a bar.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bar | integer | yes | — |
| flow | integer | no | — |
Select an event in Dorico (e.g. to show the user). Note: selection changes are undo steps in Dorico.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_ids | array | yes | — |
| flow | integer | no | — |
Start playback (from a bar, or from the playhead).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from_bar | integer | no | — |
| flow | integer | no | — |
Stop playback.
Takes no parameters.
Undo the last count edits in Dorico (every tool write is one step). Selection steps left by this server's tempo reads are skipped; other selection changes (by hand, select_events) count as steps.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| count | integer | no | — |
Redo count steps. Only possible right after undo: every MCP read runs a Dorico script, and any script clears Dorico's redo stack (verified).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| count | integer | no | — |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Doricomcp or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (66 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| dorico_status | no tags | |
| list_capabilities | no tags | |
| describe_commands | no tags | |
| describe_enums | no tags | |
| describe_property | no tags | |
| list_library | no tags | |
| run_command | code-exec | code-exec: keyword "run_command" in tool name, parameter "command" |
| screenshot | no tags | |
| list_dialogs | no tags | |
| dialog_click | no tags | |
| dialog_set | no tags | |
| refresh | no tags | |
| get_score_overview | no tags | |
| get_bar_map | no tags | |
| read_music | no tags | |
| read_markings | no tags | |
| read_context_at | no tags | |
| check_voice_leading | no tags | |
| score_changes | no tags | |
| get_selection | no tags | |
| get_options | no tags | |
| add_notes | no tags | |
| delete_range | no tags | |
| delete_events | no tags | |
| set_pitch | no tags | |
| set_duration | no tags | |
| edit_notes | no tags | |
| add_interval | no tags | |
| add_grace_note | no tags | |
| copy_range | no tags | |
| add_tuplet | no tags | |
| swap_voices | no tags | |
| add_voice | no tags | |
| add_articulation | no tags | |
| add_span | no tags | |
| add_hairpin | no tags | |
| add_dynamic | no tags | |
| add_note_marking | no tags | |
| add_text | no tags | |
| add_clef | no tags | |
| set_tempo | no tags | |
| set_time_signature | no tags | |
| set_key_signature | no tags | |
| add_barline | no tags | |
| add_repeat_marker | no tags | |
| add_rehearsal_mark | no tags | |
| add_break | no tags | |
| set_property | no tags | |
| set_option | no tags | |
| add_player | no tags | |
| add_instrument | no tags | |
| rename_player | no tags | |
| add_flow | no tags | |
| rename_flow | no tags | |
| delete_flow | no tags | |
| remove_instrument | no tags | |
| add_layout | no tags | |
| rename_layout | untrusted-input | untrusted-input: handler fetches a URL taken from its input (got.get(layout_id) at doricomcp/server.py:881 |
| layout_flows | no tags | |
| set_score_order | no tags | |
| go_to | no tags | |
| select_events | no tags | |
| play | no tags | |
| stop | no tags | |
| undo | no tags | |
| redo | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.1.1. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Doricomcp can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.