MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Communication & messaging

Lyre Leads

Every business of a kind in a city, from Google Maps, read from its website, with verified emails.

Checks passed
13 / 22

1 failed · 8 not measured

Median response
208 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
16

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 208 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name lyre-leads.

  • Pass
    Lists tools

    tools/list returned 16 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 208 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 208 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    61 of 61 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-14T15:14:15.964871Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Lyre Leads

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http lyre-leads https://lyreleads.com/mcp

Capabilities

Tools 16

count_saved_leads

FREE and exact. Counts leads THIS ACCOUNT has already searched and saved, matching any combination of filters, with a breakdown of how many are enriched, have an email, have a contact email, or have been relevance-checked. Use it to size a job over data the account already owns before spending: "how many of my saved roofers have no CRM and a verified email". CRITICAL: this is NOT an inventory of what Lyre Leads can find, and a small result here means the account has not searched much yet, nothing more. Never report this number to a user as the amount of data available, and never use it to answer "how many X do you have" — call estimate_list for that.

Discovered
enrich_leads

Fetch each lead's website and extract 50+ fields: business email, social profiles, CMS, CRM, email-marketing platform, chat widget, booking system, ad pixels, analytics, schema, SSL, page load, domain age, mail host, and AI-crawler policy. Costs one token per five businesses, on any business you hold, and does not enroll it. The emails it finds are not checked: verify_emails does that, 3 tokens per verified address. To have businesses re-read every month, use enroll_leads. Runs in the background, returns a job id, poll it with get_job_status. Every field follows the three-state contract: a value, a confirmed absence, or unknown.

Discovered
enroll_leads

Enroll leads in automatic enrichment: each is re-read about once a month, free, with change signals when something moves. Nothing is enrolled on its own, so ask the user before enrolling, and offer it after a search for the leads that matched (only_matches, the default). The plan holds up to three months of its leads enrolled; leads past that room are not enrolled and the answer says how many. A lead already read is enrolled for nothing; one never read (an import) is read first at one token per five. Already-enrolled leads and leads without a website are skipped at no cost. When a read is needed it runs in the background and returns a job id: poll get_job_status with kind "enrich".

Discovered
estimate_area_search

FREE, no account needed. Size a search_areas run before starting it: how many grid points, and, when the user's account is connected, how many areas it already covers for the query (those are skipped). It cannot give an exact cost, because billing is 1 token per NEW business found (one new lead costs one token) and nobody knows how many exist before looking.

Discovered
estimate_list

FREE, no account needed. Answers "what would it cost to find me N businesses, and what data comes with each one". Returns an exact cost in tokens broken down by stage (search, enrichment, contact discovery; one new lead costs one token), and when the user's account is connected its balance and the maximum businesses affordable right now, and the full list of data points each lead arrives with. THIS is the tool to use when a user asks what Lyre Leads can get them. Do NOT use count_saved_leads for that question: Lyre Leads generates leads on demand from a live Google Maps search and does not sell access to a stored pile of them, so a count of what an account already holds is not a measure of what is available.

Discovered
find_areas

FREE, no account needed. Look up the areas search_areas accepts in a country, most populous first, each with an id. Call without q to browse; call with no country to get the list of countries. When a place name is shared (the US list has four Houstons and thirteen Springfields), pass the id of the one the user means to search_areas.

Discovered
find_contacts

Two paid steps on one job. With owner_only true: where a lead names its owner (its own site, or a public registry), guess the owner's own address (at most 3 guesses, no web search) and check it at the mailbox, 10 tokens for each address that comes back verified and nothing otherwise, so the most it can cost is 10 tokens per lead id sent; leads with no owner named are skipped free. Works on every plan, Free included. Without it (paid plans only; a Free account gets a 403 that says so): search the open web for the people behind the business (owner, founder, director), then resolve and verify their addresses, 25 tokens for each contact whose address comes back verified (10 for the owner the lead names) and nothing for a name without one; the run holds 25 tokens per lead id sent and never charges past it. Separate from enrichment, which names the owner where a business's own site does, with no address checked. This is what reaches local business owners who are not in any LinkedIn-derived contact database. Returns a job id, poll with get_job_status. Outcomes per lead: verified (SMTP-confirmed), published (the address is printed on the company's own site but the domain is catch-all so SMTP cannot confirm it), catch_all (person named, no address obtainable), or searched (no name found).

Discovered
get_balance

Get the account's token balance and plan. Plans are sold in leads and every price is in tokens: one new lead (a business found by a search, with its website read, the emails it publishes found but not checked, its owner where one is named, and the relevance check) costs one token; a listing (the Google Maps details only) one token per five. Businesses the account already holds: enrichment is one token per five. A verified email costs 3 tokens, charged only when an address comes back verified. The owner's own email costs 10 tokens and a contact found on the open web 25, each charged only when the address comes back verified. Enrolling leads in automatic enrichment (re-read about monthly) is free within the plan's room of three months of its leads. Unused tokens roll over, up to three months' allowance. Plans are bought and changed on the Lyre Leads website, not through these tools; the result carries the link.

Discovered
get_job_status

Poll a background job started by search_areas, enrich_leads, enroll_leads (kind "enrich"), find_contacts or verify_emails. Pass the job id and its kind. Long jobs are normal: a grid search works through many map points, and enrichment fetches every website in the batch.

Discovered
get_search_results

FREE. Read the leads a search_areas job found, up to 100 per page. Accepts the same filters as the Lyre Leads database, passed as filters, e.g. {"relevanceYes": true, "hasVerifiedEmail": true, "noFBPixel": true}. Each lead comes back compact by default: contact details, business email and its verification state, named contact, relevance verdict with its evidence, software and signals, plus a summary and next steps; detail "full" returns every database field. The summary counts every lead in the search (or every lead the filters match), not only the page, so one read answers how many have emails, contacts or no contact yet; read further pages only when the user asks to see more leads. Enrichment keeps landing for a while after the search finishes, so re-read if leads are still enriching.

Discovered
list_results

FREE. Read saved leads with what enrichment found: business email and its verification state (found, not checked, until verify_emails checks it), the owner where one is named, named contact (name, title, email and its state), the relevance verdict (from the Google category, or with the sentence from the business's own site when the site decided it), software (CMS, CRM, booking, chat, email marketing), technologies and signals. Pass the search_id from search_leads to read that search; wait_seconds (up to 45) first waits for enrichment still running on it. Returns a compact view with a summary and next steps; with a search_id the summary counts the whole search, not only the page. detail "full" returns every field.

Discovered
preview_search

FREE sample, no account: the first page (up to 20) of ONE Google Maps search for a kind of business in a place, with phones partly hidden. Nothing is saved or enriched, and it returns no emails, contacts or software. Use it only when the user asks for a preview or a sample, or has no account connected and wants to see what comes back. When the user asks to search, find, pull or list businesses, use search_leads (one city, answered at once) or search_areas (whole cities) instead, even for a single page: they save the businesses to the user's account and enrich them, and calling one starts sign-in if the account isn't connected yet. Places look like "Houston, TX", "Copenhagen" or "Lyon, France"; a shared name picks the largest and lists the others.

Discovered
search_areas

The search to use for coverage. Sweeps each area with a grid of map points live against Google Maps, as a background job, the same search the Lyre Leads Search page runs. In Houston this found 1,061 roofing contractors where paging from one centre found 255. Costs 1 token per NEW business (one new lead costs one token); listings the account already holds cost nothing (a small per-page minimum applies). Every new business is enriched from its website (the emails it publishes, found and not checked, its owner where the site or a US registry names one) and relevance-checked. Returns job_id: poll get_job_status with kind "search" until finished is true, then read the leads with get_search_results. If an area name fits more than one place, the call returns the candidates with ids and starts nothing: ask the user which one they mean and resend with that id. At most two searches run at once per account.

Discovered
search_leads

Search ONE city on the user's account and get the businesses back in the same call: 1 to 5 result pages from the city centre, about 20 per page. Use it when the user asks for a quick search, a page of results or one town; for a whole city or several, use search_areas, which finds several times more. Costs 1 token per NEW business (one new lead costs one token); ones the account already holds are free. Every new business is then enriched from its own website in the background, about two minutes for 20: business email with its verification state, a named contact where the site names one, the software it runs, and a check that it really is the kind of business searched for. Returns the Maps listing and a search_id. Then call list_results with that search_id and wait_seconds 40, and show the user what enrichment found, not only the listing.

Discovered
unenroll_leads

Remove leads from automatic enrichment. Free and immediate; a removed lead keeps its last reading and its history, and frees room in the plan.

Discovered
verify_emails

SMTP-verify the business emails on saved leads through MillionVerifier. Costs 3 tokens for each address that comes back verified and nothing for any other answer; an address already verified for that lead within 90 days is not checked or charged again, and the run stops cleanly if the balance runs out. Ask the user first, with the most it can cost (3 tokens per lead with an email), and prefer leads that matched the search. Runs in the background and returns a job id: poll get_job_status with kind "verify" until status is completed, then read the summary. Each address ends in one of four honest states: verified, catch_all (the domain accepts everything, so deliverability cannot be proven), unknown, or invalid. Never treat catch_all as verified.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected208 ms16