nolicense-nearby-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nolicense-nearby-mcpfind chill electronic tracks under 3 minutes for my vlog"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpConfigure
{
"mcpServers": {
"nolicense": {
"command": "uvx",
"args": ["nolicense-nearby-mcp"]
}
}
}Claude Code:
claude mcp add nolicense -- uvx nolicense-nearby-mcpOptional: NOLICENSE_API_BASE (defaults to https://license.nomusicnearby.com).
Tools
Tool | What it does | Example prompt |
| Search by title, genre, mood, energy and musical key (filters combine) | "Find chill electronic tracks under 3 minutes for my vlog." |
| Details for one track | "Tell me about track 660." |
| Audition link for a track | "Let me hear Showerhead." |
| Live prices: Social Media, TV + Streaming, Film | "What does a film license cost?" |
| Quote for one or more tracks, including the multi-track discount | "Quote 3 tracks for social media." |
| 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]"
pytestLicense
MIT
Available Tools
6 toolsget_license_checkout_linkA
Use this when the user is ready to buy a license for a track. There is no instant checkout: the human requests and pays the license on the No License Nearby website. This tool never submits anything and never takes payment.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | ||
| track_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it explicitly states the tool never submits anything and never takes payment, preempting the assumption that a 'checkout' tool performs a transaction. It does not cover auth requirements or what the returned artifact looks like, but the key non-destructive behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the trigger condition followed by the two key behavioral caveats. Every sentence carries information; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no annotations and no output schema, the workflow and non-transactional nature are covered. However, the return value (a link/page) is only gestured at, and parameter semantics are unaddressed, leaving gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description adds no meaning to either parameter. It implies a track is needed (hence track_id), but the tier enum values (social/tv/film) are left entirely unexplained in both schema and description, which is a real gap for a required enum parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific trigger and outcome: the user is ready to buy a license for a track, and the tool produces the page where the human pays. It distinguishes itself from quote_license/list_license_tiers by clarifying this is the checkout step, not a quote or tier listing. It never literally says it returns a link, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use condition ('when the user is ready to buy a license'). It also rules out the obvious false assumption with 'there is no instant checkout,' implying quote_license/list_license_tiers come earlier in the flow. It stops short of naming those siblings explicitly as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| track_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| track_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | ||
| track_ids | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mood | No | ||
| genre | No | ||
| limit | No | ||
| query | No | ||
| offset | No | ||
| bpm_max | No | ||
| bpm_min | No | ||
| use_case | No | ||
| energy_max | No | ||
| energy_min | No | ||
| camelot_key | No |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v0.1.1- First observed
get_license_checkout_link - First observed
get_preview_url - First observed
get_track - First observed
list_license_tiers - First observed
quote_license - First observed
search_tracks
TDQS
Scored across 6 tools
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.
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.
Six tools is well-scoped for a music licensing assistant, covering discovery through checkout without redundancy. Each tool earns its place in the workflow.
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
Generate, edit and stream royalty-free music, or search a licensed catalogue.
Free, copyright-safe AI music library for video creators and AI agents.
Search 2M+ licensed production-music tracks, find similar ones by track or audio, share pick lists.
The media memory layer for AI agents and their humans. Your AI client gets 29 tools to search your collection, add items, update ratings, preview music, and find patterns across everything you've read, watched, and listened to.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to search, license, and pay for rights-clean music per use, returning a verifiable license certificate.5MIT
- FlicenseNot gradedqualityBmaintenanceEnables musicians and their agents to manage AI licensing, register tracks by ISRC, issue/revoke licences, access compliance audit trails, and run their artist platform (merch, events, subscriptions, crowdfunding) through natural language with 46 tools.12 npm1-

AINSOF MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search a curated production-music catalogue by brief or reference link, listen to full previews, and score videos with synced music, plus retrieve stems, versions, and cue sheets for licensing.MIT- AlicenseAqualityBmaintenanceProvides access to Lightning FM's music catalog, allowing agents to search tracks, look up artists, and check the currently playing track and stream URL via public Nostr and Blossom infrastructure.382 npmMIT