Skip to main content
Glama
HearthisAt

hearthis

Official
by HearthisAt

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HEARTHIS_KEYYesYour hearthis.at API key from the key pair printed by `npx hearthis-mcp login`.
HEARTHIS_SECRETYesYour hearthis.at API secret from the key pair printed by `npx hearthis-mcp login`.
HEARTHIS_UPLOAD_DIRNoOptional directory from which uploads are allowed. If set, only files from this folder can be uploaded.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
whoamiB

The hearthis.at account this server acts as: id, permalink, name, counts and Premium state.

get_feedB

Newest public tracks on hearthis.at, or the popular ones (optionally within one genre).

list_genresA

All genres with their ids and slugs. Includes "later" once the account saved something to Listen later.

get_genre_tracksB

Tracks of one genre, newest first.

get_home_sectionB

One section of the hearthis.at home screen: stories (banners), latest_artists (featured artists), moods, newcomers (first upload in the last 7 days), genres_today (sounds per genre in the last 24 h), premium (plans and running promotion).

searchB

Search tracks, artists (users) or playlists by text.

get_eventsA

Upcoming events (gigs, live shows), or one event with its id.

get_listen_historyC

Tracks the account listened to recently.

get_listen_laterB

The Listen later list of the account, newest first.

get_trackB

Metadata of one track: title, artist, genre, duration, counts, stream and artwork URLs.

get_track_partB

More about one track: playlist (chapters / tracklist), transcript (AI transcript), related (similar tracks), reactions (emoji reactions) or comments.

toggle_likeA

Likes a track, or removes the like when it is already liked. The answer says the new state.

toggle_repostA

Reposts a track to the account's followers, or takes the repost back when it already exists.

set_listen_laterA

Saves a track of someone else to Listen later (on=true), removes it (on=false), or toggles (on omitted).

get_cast_urlA

A signed MP3 URL of a track for a cast receiver, valid 12 hours; fetching it counts as a play of this account.

post_commentA

Posts a public comment on a track, optionally at a position in seconds or as a reply to another comment.

delete_commentB

Deletes a comment of the account (or any comment on an own track).

post_reactionA

Posts an emoji reaction at a position of a track. Valid reaction ids are in get_track_part part=reactions.

streaming_qualityA

Streaming quality of an own track. Without value: the current state. value=best queues the highest quality of the file type; a number queues that bitrate (999 = original MP3, 1000 = lossless). The change is transcoded in the background.

copy_track_imageA

Copies the cover or background image of another own track onto this own track.

upload_trackA

Uploads a local audio file (mp3, wav, flac, aac, m4a, ogg, aif/aiff, wma, opus) as a new track of the account, with optional metadata and cover. The track stays private unless private=false - publish only when the user asked for it. Only upload files the user named.

edit_trackB

Changes settings of an own track - everything the edit page can change, by the same rules. Only the fields given change; options the account cannot use (plan, fan programme, transcript) keep their value. private=false publishes the track and notifies followers. answer.waiting=true: the title matched a copyright keyword and the sound waits for approval.

delete_trackA

Deletes an own track. Ask the user for confirmation first.

set_track_coverA

Sets or replaces the cover of an own track from a local JPG or PNG (max 10 MB).

remove_track_coverC

Removes the cover of an own track.

get_userC

A profile, or one of its lists: tracks, likes, reposts, following, followers, playlists, connected, badges.

toggle_followA

Follows a user, or unfollows when the account already follows them. User id from get_user.

badge_settingsB

Shows badges on the profile (badges_public) and the weekly mail about new badges (email_badges). Only the fields given change.

get_fan_subscriptionsB

subscribed: the fan subscriptions the account pays. subscribers: the account's fans with statistics.

list_my_setsC

Sets (playlists) of the account.

get_setC

All tracks of a set.

add_to_setA

Adds a track to an existing set (set_id), or creates a new set with that name (new_set_name).

edit_setC

Changes a set of the account by the rules of its edit page - only the fields given change. Owner and moderators; privat only the owner.

edit_profileA

Changes the profile of the account by the rules of its settings page - only the fields given change. Options of a plan the account does not have keep their value. E-mail, password, profile address, payouts, podcast and fan subscriptions change only on the website; the answer lists such fields under ignored.

remove_from_setC

Removes a track from a set of the account.

delete_setA

Deletes a set of the account (the tracks stay). Ask the user for confirmation first.

list_groupsB

Groups of a genre, groups a user owns (user_groups) or groups a user joined (joined; default: this account).

get_groupC

A group: info (metadata and own permissions), tracks (paged), members (owner first).

create_groupC

Creates a group owned by the account.

edit_groupB

Changes a group by the rules of its edit page - only the fields given change. Owner and editors; private only the owner. member_notify=true mails the members about every new sound - only switch it on when the user asked.

join_groupA

Joins a group (join=true) or leaves it (join=false). The owner cannot leave.

group_trackA

Adds a track to a group (add=true) or removes it (add=false). Owner, editors and the sound's author are published at once; others wait while the group asks for approval. Adding notifies the members and may mail the owner.

group_member_roleA

Owner only: makes a member an editor or a plain member, or blocks them (use group_block to lift a block).

group_blockA

Owner and editors: blocks a user from a group (they leave it and cannot join or add) or lifts the block.

group_approveB

Owner and editors: publishes a sound that waits for approval; the members are told about it.

delete_groupA

Owner only: deletes a group. Ask the user for confirmation first.

list_conversationsA

Direct-message conversations of the account, most recent first, with unread counts.

read_conversationA

Messages with one user, oldest first. Leaves them unread unless mark_read=true.

poll_messagesA

Incoming messages with an id above since (max 100). Without since only the current cursor comes back. Marks nothing as read.

send_messageB

Sends a direct message (max 2000 characters) to a user. Only send what the user asked to send.

delete_conversationB

Deletes a whole conversation for both sides. Ask the user for confirmation first.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 51 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions, and descriptions clarify near-neighbors such as get_feed vs get_genre_tracks vs get_home_section, or get_track vs get_track_part. The large group-management surface has several related tools, but their boundaries are still mostly understandable.

Naming Consistency3/5

The set is predominantly snake_case and many names follow verb_noun, but there are notable deviations like whoami, streaming_quality, badge_settings, group_member_role, group_block, group_approve, and group_track. These remain readable, but the convention is mixed rather than consistently verb_noun.

Tool Count2/5

With 51 tools, the server is far above the typical 3-15 range and is heavy for an agent to navigate, even though the domain is broad. The tools are organized by area, but the count is still excessive for practical tool selection.

Completeness4/5

Coverage is strong across tracks, sets, groups, direct messages, profiles, discovery, and social actions, with CRUD and moderation workflows largely present. Minor gaps remain, such as notifications, comment editing, and event creation, but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues