Skip to main content
Glama
NoBanks

nolicense-nearby-mcp

by NoBanks

nolicense-nearby-mcp

MCP server for No License Nearby, an artist-owned sync licensing catalog of 880+ tracks. The artist owns 100% of every master and every publishing share, so one license clears the music.

Let Claude, Cursor or any video and editing agent search the catalog, audition tracks, see live license prices and build a quote, then hand the buyer the pre-filled license page.

Live catalog: https://license.nomusicnearby.com

No API key needed

All tools are read-only and use the public catalog. This MCP never submits license requests and never takes payment: buying happens on the No License Nearby website, where you submit a license request and usage rights activate after payment.

Related MCP server: BandSaaS MCP Server

Install

pip install nolicense-nearby-mcp
# or run without installing
uvx nolicense-nearby-mcp

Configure

{
  "mcpServers": {
    "nolicense": {
      "command": "uvx",
      "args": ["nolicense-nearby-mcp"]
    }
  }
}

Claude Code:

claude mcp add nolicense -- uvx nolicense-nearby-mcp

Optional: NOLICENSE_API_BASE (defaults to https://license.nomusicnearby.com).

Tools

Tool

What it does

Example prompt

search_tracks

Search by title, genre, mood, energy and musical key (filters combine)

"Find chill electronic tracks under 3 minutes for my vlog."

get_track

Details for one track

"Tell me about track 660."

get_preview_url

Audition link for a track

"Let me hear Showerhead."

list_license_tiers

Live prices: Social Media, TV + Streaming, Film

"What does a film license cost?"

quote_license

Quote for one or more tracks, including the multi-track discount

"Quote 3 tracks for social media."

get_license_checkout_link

The license page pre-filled with the track, plus the steps to finish

"I want to license Dat Piano for my film."

Prices are always read live from the catalog, never hardcoded. Tempo search is not available yet because tempo data is still being added to the catalog.

Development

pip install -e ".[dev]"
pytest

License

MIT

Available Tools

6 tools
get_preview_urlA

Use this when the user wants to listen to (audition) a track. The URL is for auditioning only; any use of the track in a project requires a license.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses an important behavioral constraint: the URL is for auditioning only and any project use requires a license. However, it doesn't describe other behavioral aspects like whether the URL expires, rate limits, or authentication requirements. This is useful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the primary use case and followed by an important license caveat. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, no output schema, no annotations), the description provides sufficient context: when to use it and the legal restriction. Missing details like URL expiration or authentication are minor for a preview URL endpoint, but could be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and there is 1 parameter (track_id). The description doesn't explain the parameter at all. However, the parameter is straightforward (an integer ID) and the schema includes a minimum constraint. The description adds no parameter-specific semantics, but baseline for 0 params is 4; with 1 param and no coverage, a 3 is appropriate because the parameter is simple and self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: getting a preview URL for auditioning a track. It distinguishes from siblings like get_track (metadata) and quote_license (pricing) by focusing on auditioning. However, it doesn't explicitly name the resource 'preview URL' in a verb+resource format, though the name already does that.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: 'when the user wants to listen to (audition) a track.' It also clarifies the usage restriction: 'The URL is for auditioning only; any use of the track in a project requires a license.' It doesn't mention alternatives like get_track for other purposes, but the usage condition is explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trackB

Use this when the user wants the full details of one track.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says nothing about read-only safety, error behavior when a track is missing, permissions required, or what 'full details' includes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single front-loaded sentence with no wasted words. It is efficient, though its brevity contributes to gaps in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, no output schema, and 0% parameter description coverage, the description is too sparse. It does not explain how to source track_id or what the returned details include, leaving the agent with minimal context beyond the schema's basic type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one required parameter (track_id) with 0% schema description coverage. The description mentions 'one track' but never explains the expected identifier format, where to obtain it, or constraints beyond the schema's type and minimum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the scope ('full details of one track') and implicitly distinguishes this from search_tracks, which handles multiple tracks. However, it does not explicitly name the retrieval action or resource type, relying on the tool name to fill that gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear when-to-use condition ('when the user wants the full details of one track'). It does not mention when not to use it or name alternatives like search_tracks, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_license_tiersB

Use this when the user asks what licenses cost or which license fits their project.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says nothing about whether this is a read-only lookup, whether results are cached/filtered, or what the returned tiers contain. 'List' weakly implies a non-destructive read, but the description discloses essentially no behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the trigger condition front-loaded and no filler. It is sized appropriately for a parameterless lookup tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description is the only source of information, yet it never indicates what is returned (tier names, prices, limits) or how the result should be used downstream. The calling surface is trivially complete, but the response semantics are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to explain; the schema explicitly states 'no parameters'. Baseline 4 applies per the rubric for a 0-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description implies the resource (license tiers/pricing) but never states a verb+object like 'lists available license tiers and their costs'. It is framed as a usage trigger rather than a statement of what the tool returns, so an agent must infer the purpose from the name. It is not a tautology, but it lacks a concrete purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a trigger condition ('when the user asks what licenses cost or which license fits their project'), which is real usage guidance. However, it never distinguishes this from the sibling quote_license, which plausibly also answers cost questions, and names no alternatives or exclusions. Usage is implied and partially ambiguous rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quote_licenseC

Use this when the user wants a price estimate for licensing specific tracks for a use.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYes
track_idsYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and adds almost nothing. It implies the result is a non-binding estimate, but says nothing about cost, currency, quote validity/expiry, permission requirements, or whether calling it has side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words. The phrasing "for a use" is slightly vague, but structurally it is tight and puts the usage trigger first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with zero schema coverage, no annotations, and no output schema, the description is too thin. An agent cannot determine the pricing semantics, the meaning of the tier enum values, the track count constraints, or what the estimate contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and does not. It gestures at tracks and "a use" without tying "use" to the required tier parameter or explaining what social/tv/film select, and it never mentions the 1-50 track_ids limit or the integer id format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: producing a price estimate for licensing tracks. It is clear what the tool returns conceptually, but it does not differentiate itself from the purchase-oriented sibling get_license_checkout_link or clarify its relationship to list_license_tiers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this when the user wants a price estimate" gives one clear trigger condition, so usage is implied rather than spelled out. It gives no when-not guidance and never names the alternatives (e.g., use get_license_checkout_link to actually purchase, list_license_tiers to enumerate options), leaving the agent to infer routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tracksB

Use this when the user wants to find licensable music by mood, genre, energy, key, or title words.

ParametersJSON Schema
NameRequiredDescriptionDefault
moodNo
genreNo
limitNo
queryNo
offsetNo
bpm_maxNo
bpm_minNo
use_caseNo
energy_maxNo
energy_minNo
camelot_keyNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It reveals nothing about pagination behavior despite limit/offset params, result ordering, result shape, or whether an empty result is possible — leaving core behavioral traits undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence naming the trigger and the facets with zero padding. Its brevity is appropriate in form even if the content is thin.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An 11-parameter search tool with no annotations, no output schema, and 0% schema coverage is under-served by one sentence. An agent gets no guidance on range filters, paging, use_case semantics, or what results look like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 11 parameters, so the description must compensate. It loosely names mood, genre, energy, key, and title words, but omits bpm_min/max, use_case, limit, and offset entirely, leaving roughly half the parameters undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('find') and resource ('licensable music') plus the facets searched. It distinguishes itself reasonably from siblings like get_track (retrieval by id) by framing this as a discovery tool, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use this when the user wants to...' framing gives clear triggering context tied to user intent and searchable facets. It lacks any when-not guidance or routing to sibling tools such as get_track once a specific track is identified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.1
    • First observedget_license_checkout_link
    • First observedget_preview_url
    • First observedget_track
    • First observedlist_license_tiers
    • First observedquote_license
    • First observedsearch_tracks

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct step in the music licensing workflow: search, track details, audition, license tier info, price quote, and checkout link. The descriptions clearly differentiate search_tracks from get_track and list_license_tiers from quote_license.

Naming Consistency5/5

All tools follow a consistent snake_case verb_noun pattern (search_tracks, get_track, get_preview_url, list_license_tiers, quote_license, get_license_checkout_link). No mixed conventions or vague verbs.

Tool Count5/5

Six tools is well-scoped for a music licensing assistant, covering discovery through checkout without redundancy. Each tool earns its place in the workflow.

Completeness5/5

The surface covers the full user journey from search to preview to license information to quote to checkout link. No critical operations appear missing given the intentional design that transactions happen on the external website.

Related MCP Connectors

Related MCP Servers