Epovest
Epovest, the AI visibility platform: measure what ChatGPT, Claude, Gemini, Perplexity, Mistral and Grok say about you, shape it, and get recommended. Your prompts, your engines, your cadence, from $0.10 per check.
https://epovest.com/enConnect straight to this server’s public endpoint.
https://mcp.epovest.com/mcpWe add this server to your workspace, walk through sign-in once, then open Studio with tools ready to run.
Last probed Sep 14, 2026 · mcp.epovest.com
67tools discovered
Showing 25 of 67 from the live probe.
List trackers
List the trackers of the account, current versions: configuration, status, keywords, analysts, project and the recalculated cost per survey. Start here to find a tracker id. Filter by project with project_id. The ones still followed come first, then the ones filed away (archive_tracker), each with archived true and its archived_at.
Create a 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 at start_tracker. For a single reading with nothing running afterwards, set frequency to on_demand: start_tracker runs one survey, and the next ones come from survey_now.
Update a tracker
Update the configuration of a tracker: only the fields you send change. Keywords, analysts and the title apply in place. Changing the prompts, engines, frequency or resolution of a version that HAS measured creates a new version: the score series continues across versions, and the response carries the new tracker id (version_created says when). A version that has not measured yet is amended in place and keeps its id, so version_created is false. A PAUSED tracker takes all of it, the collection s
Start a tracker
Start or restart the measurement of a tracker against the prepaid credit balance. The first survey runs there and then, whatever the frequency, unless the tracker carries a next_survey_at still in the future: with one set, nothing runs until that moment, which is how a tracker comes back on a date of the person's choosing. Restarting a paused tracker picks its schedule back up, at whatever configuration it carries now. Refused with insufficient_credits when the balance does not cover one survey;
Survey a tracker now
Run one survey of a measuring tracker right now, on top of its schedule. Its settings stay as they are: same anchor, same frequency, and the next scheduled survey keeps its date. On a tracker whose frequency is on_demand, this is how every survey after the first one happens. It debits the prepaid credit balance like any survey, and the point joins the score series marked on_demand. The answer carries the survey id: read the results back with get_results, or the raw answers with get_responses. Wh
Pause a tracker
Pause the measurement of an active tracker. The score series is kept; start_tracker resumes it.
File a tracker away
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 still running, so the spending stops there. Bring it back with archived false: the tracker returns to the list as it was, and start_tracker restarts the measurement when the user asks for it. The sheet and the score series are kept and stay readable throughout (ge
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_version), archived flag and tracker count. The folders still in use come first, then the ones filed away (archive_project). Trackers without a project live under the virtual Default project.
Create a 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 is recorded as canon version 1). The canon is never translated: localized expressions on the pages are outputs, not a second canon. Nothing is filed by this call: pass the returned id as project_id when creating or updating a tracker. Refused with project_exi
Rename a project
Correct the name of a project: the folder keeps its id, its canon, its trackers, its surfaces and its logbook, and the name shown is the only thing that changes. Names are unique per account: a name another project already goes by answers project_exists with that project, so read it back and settle another name with the user. Case, accents and spacing do not make two different names, which is why a project can always take back its own capitalisation. Sending the name it already carries answers t
Read the canon of a project and its history
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, email), and canon_version its number. history carries each version newest first, with its author, its date, and changes, the fields that version touched with their before and after values. Reach for it to RE-PROPAGATE a revision: get_logbook says a canon mov
Update the canon of a project
Revise the brand canon of a project. Field by field: a provided field replaces the current wording (an empty string clears it), an omitted field is kept as is. Any actual change records the NEXT canon version (numbered, immutable; version_created true in the answer); sending identical wording records nothing. The canon lives in ONE language, its canonical language (canon_language): it is never translated, changing the language is a revision like any other. The canon is meant to be STABLE: revisi
List the addresses of the brand a link can point to
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 surface registry: the site, the LinkedIn or X profile, a directory listing, an app store page). free: the addresses set on the project on top of those. Read it before setting anything: an address already derived does not need to be added, and the derived list i
Set the free addresses of the brand
Set the addresses of the brand that are neither its canonical website nor a page of the surface registry: a satellite domain the customer does not want to keep aligned, a tracking link, a partner page. They are set ONCE for the project and serve every line of the corroboration registry, present and future, so there is nothing to set line by line. The list you send REPLACES the previous one, and the answer returns what the project now holds, derived addresses included: read it back to confirm. An
File a project away
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. Nothing is deleted and nothing cascades: the trackers filed under it keep their status, keep measuring and keep showing up in list_trackers, and the answer carries tracker_count, how many are still filed under it, so you can go on with archive_tracker on eac
List the surfaces of a project
The surface registry of a project: the pages about the brand where the customer has the FINAL SAY (website, GitHub, LinkedIn, X, YouTube, Wikidata, directories, app stores...). The split with corroborations is control, never who wrote the page: a page the customer can change is a surface, a page where someone else has the final say is a corroboration (list_corroborations). Each surface carries its type, url, label, languages, notes, its checklist and a status DERIVED from the checklist CELLS tha
Register a 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 the customer changes the page, does the change stay? Yes means they have the final say, so it is a surface; no means someone else has it, so it is a corroboration (create_corroboration), even on a page they can edit, as on a wiki. URL-FIRST: the url is the only
Update a surface
Update the registry sheet of a surface: only the fields you send change (a sent languages list replaces the previous one; an empty label or notes clears it). No journal line is ever written here: an alignment is earned with tick_surface_checklist, cell by cell. Languages ARE the columns of the checklist, so declaring the language of a single-language page renames its column and carries its verified cells along. When the change leaves no single destination (a language dropped from a page that kee
Verify or set aside checklist cells of a surface
Record what a surface actually carries, cell by cell, as many moves as you want in one call. The items are listed by list_surfaces as checklist.items: the template of the surface type (stable keys such as title_tag or llms_txt), then the checks the customer added of their own (add_surface_check), which tick here exactly like the rest, at their key. Most of them are yours to check (a title tag, JSON-LD, an llms.txt all read with a simple fetch). Three moves per cell. VERIFY (done true, or nothing
Add a check of your own to the checklist of a surface
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 tick_surface_checklist at the key returned here. Reach for it whenever the person states something a page must carry that is theirs to decide: the pricing block quotes the canon boilerplate, the OG image is the current one, the footer carries the legal name, t
Correct a check of your own
Correct a check of your own on a surface: its label, and whether it restates the canon. Only what you send changes. The key never moves, being the coordinate of the cells already recorded, so renaming a check keeps every tick it carries. Turning restates_canon on makes a tick recorded without a canon stamp perish, which is the honest reading: the page was never checked against a wording.
Take a check of your own out of a checklist
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 the cells it carries are kept, read back in checklist.custom with deleted true, and restore_surface_check brings both back, so a check taken out by mistake costs nothing. Taking out an already taken out check answers the same.
Bring a check of your own back to a checklist
Bring a check of your own back to the checklist of a surface, with the cells it had: it becomes work again, so the page needs it verified to count as aligned. The checks to bring back are listed by list_surfaces in checklist.custom, with deleted true. Restoring a check already in the checklist answers the same.
Take a surface out of the registry
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. The sheet and the alignment journal are kept, and restore_surface brings the surface back with them, so a line taken out by mistake costs nothing. Taking out an already taken out surface answers the same.
Bring a surface back to the registry
Bring a surface back to the registry, with its sheet and its alignment journal as they were. Call list_surfaces with deleted set to "only" to find the surfaces to bring back. Restoring a surface already in the registry answers the same.
Get your MCP into directories
A working endpoint is step one. Directory coverage is the coordinated launch across ChatGPT, Claude, Cursor, the MCP Registry, and community indexes.
Directory coverage for brandsEpovest, the AI visibility platform: measure what ChatGPT, Claude, Gemini, Perplexity, Mistral and Grok say about you, shape it, and get recommended. Your prompts, your engines, your cadence, from $0.10 per check.
Use the MCP endpoint listed on this page in your MCP client configuration. One-click install pills support Claude, Cursor, VS Code, and other hosts. Copy the remote MCP URL if your client needs a manual entry.
Operate Epovest? Verify ownership to take over this directory entry.
This server appears in the MCPBundles directory. Verify you operate it to take over the listing — name, description, logo, contact email, and skill content. We email a 6-digit code to a maintainer address your server publishes in /.well-known/security.txt or /.well-known/mcpbundles.json. Free, takes about a minute.
Other MCP servers in this category from the directory index
MCPBundles probed 67 tools on the live server. The tool list on this page reflects what was discovered at the last refresh — connect your client to see the full set available to your session.
Epovest may require signing in to the provider before tools can run. Connect through MCPBundles or your MCP client and complete any provider login when prompted.
MCPBundles is an independent platform built on the open Model Context Protocol standard. Not affiliated with Anthropic PBC or Claude.