EarShots.dev
Open navigation

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/mcp

The 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. 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. 2

    ChatGPT

    Settings, Connectors, Create, then paste the server URL and sign in when prompted.
  3. 3

    Codex

    Add the server, then sign in once:
    codex mcp add earshots --url https://earshots.dev/mcp
    codex mcp login earshots
    If Codex runs in a sandbox, turn on network access so it can reach the server.

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.
The MCP server follows the same rules as the app. It can read your workspace and save drafts. It cannot post to GitHub, X, LinkedIn, or anywhere else. A person reviews each draft and sends it from the original post.

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.