MCP server · for integrators
Connect your agent to your reviews.
EchoTrust AI exposes its reputation operations over the Model Context Protocol. An MCP client can read a workspace's locations and reviews, measure the health of its reputation, draft a reply and publish it on the platform the review came from.
The server invents no rules of its own. Every tool calls exactly the function the console calls: same safeguards, same quotas, same lock against double publishing. An agent cannot do anything a human could not do from their own account.
Endpointhttps://mcp.echotrust-ai.com
1. Get a key
A key belongs to one workspace and carries one member: the agent acts on that person's behalf, with their rights, never more.
It starts with etm_ and is shown only once, when it is created. Only its fingerprint is stored: nobody at EchoTrust can read it back.
Two scopes. Read opens the five lookup tools. Write adds drafting and publishing. Read is always included: an agent has to be able to read a review before replying to it.
The workspace owner creates and revokes keys from the console, under Settings then the Account tab. Questions about the integration? contact@echotrust-ai.com
2. Connect a client
A single endpoint, streamable HTTP, sessionless: every request stands on its own. The key travels in Authorization: Bearer, or in x-api-key.
For Claude Desktop or Claude Code, add this block to your configuration:
{
"mcpServers": {
"echotrust": {
"type": "http",
"url": "https://mcp.echotrust-ai.com",
"headers": {
"Authorization": "Bearer etm_your_key"
}
}
}
}
echotrust-ai.com/api/mcp answers exactly the same and stays valid.
3. The seven tools
Every identifier is a UUID. No tool takes a workspace as a parameter: it comes from the key.
Read
| Tool | What it does | Input |
|---|
| list_locations | The workspace's imported locations, with their sync status. | no input |
| search_reviews | Paginated search across reviews: location, rating range, reply status, start date, free text. | location_id, min_rating, max_rating, reply_status, since, search, page, limit |
| get_review | The detail of one review: text, rating, current draft, draft versions, publication status. | review_id (required) |
| reputation_health | Per location: average rating, review volume, reply rate, median time to reply, trend. | location_id |
| competitor_snapshot | The latest competitive watch snapshots: rating, volume and responsiveness against the competitors you track. | location_id |
Write
| Tool | What it does | Input |
|---|
| draft_reply | Writes a draft and saves it on the review. Nothing is published. Uses the plan's AI quota. | review_id (required), refinement_instruction |
| publish_reply | Publishes the saved draft on the platform the review came from. Public and irreversible. | review_id (required), dry_run |
publish_reply is advertised as destructive and non-idempotent: a compliant MCP client asks for confirmation before calling it. Every tool returns structured content plus its text version; a business refusal surfaces as a tool error with a readable message, not as a protocol error, so the agent can correct itself.
4. The safety model
This is the part that matters. Five safeguards, in this order.
Customers stay separated
The workspace comes from the key, never from the caller: no tool accepts a workspace identifier, so there is nothing to forge. Membership is re-checked on every call, which means removing someone from the team neutralises their keys without revoking them.
Dry run before publishing
publish_reply with dry_run returns the exact text that would go out, without reserving an attempt, without writing anything and without calling Google or Facebook. The dry run goes through the same checks as the real thing: it cannot announce a send that would then be refused.
No double publishing
A publication reserves its attempt inside a locked transaction. Two agents publishing at the same moment cannot send two replies to the same review.
Sensitive reviews need a human
An escalated review, very low rating or risky content, is refused to an agent exactly as it is on autopilot. It has to be approved by hand from the review itself.
Rights, quotas and audit trail
Every tool checks the workspace's access before acting: an expired subscription closes the server just as it closes the console. Any publication triggered by an agent is recorded with its origin and notifies the workspace, so the customer sees that an agent replied for them.
The route is capped at 240 calls per 15 minute window, per key, not per address: an agent changes address on every run.
5. Return codes
- 200Request processed. A business refusal is read from the result, not from the code.
- 401Key missing, malformed, unknown or revoked.
- 429Call ceiling reached for this key. The retry-after header gives the delay.
- 500Incident on the EchoTrust side. No execution trace is returned.
Questions about the integration? contact@echotrust-ai.com