Epovest is an MCP server with 67 tools an agent can call, among them accept_keyword_discovery, add_surface_check, archive_corroboration. It answers at https://mcp.epovest.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.
With Epovest, businesses make AIs recommend them.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
accept_keyword_discovery | Accept one discovered suggestion (domain) or a batch (domains): each becomes a tracked keyword of the tracker, in place, and its series starts at the next survey. Refused with keyword_cap_reached when the batch would exceed the keyword cap, Inputs: tracker_id, domain, domains |
add_surface_check | Add a check of your own to the checklist of one surface: a requirement the person holds on THAT page, in their words. It becomes REQUIRED for the page to count as aligned, exactly like the canon items of the template, and it is ticked with Inputs: surface_id, label, restates_canon, scope |
archive_corroboration | Record that the page is no longer there (article unpublished, link dead), or put it back live with archived false. Nothing is deleted: the line stays, and so does the history, because "they talked about us from March to July" is information Inputs: corroboration_id, archived |
archive_project | File a project away once the folder has served its purpose: a client that left, a brand that was sold. It moves to the end of list_projects with archived true, and stops being offered when filing a tracker. Bring it back with archived false Inputs: project_id, archived |
archive_tracker | File a finished tracker away: a campaign that ended, a brand that was sold, a trial that is over. It moves to the end of list_trackers with archived true, stops asking for anything, and its measurement pauses in the same call if it was stil Inputs: tracker_id, archived |
complete_quest | Mark a quest done: the move happened. Sets the state and the closing date; calling it again leaves it done, so a retry is safe, and a dismissed quest that was done after all becomes done (the last move is what the file remembers). The quest Inputs: quest_id |
contact_support | Send a message to the humans behind Epovest: report a problem, suggest an improvement, ask a question. Use it when a tool refuses what should work, when the product is missing something the user needs, or when the user asks you to tell us s Inputs: message, subject, kind, thread_id |
convert_corroboration_to_surface | Move the page to the surface registry: the customer has, or takes, the final say on it (their own profile or listing recorded on the wrong side, or a source that became a reliable channel). Nothing is retyped: url, label and notes travel, t Inputs: corroboration_id |
convert_surface_to_corroboration | Move the page to the corroboration registry: someone else has the final say on it (the customer lost, or never had, the hand on the content). Nothing is retyped: url, label and notes travel, the publication date stays unknown (set it with u Inputs: surface_id |
create_competitor_scan | Prepare a competitor scan on a basket of up to 5 companies of the same market. Three or more is what the scan is built for: from there the places rank by RECURRENCE, that is by how many companies of the basket each one covers. It is created Inputs: project_id, subjects, category, usage, engine, templates |
create_corroboration | Record a page about the brand where someone else has the final say. URL-FIRST: the exact address of the page is the only thing needed, the source on the map and the display name are derived from it. It is a statement of fact: only record a Inputs: project_id, url, label, published_on, notes, request_channel |
create_logbook_entry | Record an action in the logbook of a project: what was done, and WHEN it was done. occurred_at is the date of the ACTION itself, not of the recording: recording after the fact is the normal case ("record: site translated into Spanish yester Inputs: project_id, category, label, occurred_at, notes, quest_id |
create_project | Create a project to file trackers under: one project per BRAND, never per language. It can carry the brand canon: the reference wording every publication reuses as is, written in ONE language, its canonical language (carried at creation, it Inputs: name, canon_one_liner, canon_short, canon_long, canon_category, canon_language |
create_quest | Add a quest to the file of a project: a next move the customer decided, kept where the work resumes ("get our MCP server listed on the AI tool directories"). title says the move; notes carry context and links. Adding is idempotent on the pr Inputs: project_id, title, notes |
create_surface | Register a surface of a project: one page about the brand where the customer has the final say (their site, their profiles, their listings, wherever they can change the content). The test that settles which registry a page belongs to: if th Inputs: project_id, type, url, label, languages, notes |
create_tracker | Create a tracker in draft. It measures nothing yet: call start_tracker to launch it against the prepaid credit balance. Validation rules and messages are the same as the app configurator. Omitted, next_survey_at means the first survey runs Inputs: title, prompts, engines, frequency, resolution, keywords |
delete_logbook_entry | Take a manual logbook entry out of the logbook, and the annotation it placed on the curves with it. Only do it when the user asked for it: it is their logbook. The entry waits in the trash, so restore_logbook_entry brings it back with its a Inputs: entry_id |
delete_surface | Take a surface out of the registry: the page stops being followed, and the registry stops asking to bring it in phase with the canon. Use it for a page that is gone (account closed, listing removed) or for a line that had no place there. Th Inputs: surface_id |
delete_surface_check | Take a check of your own out of the checklist of a surface: it leaves the list, stops holding the page short of aligned and stops accepting ticks. Use it when the requirement no longer applies to that page. Nothing is lost: the check and th Inputs: surface_id, check |
dismiss_corroboration_candidate | Refuse a suggested page: it is never proposed again for this project. Use it when the excerpt matched something else than the brand, or when the page is not worth recording. Nothing is created or deleted. Accepting is the opposite move and Inputs: project_id, url |
dismiss_keyword_discovery | Dismiss one discovered suggestion (domain) or a batch (domains): the domains are never proposed again on this tracker, and appear in the dismissed list until restored. All-or-nothing on unknown domains: one that is not currently suggested r Inputs: tracker_id, domain, domains |
dismiss_quest | Set a quest aside: the customer decided the move is off. Sets the state and the closing date; calling it again leaves it dismissed, so a retry is safe. The quest stays readable in the closed history of list_quests, and reopen_quest puts it Inputs: quest_id |
get_account_settings | The settings of the account: the legal name, billing country, postal address and intra-EU VAT number printed on its invoices, plus the language we write to it in and the time zone its hours are shown in. `member` names the person the langua |
get_canon | The brand canon of a project and every revision it went through. canon is the CURRENT wording, under the same keys update_project_canon writes (one_liner, short, long, category, language, perks, website, legal_name, address, phone, whatsapp Inputs: project_id |
get_competitor_scan | One scan and its list of PLACES: the domains the engine cited while answering about the basket, ranked by how many of its companies each place covers (`subjects`, the number that carries the tool) then by AI Authority. Each place carries `r Inputs: competitor_scan_id |
get_credits | The prepaid credit balance of the account: available credits, which never expire, and the amount reserved by surveys in progress with the detail of each reservation. Read it before starting a tracker, or when a call fails with insufficient_ |
get_link_targets | The addresses of the brand that a watched page can link to. Two lists come back. derived: what is already covered without anyone typing it, each row with its source, "canon" (the canonical website of the brand) or "surface" (a page of the s Inputs: project_id |
get_logbook | The logbook of a project, newest first: every dated move, composed from two sources. source=tool events are derived from the suite itself (canon moved to a version, surface marked aligned, corroboration recorded); source=manual entries are Inputs: project_id, source, category, quest_id, deleted |
get_responses | The raw answers of ONE AI engine for a tracker, newest surveys first, paginated. Every answer carries its cited sources and keyword mentions, plus uncited_sources (the pages the engine read without citing them) and searched (whether the eng Inputs: tracker_id, engine, page, per_page, q, question |
get_results | The score series of a tracker: one row per analyst, keyword, engine, tracker version and survey period, in chronological order. Depending on the analyst, a row carries citation_rate and weighted_score, share_of_voice, or sentiment counts. Inputs: tracker_id, analyst, engine |
get_source | One entry of the Atlas, read by its id: the domain and its AI Authority on each AI. Call list_sources to find a source id, or to read the same entries filtered and ranked. Inputs: source_id |
get_support_thread | One support thread with its messages, including the answers of the support team. Read it back after contact_support to relay the answer to the user. Inputs: thread_id |
get_usage | What the account SPENDS: one call, three answers, and they must never be mixed up. (1) THIS MONTH, a FORECAST: `this_month_forecast` gives `total_minor` for the month in progress, which is `spent_minor` (already debited) plus `remaining_min Inputs: month, type, page, per_page |
list_competitor_scans | The competitor scans of the account, newest first: a basket of up to 5 companies of one market, asked to one engine, from which the scan returns THE PLACES that corroborate them. `status` says where each one stands: draft (questions still o Inputs: project_id |
list_corroboration_candidates | The MENTIONS a search engine has shown the brand in, found in the text the engine itself returned next to each address. The list is recomputed on every read from the raw payloads of the latest surveys, and surveys_scanned says how many were Inputs: project_id |
list_corroborations | The corroborations recorded for a project: the pages about the brand where someone else has the FINAL SAY, each with its exact address, the source it sits on (domain), the publication date when known, and free notes. Live ones first, then t Inputs: project_id |
list_keyword_discoveries | The keyword suggestions DISCOVERED on a tracker: domains the surveyed engines cite as sources again and again, that no tracked keyword covers. Recomputed on every read, from the recurrences the surveys have accumulated. Also carries dismiss Inputs: tracker_id |
list_projects | The projects of the account: the folders trackers are filed under (one project per tracker at most; pure organization, no effect on measurement or billing). Each carries its id, name, brand canon with its current version number (canon_versi |
list_quests | What there is to do for the GEO work, and where to resume it. Lists the quests of the account: moves the customer (or you, on their behalf) decided and recorded, open by default, newest first; status=done or dismissed reads the closed histo Inputs: project_id, status |
list_source_channels | The channels behind one source of the Atlas: who published the videos the AIs cited when answering the questions of this account, with their videos and the questions that surfaced each one. The unit of the Atlas is the registrable domain, s Inputs: source_id, project_id |
list_sources, list_support_threads, list_surfaces, list_trackers, pause_tracker, rename_project, reopen_quest, restore_keyword_discovery, restore_logbook_entry, restore_surface, restore_surface_check, set_link_targets, start_competitor_scan, start_tracker, survey_now, tick_surface_checklist, topup_credits, update_account_settings, update_competitor_scan, update_corroboration, update_logbook_entry, update_project_canon, update_quest, update_surface, update_surface_check, update_tracker, verify_corroboration
Every block below points at https://mcp.epovest.com/mcp. Pick your client and copy.
claude mcp add --transport http epovest https://mcp.epovest.com/mcp
{
"mcpServers": {
"epovest": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.epovest.com/mcp"]
}
}
}{
"mcpServers": {
"epovest": {
"url": "https://mcp.epovest.com/mcp"
}
}
}{
"servers": {
"epovest": {
"type": "http",
"url": "https://mcp.epovest.com/mcp"
}
}
}{
"context_servers": {
"epovest": {
"url": "https://mcp.epovest.com/mcp"
}
}
}{
"mcpServers": {
"epovest": {
"serverUrl": "https://mcp.epovest.com/mcp"
}
}
}{
"mcpServers": {
"epovest": {
"url": "https://mcp.epovest.com/mcp"
}
}
}name: Epovest
version: 0.0.1
schema: v1
mcpServers:
- name: Epovest
type: streamable-http
url: https://mcp.epovest.com/mcp{
"mcpServers": {
"epovest": {
"httpUrl": "https://mcp.epovest.com/mcp"
}
}
}{
"mcpServers": {
"epovest": {
"type": "http",
"url": "https://mcp.epovest.com/mcp"
}
}
}{
"mcpServers": {
"epovest": {
"url": "https://mcp.epovest.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.epovest.com%2Fmcp&type=streamable_http&id=epovest&name=Epovest
It answered our last check on 18 October 2026 in 209 ms. Over 10 checks since 5 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by epovest.com and served from mcp.epovest.com, the vendor's own domain: https://mcp.epovest.com/mcp.
67, as returned by the server's own tools/list on 10 September 2026: accept_keyword_discovery, add_surface_check, archive_corroboration, archive_project, archive_tracker, complete_quest, contact_support, convert_corroboration_to_surface, and 59 more.
It answered our last check on 18 October 2026 in 209 ms. Over 10 checks since 5 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.epovest.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: com.epovest. Endpoint host: mcp.epovest.com. ARD identifier: urn:air:com.epovest:mcp:ai-visibility.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.