Docs
MCP server
EarShots speaks Model Context Protocol, so you can ask your own AI client what developers are saying about your product and leave a draft reply without opening the app.
Connection details
Add this server URL in any MCP client that supports remote servers with OAuth.
https://earshots.dev/mcpThe client opens an EarShots sign-in and consent screen the first time. You approve once, with your normal account, and the client gets access to the same workspaces you see in the app. No API key to copy, nothing to paste in plain text.
Adding it to a client
- 1
Claude
On claude.ai or Claude Desktop: Settings, Connectors, Add custom connector, then paste the server URL. Approve the EarShots consent screen when it opens. - 2
ChatGPT
Settings, Connectors, Create, then paste the server URL and sign in when prompted. - 3
Codex
Add the server, then sign in once:
If Codex runs in a sandbox, turn on network access so it can reach the server.codex mcp add earshots --url https://earshots.dev/mcp codex mcp login earshots
What the server exposes
list_contacts
Saved Listen Enrich contacts with name, role and company search, network filters and bounded pagination. No credits spent.
enrich_contact
Estimate an exact profile or separate work-email lookup, confirm only after target and cost approval, then poll with request_id. Reuse a stable idempotency_key for retries.
list_workspaces
Your workspaces, their plan, and which one is active.
setup_workspace
Create or update a workspace: product name, keywords to listen for, voice, and an optional site address that drafts a starter brain.
get_brain
The current Knowledge Hub items: customers, objectives, traits, capabilities, guardrails, and name collisions.
add_brain_items
Write Knowledge Hub items. They arrive confirmed: you approve once when you connect the client.
save_drafting_rules
Set the drafting rules the Ears agent follows on every reply draft for a workspace.
confirm_brain_items
Confirm items still awaiting review, by id or all at once, so the Ears agent uses them.
dismiss_brain_items
Dismiss unconfirmed starter items or duplicates so the Ears agent stops using them.
connect_source
Connect GitHub, X, LinkedIn, Reddit or web listening so posts start flowing, within plan limits.
get_insights
Counts by track, what is waiting on you, and recurring themes.
list_mentions
Posts, filtered by track, status, source, or search term.
get_mention
One post in full, with reasoning, citations, and any draft.
list_sources
Connected sources, their terms, last refresh, and any error.
get_context_buzz
How developers work with your product in public GitHub activity, and what blocks them.
get_competitor_signal
Likes, dislikes, and recent signals for tracked competitors. Every paid plan.
get_stats
Volume by day, channel, and track, drafts waiting, and replies sent.
create_launch
Record a release you are shipping so EarShots watches how developers react: name, version, details, ship date, and a watch window up to 30 days. Growth and Enterprise plans.
get_launch_reactions
Releases you are watching after saying "we are shipping": the watch window, the reaction tally, and the linked posts. Growth and Enterprise plans.
get_sentiment
The sentiment score, sample size, and split by channel, track, and topic.
format_ticket
One post as a Linear, Jira, or Markdown ticket, with a create payload your agent can send.
get_report
The Voice of the Customer report: sentiment, tracks, topics, channels, and the posts behind them.
draft_reply
Ears writes a reply grounded in your docs and Knowledge Hub and saves it as a draft for review.
get_alerts
Buying signals, friction, and urgent posts heard since a given time, for scheduled agents.
save_reply_draft
Save a draft reply on a post for your team to review.
get_prompt_universe
Workspace prompts with opportunity and planner scores, explicit fallback provenance, and bounded score filters.
run_campaign_engine
Preview a campaign with dry_run, or queue its strategy brief. Checks workspace access, paid plan and documentation. Other selected assets wait for human approval.
get_campaign_status
Read generation and review status for a campaign in your workspace.
get_campaign_materials
Read saved campaign drafts, review findings and supporting sources.
Most tools only read. The reply draft tools, save_reply_draft and draft_reply, only save a draft to your review queue. Neither can publish. format_ticket shapes a ticket but never creates one. Brain items written with add_brain_items arrive confirmed, since you approve access once when you connect the client.
Campaign drafts
Use dry_run before starting a campaign. It reports plan access and, when access permits, documentation readiness without creating materials. Campaign generation requires a paid workspace plan. Existing saved materials remain readable after a plan change.
run_campaign_engine({
"workspace_id": "your-workspace-id",
"prompt_id": "your-prompt-id",
"output": "strategy_brief",
"dry_run": true
})Set dry_run to false to queue the brief. Poll get_campaign_status and read get_campaign_materials. A failed review preserves the material for editing; it does not approve it. The app confirms the exact question and selected materials before starting. Full campaigns still require a person to approve each preceding draft. Nothing is posted or published.
Open the same target in the app with /app?workspace=WORKSPACE_ID&prompt=PROMPT_ID. Sign-in preserves the target, and workspace membership is checked before prompt data loads.
Things worth asking
- What friction was reported about us this week, grouped by theme?
- Show me the open questions nobody has answered yet.
- Read this GitHub thread in full and save a draft reply for the team.
- Which sources have not refreshed recently?
- What are people building with our product on GitHub, and what is blocking them?
- What did people like and dislike about our main competitor this month?
- How many posts did we hear last week, by channel and by track?
- How did people react to the release we shipped this week?
- Turn the top three friction posts into Linear tickets for the platform team.
Access and revoking
Tool calls run as you, with your permissions, so a client only sees workspaces you are a member of. Disconnect the server in your AI client to end its access.
