Model Context Protocol
Connect SoundDeal to Claude or any MCP client and it can benchmark a deal term against real contracts, define what a clause means, analyze a contract in your account, and draft a negotiation brief from your side of the table — without you leaving the conversation.
Endpoint · Streamable HTTP
https://www.sounddeal.com/api/mcpThe surface
Three need no account at all — an agent can benchmark and define terms straight away. The other four act on your own contracts and need you to connect your SoundDeal account.
list_deal_typesPublicThe 11 deal types SoundDeal analyzes, each with a plain-English summary and the two sides the negotiation has.
get_deal_benchmarksPublicPercentile bands for advances, royalty rates, producer points, splits, term length and recoupment, plus distributions for structural terms. Aggregates only — never an individual deal.
explain_deal_termPublicPlain-English definition and market context for a contract term — recoupment, cross-collateralization, reversion, MFN, controlled composition.
analyze_dealAccountanalyses:writeRuns the full analysis on a contract and saves it to your account. Returns the deal health score, financial terms, red flags, redlines and missing clauses. Requires deal_type — use list_deal_types to choose — plus exactly one of contract_text or file_url. Uses one analysis from your plan.
get_analysisAccountanalyses:readReads an analysis already in your account. Free.
list_analysesAccountanalyses:readLists your saved analyses, newest first. Free.
generate_negotiation_briefAccountanalyses:writeA prioritized negotiation strategy for one analyzed contract, argued from one side of the table. Saves the brief to your account and spends from your daily Claude budget on a cache miss; cached per (analysis, side), so asking again for the same side is free.
Authentication
The public tools need no credentials. For the four that touch your own contracts, pick whichever fits how you are connecting.
OAuth · for Claude
Add SoundDeal as a connector and Claude walks you through signing in. You will see exactly which permissions are being asked for and can approve or refuse each connection. Nothing is shared until you say so, and you can disconnect at any time from Connected Apps.
Permissions are granular: benchmarks:read for public market data, analyses:read to open your contracts, and analyses:write to analyze new ones on your behalf.
API key · for code
Already have a SoundDeal API key? Send it as Authorization: Bearer sd_live_… and every account tool works against your own account. This is the simplest path for scripts, the Claude API, and anything non-interactive.
There is no consent screen on this path, because there is no third party to consent to — you minted the key. That also makes it all-or-nothing: a key used here carries all three permissions above, and does not expire until you revoke it. Treat one like a password.
Create an API key →Either way, the limits are the same ones you already have. An analysis run through MCP uses one analysis from your plan, exactly as if you had uploaded the contract on the website. Requests are rate limited per key, and per IP for anonymous callers.
Setup
Claude · web, desktop and mobile
In Claude, go to Settings → Connectors, then choose Add custom connector.
https://www.sounddeal.com/api/mcpClaude will send you to SoundDeal to sign in and show you what the connection is asking for. Approve it and the tools appear in your conversations. If you only want market benchmarks and no access to your contracts, approve just that permission.
Claude Code
Add the server from your terminal:
claude mcp add --transport http sounddeal https://www.sounddeal.com/api/mcpThen run /mcp inside Claude Code and pick sounddeal to sign in. Or configure it by hand in .mcp.json:
{
"mcpServers": {
"sounddeal": {
"type": "http",
"url": "https://www.sounddeal.com/api/mcp"
}
}
}Claude API · mcp_servers
The MCP connector in the Messages API takes the endpoint directly. Pass a SoundDeal API key as the authorization_token to reach the account tools, or omit it for the public ones.
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-04-04" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 4096,
"messages": [
{ "role": "user", "content": "What is a typical producer royalty for a UK deal?" }
],
"mcp_servers": [
{
"type": "url",
"url": "https://www.sounddeal.com/api/mcp",
"name": "sounddeal",
"authorization_token": "YOUR_SOUNDDEAL_API_KEY"
}
]
}'Any other MCP client
SoundDeal speaks Streamable HTTP at https://www.sounddeal.com/api/mcp. Server-Sent Events as a separate transport is not offered — it was removed from the MCP spec in the 2025-03-26 revision.
Authorization follows the MCP spec: an unauthorized request returns 401 with a WWW-Authenticate header pointing at /.well-known/oauth-protected-resource, so a spec-compliant client can discover the authorization server and start the flow on its own. Authorization code + PKCE (S256) and refresh tokens are supported; clients may identify themselves with a client ID metadata document or register dynamically.
Calling a public tool with plain curl:
curl -sS https://www.sounddeal.com/api/mcp \
-H "content-type: application/json" \
-H "accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_deal_benchmarks",
"arguments": { "deal_type": "producer-uk-eu" }
}
}'And with an API key, for an account tool:
curl -sS https://www.sounddeal.com/api/mcp \
-H "content-type: application/json" \
-H "accept: application/json, text/event-stream" \
-H "authorization: Bearer sd_live_your_key_here" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_analyses",
"arguments": {}
}
}'Worth knowing
get_deal_benchmarks returns percentile bands and distributions computed across deals analyzed through SoundDeal. It never returns an individual contract or a term traceable to one, and any metric computed from fewer than five deals is withheld — the tool says so rather than dropping it silently. Each figure carries its sample size and the date it was computed, so an agent can judge how much weight it supports.
A contract analyzed through MCP is saved to your account and is not added to SoundDeal's aggregate benchmark data. The website asks you that question explicitly when you upload; a tool call cannot ask anyone, so the answer defaults to no. See Trust, AI Assistants and Connector Access in our Privacy Policy, and Automated and Agent Access in our Terms for how uploads and connector access are handled.
Each call spends one analysis from your plan and runs a full LLM analysis, which can take a couple of minutes on a long contract. It is annotated idempotentHint: false for a reason: calling it twice on the same contract produces two analyses and spends two credits. If a call times out on the client side, the analysis usually still completes — check list_analyses before running it again. To re-read something already analyzed, use get_analysis, which is free.
analyze_deal will not guess what kind of agreement it is looking at. Call list_deal_types and choose — it returns every valid value with a plain-English summary of what that deal is. This is deliberate: the deal type selects which market norms the contract is judged against, so a producer agreement scored as a recording deal comes back confidently wrong rather than obviously wrong. If the contract does not make the type clear, ask rather than guess. The website detects the type on upload; that detection reads the uploaded file directly and is not reachable from a tool call yet.
analyze_deal needs exactly one of pasted contract_text or a file_url pointing straight at a PDF, DOCX or TXT (up to 20MB). Neither is optional as a pair: a call with deal_type alone has no contract to read and comes back as an error, and a call with both is also refused rather than resolved — two inputs are two different documents, and guessing wrong would analyze the wrong contract and still spend an analysis. Both errors are free and name the parameter to fix. A Drive or Dropbox share page is a web page, not a file, and will not work. Only public https URLs are fetched; private and internal addresses are refused. Scanned PDFs with no text layer need the website, which can OCR them.
SoundDeal supplements a qualified music attorney; it does not replace one. Every tool here is informational, including the negotiation brief. Consult counsel before signing, amending or terminating a contract.
The benchmark and glossary tools work right now, with no account. Sign in when you want it reading your own deals.