Matthew Hartley Music MCP
Server Details
The first artist-owned MCP server. Discover, narrate, and stream Matthew Hartley's debut album The Time Is Now from any compatible AI client. Exposes 8 tools (list_songs, get_song, list_chapters, get_chapter, get_artist, get_experience, get_experience_prompt, refresh_stream_urls) over a public HTTP endpoint with no auth. Apache 2.0 licensed.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 8 of 8 tools scored.
Each tool targets a distinct resource and action: artist profile, chapter details, curated experience playlist, experience presentation directives, individual song, chapter list, song list, and stream URL refresh. The only potential overlap is between get_song and list_songs with full=true, but descriptions clarify the use cases.
All tools follow a consistent verb_noun pattern (get_*, list_*, refresh_*) with snake_case, making it easy to predict tool names and understand their function.
8 tools is well within the ideal range for a read-only music catalog server. Each tool has a clear purpose and the set feels neither bloated nor sparse.
The tool surface covers the full user journey: discovering the artist, browsing chapters and songs, retrieving detailed song data, accessing curated experiences, and refreshing stream URLs. No obvious missing operations for a read-only API.
Available Tools
8 toolsget_artistAInspect
Get the artist profile including bio, images, social links, narrative voice, and AI presentation directives. Use this to introduce the artist to first-time listeners.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It lists what the tool returns but does not disclose any behavioral traits such as read-only safety, performance considerations, or side effects. The get verb implies non-destructive, but no explicit behavioral details are provided.
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 sentences, front-loads the core purpose, and lists contents efficiently. Every word adds value, with no redundancy or fluff.
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 parameters, no annotations, and no output schema, the description sufficiently covers what the tool does and when to use it. The contents listed give a complete picture of the returned data.
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 has zero parameters, and the empty schema provides 100% coverage. Per rubric, zero params receive a baseline of 4; the description adds no parameter semantics because none are needed.
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 tool retrieves the artist profile and enumerates specific contents (bio, images, social links, narrative voice, AI presentation directives). This specific verb+resource combination distinguishes it from sibling tools like get_song and get_chapter.
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 explicitly says 'Use this to introduce the artist to first-time listeners,' providing clear context for when to use the tool. It does not mention exclusions or name alternative tools, but the usage guidance is sufficient for a simple getter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chapterAInspect
Get a single chapter with all ACF fields and its list of songs.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Chapter slug (e.g., "awakening") | |
| term_id | No | Chapter term ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With empty annotations, the description carries the full burden of behavioral disclosure. 'Get' implies a read-only operation, and it states the return payload, but it does not disclose error behavior, requirements for slug vs term_id, or any side effects. Minimal transparency for a getter.
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 a single, direct sentence that is front-loaded with the action and resource. No wasted words.
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 getter with two optional, well-documented parameters and no output schema, the description covers the essential return contents. Minor gap: no guidance on when to use slug vs term_id or whether either is required.
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 100%, so the baseline is 3. The description adds no parameter-specific guidance beyond what the schema already provides for slug and term_id.
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 identifies the tool's action ('Get') and resource ('a single chapter'), and specifies the included content ('all ACF fields and its list of songs'). This distinguishes it from sibling tools like list_chapters (which lists chapters) and get_song (which fetches a song).
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 implies usage for fetching a single chapter, contrasting with list_chapters for multiple chapters. However, it does not explicitly mention alternatives or state when not to use this tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_experienceAInspect
Returns a fully curated, sequenced playlist for a listening mode — including song data, stories, quotes, cover art, visual scene directives, and fresh stream URLs — in a single call. Use this instead of calling get_song + get_stream_url per track.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Listening mode: late_night, devotional, acoustic_focus, cinematic, quiet_listening, full_journey. Defaults to full_journey if omitted. | |
| limit | No | Max songs to return (default 5, or 20 for full_journey) | |
| chapter_slug | No | Optional: filter to a single chapter slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, so the description carries the burden. It discloses the rich output (stories, quotes, cover art, visual directives, fresh stream URLs) and implies that URLs are refreshed. It doesn't cover edge cases like errors or rate limits, but for a read-only aggregation tool, it provides solid transparency.
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?
Two sentences: the first front-loads the tool's purpose and contents, the second gives direct usage guidance. No redundant phrasing or filler; every word contributes.
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 no output schema, the description enumerates the key return elements (song data, stories, quotes, cover art, visual scene directives, fresh stream URLs) and explains why it is beneficial (one call vs. many). It could mention performance trade-offs, but the core information is present.
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 100%, so the schema already documents mode, limit, and chapter_slug with descriptions. The tool description adds little beyond the 'listening mode' connection, so it relies on the schema for parameter meaning. This meets the baseline but does not exceed it.
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 uses the specific verb 'Returns' with a clear resource: 'fully curated, sequenced playlist for a listening mode', listing the exact contents (song data, stories, quotes, cover art, visual scene directives, fresh stream URLs). This distinguishes it from siblings like get_song (single track) and get_stream_url (single URL).
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?
Explicit guidance: 'Use this instead of calling get_song + get_stream_url per track.' This directly tells the agent when to choose this tool over alternatives, and the 'single call' phrasing reinforces the benefit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_experience_promptAInspect
Returns the curated Claude prompt, intro hint, pairing hint, arc role, and experience recipes for a song. Use this to get first-class directives for how to present a song rather than interpreting raw metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Optional: listening mode to select the most relevant starter prompt | |
| slug | Yes | Song slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It lists the output components but discloses no behavioral traits such as default modes, error handling, or side effects. As a read-only retrieval tool, this is acceptable but not richly transparent.
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?
Two sentences, no filler, and the most important information is front-loaded. Every clause contributes either to purpose or usage guidance.
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 2-param tool with no output schema, the description adequately covers what the tool returns and when to use it. Minor gap: it does not explain how 'mode' affects the returned prompt, but the schema already addresses this, so the description is sufficient.
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 100% for both parameters, so the schema provides full param descriptions. The description adds no extra parameter semantics beyond mentioning the return content, which is already covered by the schema's 'mode' and 'slug' descriptions.
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 a specific verb ('Returns') and resource ('curated Claude prompt, intro hint, pairing hint, arc role, and experience recipes for a song'). It directly contrasts with raw metadata interpretation, distinguishing it from likely sibling tools like get_song or get_experience.
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?
Explicitly provides a usage directive ('Use this to get first-class directives...') and a clear alternative scenario ('rather than interpreting raw metadata'). This is sufficient to guide the agent on when to choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_songAInspect
Get a single song with all ACF fields including lyrics, quotes, cover art URLs, streaming links, experience data, and chapter assignment.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Song post ID | |
| slug | No | Song slug (e.g., "holding-on") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds value by specifying that the response includes 'all ACF fields' and listing them, but it does not disclose potential errors (e.g., not found), required permissions, or whether the operation is read-only. The word 'Get' implies a safe read, but this is not explicitly stated.
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 a single, focused sentence that front-loads the primary purpose ('Get a single song') and then enumerates the included fields. Every word adds value, with no fluff or repetition of the tool name.
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?
The tool has no output schema, and the description does double duty by explaining the return content. However, it fails to clarify the relationship between the two optional parameters (id and slug) – specifically, that at least one is needed to identify a song. This ambiguity is a meaningful gap for a retrieval tool.
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 schema already documents both parameters (id as 'Song post ID' and slug as 'Song slug'), so the description adds no additional parameter-level semantics. With 100% schema description coverage, the baseline of 3 applies; the description does not need to compensate.
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 tool's verb ('Get') and resource ('a single song'), and differentiates it from sibling tools like list_songs by specifying 'single.' It enumerates the specific ACF fields returned (lyrics, quotes, cover art URLs, streaming links, experience data, chapter assignment), making the purpose unmistakable.
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: this tool is for retrieving a single song rather than a list. It implicitly distinguishes from list_songs by emphasizing 'single,' and from get_artist/get_chapter by focusing on the song resource. However, it does not explicitly state when not to use it or mention alternatives, leaving some room for inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chaptersAInspect
List all chapters with numeral, name, year range, intro, banner image URL, mood tags, and song count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It explicitly states a read-only 'List' operation and details the returned fields. However, it does not mention potential size limits, ordering, or other behavioral nuances, which would be useful but are not critical for a simple list tool.
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, information-dense sentence that lists all return fields without filler. Perfectly sized for a tool with no parameters.
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?
There is no output schema, so the description must explain return values. It does so comprehensively by listing every field. The tool’s simplicity (no params, no nested objects) makes the description fully adequate.
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 has zero parameters, so the schema already fully covers this dimension. The description correctly adds no parameter-specific information. Baseline 4 is appropriate given the absence of parameters.
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 uses a specific verb 'List' and identifies the resource 'all chapters', then enumerates the exact fields returned. This clearly distinguishes it from sibling tools like 'get_chapter', which targets a single chapter.
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 implies the tool is for retrieving the complete set of chapters. Although it does not explicitly name alternatives or exclusion criteria, the phrase 'all chapters' provides clear context for when to use this tool. No prerequisites are hidden.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_songsAInspect
List all songs with title, year, chapter, release status, and summary. Optionally filter by chapter slug or release status. Pass full=true to return each song with the complete get_song payload (lyrics, LRC, cover art, story, experience hints) in a single call.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | When true, each song includes the full get_song payload instead of the summary. Lets clients fetch the whole catalog in one call instead of list_songs + get_song per song. | |
| chapter | No | Filter by chapter slug (e.g., "awakening", "innocence-heartbreak") | |
| release_status | No | Filter by status: "released", "upcoming", or "archived" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the returned fields and the effect of full=true, but does not specify default release_status filtering (e.g., whether archived songs appear by default), pagination behavior, or potential large response sizes. This leaves some behavioral ambiguity beyond what is stated.
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 sentences with the primary action front-loaded in the first sentence and the optional full=true behavior in the second. Every word earns its place, with no fluff or 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?
The description covers the return fields and filters, but without an output schema it does not fully clarify the default behavior when release_status is omitted (does it include archived songs?) or whether results are paginated. These gaps make it somewhat incomplete for a tool intended for bulk catalog retrieval.
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 input schema provides 100% coverage with clear descriptions for all three parameters. The description adds the equivalence of full=true to the complete get_song payload, but otherwise repeats what the schema already states, so it adds marginal value over the schema.
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 'List all songs' with specific fields (title, year, chapter, release status, summary) and distinguishes itself from get_song by offering a bulk mode with full=true. The verb and resource are specific, making the tool's purpose 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?
The phrase 'Pass full=true to return each song with the complete get_song payload... in a single call' provides clear context for when to use this tool instead of making multiple get_song calls. It implies a bulk use case, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_stream_urlsAInspect
Accepts an array of song slugs and returns fresh signed stream URLs for all of them in one call. Use this ~2 minutes before stream URLs expire to keep playback uninterrupted.
| Name | Required | Description | Default |
|---|---|---|---|
| slugs | Yes | Array of song slugs to refresh, e.g. ["holding-on","without-you"] |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With empty annotations, the description carries the full burden of behavioral disclosure. It mentions the batch behavior ('all of them in one call') and the timing logic, but does not describe error handling, partial failures, authentication requirements, or whether the operation is strictly read-only. This is adequate but not deeply transparent, so a 3 is appropriate.
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 action and benefits. Every word earns its place; there is no redundancy or fluff.
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 tool with one parameter, no output schema, and empty annotations, the description covers the purpose, usage timing, and batch behavior comprehensively. It explains what the tool returns (fresh signed URLs) and when to invoke it, making it sufficient for an agent to select and use the tool correctly.
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 100% as the only parameter 'slugs' already has a clear description with an example. The tool description adds minimal extra parameter semantics—only reinforcing that all slugs are processed in one call. Thus, the baseline of 3 for high schema coverage is fitting.
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 tool's function: accepting song slugs and returning fresh signed stream URLs in one call. This specific verb+resource combination distinguishes it from sibling tools like get_song or list_songs, which focus on retrieval rather than refreshing expiring URLs.
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 explicitly says when to use this tool ('~2 minutes before stream URLs expire') and the intended benefit ('keep playback uninterrupted'). It does not explicitly state when not to use it or mention alternatives, but given the sibling tools are not URL refresh tools, the context is clear enough to warrant a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityAmaintenanceGTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.117371MIT

industrylens-mcpofficial
Flicense-qualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
Sociality MCPofficial
Alicense-qualityDmaintenanceSocial media analytics, post insights, and competitor benchmarking for AI agents.6MIT- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1761MIT