Entervista
by entervista.ai · remote · no sign-in to list tools · v1.0.0 · published by ai.entervista
Find and book local service businesses (plumbers, HVAC, detailers) at real prices, with approval.
14 tools: 1 can delete or cancel things, 7 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things7Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http entervista https://entervista.ai/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Deletes or cancels 1Claude Code: deny
cancel_requestCancel an order, quote or booking on the customer's behalf.No findings
Why it is in this group
- The name "cancel_request" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancel an order, quote or booking on the customer's behalf.
Annotations the server declares
- title: Cancel a request
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 7Claude Code: ask
approve_requestUse only after the customer explicitly approves the total / quote / final price.No findings
Why it is in this group
- The name "approve_request" says "approve": a word for a change.
Description, as the server wrote it Use only after the customer explicitly approves the total / quote / final price. Sends it to the business. When offered_slots is present, pass the customer's chosen slot_start. If the business takes online payment, the result is status awaiting_payment with a payment_url: give that link to the customer; they pay on that page themselves.
Annotations the server declares
- title: Approve (customer said yes)
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
book_slotBook a flat-rate service (e.g.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Book a flat-rate service (e.g. drain cleaning) into a slot from get_availability. Returns a draft awaiting the customer's approval.
Annotations the server declares
- title: Book a fixed-price service
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
check_service_areaDeterministic yes/no: does this business come to the customer's zip?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Deterministic yes/no: does this business come to the customer's zip? Returns reason, the zips it serves, excluded zips, and alternative businesses when no.
Annotations the server declares
- title: Check service area
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
place_orderDraft an order (food/retail).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Draft an order (food/retail). Returns line items, total, a ref and a customer_token. Nothing reaches the business until approve_request. Ask the customer to confirm the total first.
Annotations the server declares
- title: Place an order
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
place_service_requestOne call for any trade job (repair, quote, booking).No findings
Why it is in this group
- The name "place_service_request" says "request": a word for a change.
Description, as the server wrote it One call for any trade job (repair, quote, booking). Pass service_sku (or a plain description and it matches one), intake_answers keyed by the field ids from get_service_requirements, customer (name, phone, address with line1+zip), preferred_time, and slot_start only when the service flow asks for one. For an unchanged retry after receiving a receipt, include retry_ref and its customer_token with the original details. For quote-first requests without a slot, optionally generate and securely save intent_capability before the first submission; explicitly repeat the same business/details/capability to recover a lost first receipt. Do not silently resubmit. Without either capability this creates a separate request, even if the phone matches. A quote_required request is sent to the business without a price; a priced booking draft waits for the customer's approval. Follow the returned next_step, and never call a request booked until the business confirms.
Annotations the server declares
- title: Place a service request
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
request_quoteAsk a service business (plumber, etc.) for a price.No findings
Why it is in this group
- The name "request_quote" says "request": a word for a change.
Description, as the server wrote it Ask a service business (plumber, etc.) for a price. Describe the problem in plain English. Many businesses answer instantly with an estimate and bookable slots; others reply within their stated response time (poll get_request_status).
Annotations the server declares
- title: Request a quote
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
upload_photoStores an image and returns a URL to pass in photos[] of place_service_request.No findings
Why it is in this group
- The name "upload_photo" says "upload": a word for a change.
Description, as the server wrote it Stores an image and returns a URL to pass in photos[] of place_service_request. Some services require a photo (get_service_requirements says which).
Annotations the server declares
- title: Upload a photo of the problem
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 6Claude Code: allow
get_availabilityLive bookable windows over the next days, from the business's own schedule (hours, crew, jobs, holds, blocks).No findings
Why it is in this group
- The name "get_availability" says "get": a word for reading.
Description, as the server wrote it Live bookable windows over the next days, from the business's own schedule (hours, crew, jobs, holds, blocks). Pass service_sku to get windows sized for that service's duration and crew, plus: operating_state (open | closed | open_fully_booked | emergency_only | temporarily_unavailable | booking_future | unknown), confidence (verified | stale, with a note when not verified recently), earliest, the service's price and whether it auto-books or needs the owner. Use a slot's start with place_service_request or book_slot; the slot is held the moment the draft is created.
Annotations the server declares
- title: Get availability
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_businessFull agent-readable profile: verified identity and license, services with real prices (what's included / excluded), hours, service zips, delivery rules, policies, and exactly how t…No findings
Why it is in this group
- The name "get_business" says "get": a word for reading.
Description, as the server wrote it Full agent-readable profile: verified identity and license, services with real prices (what's included / excluded), hours, service zips, delivery rules, policies, and exactly how to act (order, quote, or book).
Annotations the server declares
- title: Get business profile
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_request_statusCurrent status, ETA / arrival window, business response, and the next step.No findings
Why it is in this group
- The name "get_request_status" says "get": a word for reading.
Description, as the server wrote it Current status, ETA / arrival window, business response, and the next step. Poll this while waiting on a business.
Annotations the server declares
- title: Get request status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_service_requirementsBefore creating a request: the exact questions to ask the customer for this service (required_fields / optional_fields, each with type and options), the pricing flow, and what happ…No findings
Why it is in this group
- The name "get_service_requirements" says "get": a word for reading.
Description, as the server wrote it Before creating a request: the exact questions to ask the customer for this service (required_fields / optional_fields, each with type and options), the pricing flow, and what happens next.
Annotations the server declares
- title: Get service requirements
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_servicesThe business's services with pricing mode (fixed | starting_at | range | diagnostic_fee_then_quote | quote_required), price, what's included/excluded, and which intake fields are r…No findings
Why it is in this group
- The name "get_services" says "get": a word for reading.
Description, as the server wrote it The business's services with pricing mode (fixed | starting_at | range | diagnostic_fee_then_quote | quote_required), price, what's included/excluded, and which intake fields are required.
Annotations the server declares
- title: List services
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_businessesFind businesses in the network by what the customer needs (e.g.No findings
Why it is in this group
- The name "search_businesses" says "search": a word for reading.
Description, as the server wrote it Find businesses in the network by what the customer needs (e.g. 'plumber', 'smoothie', 'clogged sink'), optionally filtered by category, zip, location and open-now. Returns summaries with starting prices and whether they serve the zip.
Annotations the server declares
- title: Search businesses
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http entervista https://entervista.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__entervista__search_businesses",
"mcp__entervista__get_business",
"mcp__entervista__get_services",
"mcp__entervista__get_service_requirements",
"mcp__entervista__get_availability",
"mcp__entervista__get_request_status"
],
"ask": [
"mcp__entervista__check_service_area",
"mcp__entervista__place_service_request",
"mcp__entervista__upload_photo",
"mcp__entervista__place_order",
"mcp__entervista__request_quote",
"mcp__entervista__book_slot",
"mcp__entervista__approve_request"
],
"deny": [
"mcp__entervista__cancel_request"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as entervista. Review it before you use it.