# net.andrii/booking (remote · andrii.net)

Book a Washington notary or apostille appointment, get a quote, and track it, via AI assistant.

- Trust score: 69/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `andrii.net`: 69/100 (this document), [markdown](https://verifymcp.io/servers/net-andrii-booking/andrii.md), [page](https://verifymcp.io/servers/net-andrii-booking/andrii)

## Channel facts

- Endpoint: `https://andrii.net/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (cancel_booking).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2497 tokens (~178/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http net-andrii-booking https://andrii.net/mcp
```

### Codex

```toml
[mcp_servers.net-andrii-booking]
url = "https://andrii.net/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "net-andrii-booking": {
      "type": "remote",
      "url": "https://andrii.net/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add net-andrii-booking --url https://andrii.net/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  net-andrii-booking:
    url: "https://andrii.net/mcp"
```

### Other

```json
{
  "mcpServers": {
    "net-andrii-booking": {
      "type": "http",
      "url": "https://andrii.net/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 67, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-29 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 64, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 63)

First indexed and scored.

## MCP tools (14)

### `book_appointment` (~168 tokens)

Book a notary/apostille appointment for the signed-in customer, bound to their account. Call search_availability first and pass a slot's startUnix as scheduledAt (omit for a 'call me to schedule' request). Requires sign-in.

Input parameters:

- `address` (string|null): Meeting address (required for "mobile"; omit for office/apostille).
- `document_count` (integer|null): Number of documents. Default 1.
- `notes` (string|null): Anything else the notary should know.
- `scheduled_at` (integer|null): The chosen slot's `startUnix` (from search_availability). Omit for a "call me to schedule" request (no time held).
- `service` (string, required): Service: office | mobile | apostille | loan.

### `cancel_booking` (~43 tokens)

Cancel one of the signed-in customer's OWN Pending or Scheduled bookings. Requires sign-in.

Input parameters:

- `order_id` (string, required): The booking's order id (from my_bookings).

### `check_request_status` (~103 tokens)

Check the current status of a previously submitted request by its reference id — whether the notary confirmed/scheduled it (and for when, Pacific time), rescheduled, cancelled, or merged it with another request. No sign-in needed. Call this whenever the customer asks about their request's status or whether anything changed since it was submitted.

Input parameters:

- `reference` (string, required): The reference id returned when the request was submitted (also accepts the token from the emailed confirm link).

### `check_service_area` (~91 tokens)

Check whether an address is inside Andrii Co.'s Washington service area, and get its resolved location + whether it's precise enough to book. Read-only; no booking.

Input parameters:

- `address` (string, required): Street address, city, or ZIP to check (Washington State service area).
- `service` (string|null): "notary" (default) or "apostille" — the service-area rules differ slightly.

### `get_apostille_requirements` (~155 tokens)

Check whether a document qualifies for an apostille and how — certified vital records can be apostilled as-is (mail-in), a private document (diploma/POA) needs a notarization first, federal documents go to the US Department of State. Includes the honest do-it-yourself path AND our offer. Pure, no side effects.

Input parameters:

- `destination_country` (string|null): The country the apostilled document is for.
- `document` (string, required): The document in plain words (e.g. "Washington birth certificate", "university diploma", "FBI background check", "power of attorney").
- `issuing_state` (string|null): The US state that issued or notarized it (default Washington).

### `get_price_quote` (~172 tokens)

Get a server-authoritative USD price estimate (before shipping). Pure calculation, no side effects.

Input parameters:

- `after_hours` (boolean): Mobile only: the chosen slot is after 6pm or on a weekend.
- `apostille` (boolean): True to include a Secretary-of-State apostille.
- `document_count` (integer|null): Number of documents (1–20). Default 1.
- `mobile` (boolean): True if we travel to the customer (adds the flat travel fee).
- `needs_notarization` (boolean|null): Set false for a mail-in apostille of already-certified public records (birth/marriage/death certificates) that need no notarial act.
- `tier` (string|null): Apostille tier when `apostille`: expedited | priority | standard | mailin.

### `get_services` (~51 tokens)

The full service catalog (Washington State notary & apostille) with prices and the accepted payment options. Optional — the server instructions already summarize the flow; call this when the customer asks about services or payment methods.

### `get_turnaround_estimate` (~154 tokens)

Estimate typical completion + shipping timing for a service (apostille processing days, mail-in and delivery legs). Ranges, not guarantees; no side effects. For an exact appointment time use search_availability.

Input parameters:

- `destination_country` (string|null): Destination country (used to infer shipping when `shipping` is omitted).
- `service` (string, required): Service: notarization | apostille | apostille_mail | loan_signing.
- `shipping` (string|null): Delivery: pickup | us | ukraine | international. If omitted, inferred from destination_country (apostille legs default to US shipping).
- `tier` (string|null): Apostille speed tier when service is apostille: expedited | priority | standard.

### `my_bookings` (~30 tokens)

List the signed-in customer's OWN notary/apostille bookings (most recent first). Requires sign-in.

### `request_apostille` (~261 tokens)

Submit a mail-in apostille request (a lead). For already-certified Washington public records that need NO notarization (birth/marriage/death certificates). The notary follows up with where to mail the documents and a quote; nothing is charged until approved. Requires a name and either an email or a phone.

Input parameters:

- `destination_country` (string|null): Destination country the apostilled documents are for.
- `documents` (string, required): What documents, in plain words (e.g. "2 birth certificates for Ukraine").
- `email` (string|null): Email. Collect BOTH an email AND a phone in one question when possible; at least one is required.
- `existing_reference` (string|null): To ADD these documents to an EXISTING request instead of creating a second one, pass that request's reference id (with the same email/phone so we can verify the customer). Nothing new is created.
- `name` (string, required): The customer's FULL LEGAL NAME exactly as on their government-issued ID (never a nickname) — apostille filings print it.
- `notes` (string|null): Anything else the notary should know.
- `phone` (string|null): Phone with country code — the notary confirms fastest by phone/SMS.

### `request_booking` (~429 tokens)

Submit a booking request (a lead — NOT a confirmed appointment; the notary follows up to confirm). Requires the customer's FULL LEGAL NAME and an email or phone (collect both). Pass a chosen slot's startUnix as desired_time_unix (from search_availability). To modify/extend an existing request, pass existing_reference instead of creating a duplicate.

Input parameters:

- `address` (string|null): Meeting address — MOBILE ONLY. Office and apostille visits automatically use our Bothell office; omit this for them.
- `desired_time` (string|null): The wanted time in plain words, when no exact slot was chosen (rides the notes; the notary confirms a real time).
- `desired_time_unix` (integer|null): The chosen slot's `startUnix` from search_availability (Unix seconds). Pass it so the request carries the exact wanted time — still a request, never a hold.
- `document_count` (integer|null): Number of documents. Default 1.
- `email` (string|null): Email. Collect BOTH an email AND a phone in one question when possible; at least one is required.
- `existing_reference` (string|null): To ADD to or change an EXISTING request instead of creating a second one (e.g. "also apostille it", "make it 3 documents"), pass that request's reference id here — the same email/phone must be provid…
- `name` (string, required): The customer's FULL LEGAL NAME exactly as on their government-issued ID (never a nickname or chat display name) — notarial records and apostille filings print it. Ask if you only know a first name.
- `notes` (string|null): Anything else the notary should know.
- `phone` (string|null): Phone with country code (e.g. +1...). The notary confirms fastest by phone/SMS — ask for it even when an email is known.
- `service` (string, required): Service: office | mobile | apostille | loan.

### `request_price_match` (~236 tokens)

Ask us to consider matching a comparable licensed notary's WRITTEN quote. This is a request the notary reviews — it never sets a price automatically. We reply with our own comparable quote and a match decision within one business day. Requires a name and either an email or a phone.

Input parameters:

- `competitor_name` (string, required): The competitor's business name.
- `competitor_price_usd` (number, required): The competitor's quoted price, in US dollars.
- `competitor_url` (string|null): Link to the competitor's quote/page, if any (stored for the operator, never fetched).
- `document_count` (integer|null): Number of documents, for our comparison quote. Default 1.
- `email` (string|null): Email — provide an email OR a phone so we can reach them.
- `name` (string, required): The customer's name.
- `notes` (string|null): Anything else the notary should know.
- `phone` (string|null): Phone — provide an email OR a phone so we can reach them.
- `service` (string, required): Service: office | mobile | apostille | apostille_mail | loan.

### `reschedule_booking` (~80 tokens)

Reschedule one of the signed-in customer's OWN bookings to a new slot's startUnix (strict — the new time must be genuinely available). Requires sign-in.

Input parameters:

- `order_id` (string, required): The booking's order id (from my_bookings).
- `scheduled_at` (integer, required): The new slot's `startUnix` (from search_availability).

### `search_availability` (~189 tokens)

Find open notary/apostille appointment slots — this also validates the service area for the given address. Returns the resolved location, up to 7 `recommended` slots (each with `startUnix`), and per-day booking `windows`: the k-th bookable start is `startUnixFrom + k*stepSec` for k < `startCount`. Pass the chosen start's Unix seconds to request_booking as desired_time_unix. "mobile" needs an address; "office"/"apostille" use our office.

Input parameters:

- `address` (string|null): The address to meet at — required for "mobile"; ignored for "office".
- `document_count` (integer|null): Number of documents (drives the appointment length). Default 1.
- `service` (string, required): "office" (at our office), "mobile" (we come to you), or "apostille".

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/net-andrii-booking/andrii#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 68
- 2026-08-01: 68
- 2026-07-31: 67
- 2026-07-30: 66
- 2026-07-29: 65
- 2026-07-28: 64
- 2026-07-27: 64
- 2026-07-26: 63

## Links

- Remote endpoint: https://andrii.net/mcp
- Website: https://andrii.co/
- Changelog RSS feed: https://verifymcp.io/servers/net-andrii-booking/andrii/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/net-andrii-booking/andrii/changelog.json
- HTML version of this page: https://verifymcp.io/servers/net-andrii-booking/andrii
