Skip to main content
Glama

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 8 of 8 tools scored.

Server CoherenceA
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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 tools
get_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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoChapter slug (e.g., "awakening")
term_idNoChapter term ID
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoListening mode: late_night, devotional, acoustic_focus, cinematic, quiet_listening, full_journey. Defaults to full_journey if omitted.
limitNoMax songs to return (default 5, or 20 for full_journey)
chapter_slugNoOptional: filter to a single chapter slug
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoOptional: listening mode to select the most relevant starter prompt
slugYesSong slug
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoSong post ID
slugNoSong slug (e.g., "holding-on")
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoWhen 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.
chapterNoFilter by chapter slug (e.g., "awakening", "innocence-heartbreak")
release_statusNoFilter by status: "released", "upcoming", or "archived"
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugsYesArray of song slugs to refresh, e.g. ["holding-on","without-you"]
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    GTM 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.
    11
    737
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources