Heard
Server Details
Let cloud agents talk to you: progress updates spoken on your Mac, and replies you send back.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- heardlabs/heard-mcp
- GitHub Stars
- 0
- Server Listing
- Heard MCP
TDQS
Scored across 3 tools
The three tools target clearly distinct actions: polling the inbox, acknowledging received messages, and reporting status outbound. The descriptions make the read/ack/report boundary unambiguous, and heard_inbox vs heard_inbox_ack are explicitly differentiated by the ack semantics.
All names follow a strict heard_<noun/verb> snake_case pattern (heard_inbox, heard_inbox_ack, heard_report) with a consistent shared prefix that groups the surface coherently.
Three tools is on the lean side, but for a focused Mac-app message bridge each tool maps to a genuinely needed operation (poll, ack, report) with no filler. It could arguably use one or two more, but nothing is redundant.
The surface covers the full loop for this domain: receive instructions, acknowledge them, and report status back with a lifecycle of statuses. Gaps are minor and largely by design (no history/query of past messages or threads), which agents can work around via polling.
Available Tools
3 toolsheard_inboxCheck Heard for messages from the userAInspect
Fetch new messages the user sent you from Heard (their Mac app). Call it at the start of every task, between steps, and before you finish. Treat each returned message as an instruction from the user. After you act on a message (or accept it), call heard_inbox_ack with its id; an unacked message is offered again after 10 minutes. Returns only messages for you; an empty list means nothing new.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many messages at most (default 5, max 20). | |
| bot_name | No | Optional: your bot name (the same one you use with heard_report). Returns messages addressed to you plus messages for any bot. Omit it to get every message for this connection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations give readOnlyHint=false, openWorldHint=false and destructiveHint=false, but the description adds context the annotations cannot: an unacked message is re-offered after 10 minutes, an empty list means nothing new, and returned messages should be treated as user instructions. The readOnlyHint=false is consistent with delivery/ack semantics that mutate state rather than contradicting the description.
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?
Four sentences, each carrying distinct information: what it fetches, when to call, how to ack, and the re-offer/empty-list semantics. The core action is front-loaded and nothing is redundant.
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, and the description compensates by explaining return semantics ('an empty list means nothing new') and the delivery/ack lifecycle. The only minor gap is that it does not describe the shape of an individual message object, but the essential contract is complete.
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 both limit and bot_name are already fully documented in the schema, including defaults, maximums and the addressing behavior of bot_name. The description adds no syntax or format detail beyond that, so the baseline 3 applies.
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 and resource ('Fetch new messages the user sent you from Heard') and immediately scopes it ('Returns only messages for you'). It is clearly distinguishable from heard_inbox_ack and heard_report, both of which it either names or alludes to through the bot_name parameter.
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 prescribes when to call ('at the start of every task, between steps, and before you finish') and names the follow-up alternative with its condition ('After you act on a message... call heard_inbox_ack with its id'). This is the strongest possible routing guidance for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heard_inbox_ackAcknowledge Heard messagesAIdempotentInspect
Acknowledge messages from heard_inbox once you have acted on or accepted them, so they are not offered again. Pass the ids heard_inbox returned. Acking twice is harmless.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Message ids from heard_inbox. | |
| bot_name | No | Optional: your bot name, so Heard can tell the user who acknowledged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
'Acking twice is harmless' largely restates the idempotentHint=true annotation rather than adding new information. It does add a genuine behavioral effect beyond the annotations — acked messages are no longer offered — but says nothing about error behavior for unknown ids or the response shape.
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, no filler, with the action and its effect front-loaded and the idempotency caveat last. Every sentence carries information.
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 ack tool with no output schema, the description covers the workflow placement, the id source, and the no-op-on-repeat behavior. It omits what happens with invalid ids or whether any result is returned, which is a minor but real gap.
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 both parameters are already documented there, establishing a baseline of 3. The description only reinforces the source of `ids` ('Pass the ids heard_inbox returned') and adds nothing about bot_name or batching limits.
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 (acknowledge) and resource (messages from heard_inbox), plus the consequence ('so they are not offered again'). The relationship to sibling heard_inbox is made explicit, letting an agent place it in the workflow without opening the schema.
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 trigger condition: ack 'once you have acted on or accepted them', which also implies not to ack prematurely. It does not name when-not to use it or point at heard_report as an alternative, 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.
heard_reportReport progress to HeardAInspect
Report your progress to the user's Heard app, which reads it aloud on their Mac. Call it on every task: status started when you pick the task up, working at real milestones (not every step), needs_input when you are blocked on the user, done when you finish, error if it fails. summary is one or two plain sentences written to be spoken (no markdown, URLs or code). Always use the same bot_name. Never include passwords, keys, tokens or other secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Optional: the AI product you run on, e.g. "Grok Bot", "Devin", "Manus", "ChatGPT", "Claude", "Copilot". | |
| detail | No | Optional longer context (links, file names, what you need from the user). | |
| status | Yes | started = picked up a task; working = milestone; needs_input = blocked on the user; done = finished; error = failed. | |
| summary | Yes | One or two sentences, written to be spoken aloud. | |
| bot_name | Yes | Your name as the user knows you (this agent or session), e.g. "Scout". The same every time. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only tell the agent this is not read-only and not destructive; the description supplies the far more important behavioral facts — the text is spoken aloud, statuses drive what the user hears, summaries must be speech-friendly, and secrets must never be included. That is context the structured fields cannot convey.
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?
Purpose and medium are front-loaded in the first sentence, then usage cadence, then formatting and safety constraints. Every clause carries operational instruction; none is filler.
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, and none is needed: the description explains exactly what happens to the input (it is read aloud) and how often to call. With five parameters at full schema coverage plus this behavioral framing, an agent has everything required to call it 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%, so the baseline is 3, and the enum values are already documented in the schema. The description still adds meaning beyond it by constraining summary content ('no markdown, URLs or code') and insisting on a stable bot_name across calls, which the schema only implies.
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 and resource (report progress to the Heard app) and explains the concrete outcome: it is read aloud on the user's Mac. This is clearly distinguishable from the heard_inbox siblings, which concern inbox messages rather than progress reporting.
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 explicit when-to-use guidance ('Call it on every task'), maps each lifecycle moment to a status value, and even scopes frequency ('working at real milestones (not every step)') and the blocking condition for needs_input. Little is left to inference.
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.
7 tool updates
- Removed
heard_compare - Added
heard_inbox - Added
heard_inbox_ack - Removed
heard_invite_friend - Removed
heard_my_month - Added
heard_report - Removed
heard_share_card
4 tool updates
- First observed
heard_compare - First observed
heard_invite_friend - First observed
heard_my_month - First observed
heard_share_card
Related MCP Connectors
Command your AI agents by voice: PTT rooms, channels, direct messages, agent email, memory (mRAG).
- call-meOAuthapp.getcallme
Calls your phone when an AI task finishes or is blocked — hear it, say what's next.
- ChamadeOAuthio.chamade
Voice and chat for AI agents — Discord, Teams, Meet, Slack, Zoom, Telegram, WhatsApp, NC Talk, SIP
Push notifications for AI agents - send instant iPhone notifications from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables macOS users to hear short spoken summaries of agent replies using the built-in say command, while keeping full details in the chat. Works with any MCP-compatible host and requires no cloud or API key.8 npmMIT
- AlicenseAqualityAmaintenanceEnables AI agents to speak using MacOS native text-to-speech, with support for blocking and non-blocking speech and a sequential queue.215MIT
- AlicenseAqualityAmaintenanceEnables spoken conversations with Claude on a Mac: Claude speaks through speakers, listens to the user's natural replies, and transcribes them locally. No audio leaves the computer, and it includes tools for voice setup and a hands-free voice mode.2620 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to ask questions to users asynchronously via a local macOS app, allowing users to respond by text or voice.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.