withPICA Directory
REMOTE · DIRECTORY.WITHPICA.COM
Public music-rights directory: who wrote and owns a song, its ISWC/ISRC/IPI, and licensing asks
Available components
Last scanned (1 hour ago)
Scores higher than 53% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Entertainment and Games
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: this server exposes a tool marked destructive (directory_send_licensing_enquiry) and its handshake is open, but we could not confirm whether a tool call is gated, so we do not assert it is callable unauthenticated. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability78
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4942 tokens (~260/item across 19 items; 13 tools + 6 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
- Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
- Stability: unverified → 0.03 ▲ functional
- 4 Nov 26 67
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://directory.withpica.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.withpica.com | CN=YR1,O=Let's Encrypt,C=US | 29 Oct 2026 | 27 Jan 2027 | RSA 2048 | SHA256-RSA | 5802955107ba933404e603980218aa00294 |
| SANs: *.withpica.com | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of directory.withpica.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| withpica.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://*.googletagmanager.com https://www.google-analytics.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: blob: https://i.scdn.co https://img.youtube.com https://i.ytimg.com https://is1-ssl.mzstatic.com https://cdns-images.dzcdn.net https://api.deezer.com https://*.supabase.co https://*.amazonaws.com https://*.backblazeb2.com https://storage.googleapis.com https://*.blob.core.windows.net https://*.r2.cloudflarestorage.com https://vercel.com https://vercel.live https://*.vercel.com https://*.vercel.live; connect-src 'self' https://*.supabase.co wss://*.supabase.co https://*.sentry.io https://www.google-analytics.com https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com https://api.openai.com https://api.anthropic.com https://vercel.live wss://ws-us3.pusher.com https://*.amazonaws.com https://*.backblaz |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://directory.withpica.com/mcp | Verified | 200 | |
| http (plaintext) | http://directory.withpica.com/mcp | HTTPS enforced | 308 | https://directory.withpica.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
directory_chain Rights chain for a work ~616
Use when the user asks: 'show me the rights chain for X', 'give me everything on this song', 'what's the full picture for X?', 'trace the chain from this writer to that work'. Graph lookup — resolves a query, ISWC, or ISRC to its full rights chain in one call. Each result bundles the work, its writers and publishers (names + roles, no IPIs or splits), the linked recording (ISRC, DSP presence, duration), and audio characteristics (BPM, key, energy). Prefer over stitching list_works + lookup_work + lookup_person when you want the whole graph around a track in a single round-trip. Supports audio-only queries (min_bpm, key, mood, etc.) when you don't have a text query. Work results carry programmable_since (every owner confirmed a locked split) and ready_to_license (composition and a master confirmed, with audio, ISRC and ISWC); filter to either with programmable_only / ready_to_license. → then: directory_lookup_work (deeper work detail), directory_list_people (research a named writer by name)
| Name | Type | Req | Description |
|---|---|---|---|
| identifier | string | – | ISWC or ISRC — direct identifier lookup |
| key | string | – | Musical key (e.g. 'C', 'F#', 'Bb') |
| key_mode | string | – | Key mode |
| limit | number | – | Max results (default 10, max 20) |
| max_bpm | number | – | Maximum BPM |
| max_energy | number | – | Maximum energy, 0 to 1 (measured loudness) |
| min_bpm | number | – | Minimum BPM |
| min_energy | number | – | Minimum energy, 0 to 1 — measured loudness, not a mood |
| mood | string | – | Mood — one of: aggressive, ambient, calm, contemplative, dark, dramatic, dreamy, energetic, epic, ethereal, hopeful, intense, melancholic, nostalgic, passionate, playful, romantic, sad, tender, tense… |
| programmable_only | boolean | – | Only programmable works — every owner confirmed a locked split, so a licence fee is paid to each without chasing sign-off. Drops people from text results. |
| q | string | – | Free-text query (work title, creator name, etc.). Minimum 2 characters. |
| ready_to_license | boolean | – | Only works ready to license — composition and a master confirmed by every owner, that recording has audio and an ISRC, and the work has an ISWC. Audio results are the ready recordings themselves. Dro… |
No output schema declared.
No examples provided.
directory_list_people List creators ~191
Use when the user asks: 'list creators in PICA', 'people starting with B', 'browse the people directory'. Browse and filter creators in the PICA public directory. Filter by free-text (q), ISNI, IPI, or starting letter (A–Z, or '#' for numeric). Returns paginated results. Each result carries global_creator_id, the ID directory_lookup_person takes. → then: directory_lookup_person (identifiers, roles, listed-work count and collaborators for one creator)
| Name | Type | Req | Description |
|---|---|---|---|
| ipi | string | – | Filter by IPI number |
| isni | string | – | Filter by ISNI identifier |
| letter | string | – | Filter by last name starting letter (A–Z), or '#' for numeric |
| page | number | – | Page number (default: 1, 20 results per page) |
| q | string | – | Text search across creator names |
No output schema declared.
No examples provided.
directory_list_works List works ~400
Use when the user asks: 'list works in PICA', 'works starting with B', 'find works by publisher X', 'browse the catalog', 'a song about love', 'songs about X'. For a theme or subject, search its plain word in q ('love', 'home', 'summer'): titles carry the theme. Start here before any mood or sound search, which only narrows. Browse and filter musical works their owners have listed in the PICA public directory. Filter by free-text (q), ISWC, ISRC, publisher, label, or starting letter (A–Z, or '#' for numeric). Sort by title (default) or recent. Returns paginated results. Each work carries ai_origin: whether the OWNER declared it human-made, AI-assisted or AI-generated (or 'not stated' — never assume human-made), with ACRCloud's AI detection beside it. Set human_made_only to keep only works the owner declared human-made that ACRCloud does not call likely AI. → then: directory_lookup_work (full details with credits and audio)
| Name | Type | Req | Description |
|---|---|---|---|
| human_made_only | boolean | – | Only works the owner declared human-made, leaving out any ACRCloud calls likely AI-generated. |
| isrc | string | – | Filter by ISRC (exact match, cross-table recording lookup) |
| iswc | string | – | Filter by ISWC (e.g. T-123.456.789-0) |
| label | string | – | Filter by record label (partial match) |
| letter | string | – | Filter by title starting letter (A–Z), or '#' for numeric |
| page | number | – | Page number (default: 1, 20 results per page) |
| publisher | string | – | Filter by publisher name (partial match) |
| q | string | – | Text search across work titles and identifiers |
| sort | string | – | Sort order (default: title) |
No output schema declared.
No examples provided.
directory_lookup_isrc Look up a work by ISRC ~109
Use when the user asks: 'lookup ISRC X', 'what's the work for ISRC X?', 'find the work for this recording'. Shortcut: look up the work(s) associated with a recording identifier (ISRC). Equivalent to directory_list_works with an isrc filter, pinned for recording-first discovery. → then: directory_lookup_work (full details on the matched work)
| Name | Type | Req | Description |
|---|---|---|---|
| isrc | string | yes | ISRC code (e.g. USABC1234567) |
No output schema declared.
No examples provided.
directory_lookup_person Look up a creator ~271
Use when the user asks: 'lookup IPI 12345', 'lookup ISNI X', 'find creator by MusicBrainz ID'. Also use it for the profile of a creator already found with directory_list_people or directory_search. Looks up ONE creator in the PICA public directory by an identifier: global_creator_id (UUID, from directory_list_people or directory_search), ISNI, IPI number, or MusicBrainz ID. It does not accept a name: to find a creator by name, or to choose between several people with the same name, use directory_list_people (q) or directory_search first. Returns the creator's name, identifiers (IPI, ISNI, MusicBrainz), roles, the number of their works listed in the directory, their PICA profile grade, and up to five collaborators on those listed works. It does not list the works themselves: use directory_list_works or directory_search with the creator's name for those. An unknown identifier returns not found. → then: directory_list_works (their listed works, by name)
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | global_creator_id (UUID) from directory_list_people or directory_search, an ISNI, an IPI number, or a MusicBrainz ID. Not a name, and not person_id. |
No output schema declared.
No examples provided.
directory_lookup_work Look up a work ~251
Use when the user asks: 'what's the ISWC for X?', 'who wrote X?', 'tell me about song X', 'is this song registered?'. Get the details of a single listed work by ISWC or work UUID. Returns the credits, one per person with each role marked confirmed or not confirmed by that person, and the person's IPI; each writer's share of the work, only when the owner chose to show shares AND that writer confirmed it themselves (with how many writers have); the recordings' ISRCs, audio analysis (BPM, key, energy) when the audio has been analysed, streaming links (Spotify, Apple Music, YouTube), AI origin (what the owner declared, with ACRCloud's detection beside it), the work's PICA score, and whether the owner is taking licensing enquiries, as a markdown summary. Fields with no data are omitted. → then: directory_lookup_person (a credited writer, by the credit's global_creator_id or IPI), directory_search_recordings (find similar tracks by audio)
| Name | Type | Req | Description |
|---|---|---|---|
| identifier | string | yes | ISWC (e.g. T-123.456.789-0) or work UUID |
No output schema declared.
No examples provided.
directory_release_notes Release notes ~238
Use when the user asks: 'what's new in the directory mcp', 'what changed in the directory', 'directory release notes', 'what version is the directory on'. Returns recent releases of the PICA directory MCP server — what shipped in the public catalogue surface itself. NOT for catalogue content searches (use directory_search / directory_list_works / directory_chain for those). Returns { package, current_version, releases: [{ version, date, sections, markdown }], resource_uri }. Defaults to the last 3 releases; use `since_version` to bound the output or `sections` to filter to Added/Fixed/etc. → then: directory_search (explore anything a release note mentions)
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Maximum number of releases to return. Default 3, max 20. |
| sections | array | – | Filter each release's sections to only these names (e.g. ['Added', 'Fixed']). Sections not in the list are omitted from output. |
| since_version | string | – | If set, returns only releases strictly greater than this version (semver-compared). Versions equal to since_version are excluded. |
No output schema declared.
No examples provided.
directory_search Search the directory ~185
Use when the user asks: 'find me X', 'who or what is X?', 'find any record of X', 'a song about X'. Use when the entity type is not yet known. Convenience fan-out across works and creators — runs list_works and list_people with the same query and returns the union. No cross-type ranking; prefer list_works or list_people when the entity type is known. → then: directory_lookup_work (work details), directory_lookup_person (creator details, by the result's global_creator_id)
| Name | Type | Req | Description |
|---|---|---|---|
| human_made_only | boolean | – | Works only: keep works the owner declared human-made that ACRCloud does not call likely AI-generated. |
| query | string | yes | Search query — matches work titles, ISWCs, creator names, ISNIs |
| type | string | – | Limit results to a specific entity type |
No output schema declared.
No examples provided.
directory_search_recordings Find recordings by sound ~851
Use when the user asks: 'find upbeat tracks around 120 BPM', 'find instrumental tracks in C minor', 'find energetic music for sync', 'tracks at X BPM in [key]'. AUDIO-FEATURE search only — for name- or title-shaped queries use directory_lookup_work, directory_lookup_isrc, or directory_list_people, NOT this tool. Not for a theme or subject ('a song about love'): search that in directory_list_works q first, then narrow here. Few recordings carry a mood yet, so an empty mood search does not mean the directory has no such song. Find tracks by BPM, key, energy, danceability, duration, mood, and more. The measured filters (BPM, key, energy, …) match analysed audio only; a mood search also returns works whose owner set the mood, marked mood_note "mood set by the owner, not analysed" — say so when you present them. Only returns recordings of works listed on the directory by their owner or a confirmed writer. → then: directory_lookup_work (credits and licensing details for a matched track)
| Name | Type | Req | Description |
|---|---|---|---|
| instrumental_only | boolean | – | Only songs or recordings the OWNER marked instrumental (not a measurement). |
| key | string | – | Musical key (e.g. 'C', 'F#', 'Bb'). Matches the detected key. |
| key_mode | string | – | Key mode — major or minor |
| limit | number | – | Max results to return (default: 20, max: 100). |
| max_bpm | number | – | Maximum BPM (e.g. 140) |
| max_brightness | number | – | Maximum brightness, 0 to 1 (measured). |
| max_danceability | number | – | Ignored: danceability is not measured. |
| max_duration | number | – | Maximum duration in seconds. |
| max_dynamics | number | – | Maximum dynamics, 0 to 1 (see min_dynamics). |
| max_energy | number | – | Maximum energy, 0 to 1 (measured loudness). |
| max_rhythmic_density | number | – | Maximum rhythmic density, 0 to 1 (see min_rhythmic_density). |
| min_bpm | number | – | Minimum BPM (e.g. 100) |
| min_brightness | number | – | Minimum brightness, 0 to 1 — measured high-frequency content (spectral rolloff), not a mood. 0 = the darkest 5% of the directory, 1 = the brightest 5%. |
| min_danceability | number | – | Ignored: danceability is not measured. Use min_rhythmic_density or min_energy. |
| min_duration | number | – | Minimum duration in seconds. |
| min_dynamics | number | – | Minimum dynamics, 0 to 1 — measured loudness range (EBU R128). Not yet calibrated: accepted and ignored until it is (the result's ignored_filters says so). |
| min_energy | number | – | Minimum energy, 0 to 1 — measured loudness (ITU-R BS.1770 integrated loudness on a quiet-to-loud scale), not a mood. Higher = louder. |
| min_rhythmic_density | number | – | Minimum rhythmic density, 0 to 1 — measured onsets per second. Not yet calibrated: accepted and ignored until it is. |
| mood | string | – | Mood — one of: aggressive, ambient, calm, contemplative, dark, dramatic, dreamy, energetic, epic, ethereal, hopeful, intense, melancholic, nostalgic, passionate, playful, romantic, sad, tender, tense… |
| vocals_only | boolean | – | Ignored: vocals are not measured and owners do not mark them. |
No output schema declared.
No examples provided.
directory_send_licensing_enquiry Send a licensing enquiry ~640
Use when the user asks: 'ask the owner if I can license this', 'send a licensing enquiry for X', 'contact the rights holder about using this song'. Side effect: this SENDS AN EMAIL. It records a licensing enquiry for a work listed in the public directory and emails it to the work's owner, who can reply to the user by email (the user's address is shared with them); a confirmation email to the user is usually sent but not guaranteed. Nothing is agreed or priced: it only opens the conversation. This is the ONLY way to reach a listed work's owner: PICA never shares the owner's email address, so never draft the enquiry as an email for the user to send, and never guess an address. Sending through this tool is also what records the enquiry for the owner. ONLY call after the user has explicitly asked to send it and has given their own name, email and a description of the project. Never invent these, and never send on their behalf without asking. Get work_id from directory_lookup_work, directory_list_works or directory_chain. A 403 means the owner is not taking enquiries; a 404 means the work is not publicly listed; an unknown outcome means it may already have been sent, so never resend without asking. MORE WORKS FROM THE SAME OWNER: before sending, you may call directory_similar_from_owner and offer the user the owner's similar works. Put a work in also_work_ids ONLY if the user explicitly said yes to adding that work; never add works on your own judgement. All works go to the one owner in one enquiry (at most 10 in all); a work from another owner is refused. NOT FOR: looking up who owns a work (use directory_lookup_work). → first: directory_similar_from_owner (optional, to offer more of the owner's works) → then: directory_lookup_work (the work page and credits, to share with the user)
| Name | Type | Req | Description |
|---|---|---|---|
| also_work_ids | array | – | More works from the SAME owner to include, from directory_similar_from_owner, and only the ones the user explicitly agreed to add. Omit otherwise. |
| budget_amount | number | – | Proposed fee, only if the user named one (optional). |
| budget_currency | string | – | Three-letter currency code (default GBP). |
| budget_notes | string | – | Anything the user said about budget that isn't a single amount, e.g. a range. |
| company_name | string | – | The user's company or production (optional). |
| contact_email | string | yes | The user's own email address. The owner will reply to it. |
| contact_name | string | yes | The user's own name, as they gave it. |
| project_description | string | yes | How the music would be used, in the user's words. |
| project_type | string | yes | The kind of project. |
| term | string | – | For how long (optional; omit if the user didn't say). |
| territory | string | – | Where it would be used (optional; omit if the user didn't say). |
| work_id | string | yes | The work's UUID from the directory. |
No output schema declared.
No examples provided.
directory_similar_from_owner More works from the same owner ~185
Use when the user asks: 'does this owner have anything similar?', 'any other songs like this from them?'. Typically while they are asking about licensing one song. Returns up to 9 of the SAME owner's other listed works that share this work's topics, genre or tempo, each with the reasons, and how many listed works the owner has in all. Never another owner's works. Nothing is sent: offer them to the user, and add any to directory_send_licensing_enquiry's also_work_ids only if the user explicitly says yes. Empty when the work is not listed or the owner is not taking enquiries. → then: directory_send_licensing_enquiry (with the user's go)
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | How many to suggest (default 9). |
| work_id | string | yes | The work the user is asking about (UUID). |
No output schema declared.
No examples provided.
directory_skill_get Get a directory skill ~153
Use when the user asks: 'load a directory skill', 'use the sync brief method'. Call after directory_skill_list, to load the one skill the user's request matches (e.g. find-music-for-sync-brief). Returns the full methodology body for one directory skill — markdown with step-by-step instructions and tool chains. Call directory_skill_list first to see available skill names, then directory_skill_get to load one. Read once at the start of the workflow; do not re-fetch on every step. → then: directory_search (run the loaded methodology against the catalogue)
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Kebab-case skill name from directory_skill_list (e.g. 'find-music-for-sync-brief'). |
No output schema declared.
No examples provided.
directory_skill_list List directory skills ~79
Use when the user asks: 'what skills do you have?', 'what can you do?', 'show me your methodologies', 'how do I find music here?'. Returns the list of downloadable directory skill methodologies — name, description, trigger phrases. Cheap to call. → then: directory_skill_get (load a specific skill's full methodology body)
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
How do I install the withPICA Directory MCP server?
withPICA Directory is a hosted endpoint at https://directory.withpica.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · directory.withpica.com
claude mcp add --transport http withpica-pica-directory 'https://directory.withpica.com/mcp'
What is the withPICA Directory MCP server?
withPICA Directory is an MCP server listed in the public MCP registry as io.github.withpica/pica-directory. Public music-rights directory: who wrote and owns a song, its ISWC/ISRC/IPI, and licensing asks. This page covers its hosted endpoint (https://directory.withpica.com/mcp).
Is the withPICA Directory MCP server safe to use?
withPICA Directory scores 68 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the withPICA Directory MCP server expose?
withPICA Directory exposes 13 tools: directory_list_works, directory_lookup_work, directory_lookup_isrc, directory_list_people, directory_lookup_person, and 8 more. Their descriptions and schemas cost roughly 4,169 tokens of context every time the server is loaded.
Does the withPICA Directory MCP server require authentication?
No. We connected to withPICA Directory without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the withPICA Directory MCP server still maintained?
withPICA Directory is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.