# 904 Digital Media: book a call

> Book a call with 904 Digital Media (Jacksonville, FL): services, open times, requests.

- name: com.weare904digitalmedia/booking
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 96/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.weare904digitalmedia%2Fbooking
- tools: https://api.protogrid.dev/v1/servers/com.weare904digitalmedia%2Fbooking/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "booking": {
      "type": "http",
      "url": "https://book.weare904digitalmedia.com/api/mcp/904-digital-media"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-24d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 96/100 (strong)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 4 of 4 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,316 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 1,316 tokens to load them all
- tool set hash: 4d785995d293d24a3a6aa805b9aeb36a
- badge: [![protogrid quality](https://protogrid.dev/badge/com.weare904digitalmedia/booking.svg)](https://protogrid.dev/servers/com.weare904digitalmedia/booking)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://book.weare904digitalmedia.com/api/mcp/904-digital-media (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (4)

- `get_availability`: Open start times for one 904 Digital Media service, read from 904 Digital Media's live calendar. Pass service_id from list_services. Optional from and to: a date (YYYY-MM-DD, read in 904 Digital Media's time zone; a to date includes that whole day) or a date-time with its offset (e.g. 2026-10-06T09:00:00-04:00). The default is the next 7 days and the most is 14; the window actually searched is returned as window. Returns up to 50 times, each as an exact start (pass it unchanged to request_booking) and as local time in 904 Digital Media's time zone; when there are more, more is true and next_from is where to continue. Times are not held: request_booking checks again. Read-only.
- `list_services`: List the services 904 Digital Media offers, with each one's id, length, price (when 904 Digital Media shows one), where it happens (phone, video, at the customer's address, or at 904 Digital Media), and any questions 904 Digital Media asks when booking it. A service marked bookable_by_assistant: false takes a deposit or payment, saves a card, is a class or a plan, or needs a file upload; it cannot be requested here, and booking_page is 904 Digital Media's own page where the customer can book it themselves. Read-only.
- `request_booking`: Send 904 Digital Media a booking REQUEST for one appointment on the customer's behalf. Nothing is confirmed until 904 Digital Media confirms it. Use a start from get_availability. Needs the customer's name, phone and email (904 Digital Media emails the customer when it confirms, declines or suggests another time), answers to any required questions from list_services (by question id), and the street address when the service happens at the customer's address. No payment is taken here. What happens next: 904 Digital Media is notified right away and the customer gets an email saying the request was received, then another when 904 Digital Media answers. If the customer will not share an email, use request_callback instead.
- `request_callback`: Ask 904 Digital Media to call the customer back. Use it when the customer wants to talk first, has no email, or no listed time suits. Needs the customer's name, phone and a short reason. What happens next: 904 Digital Media is alerted right away and calls the customer back. Nothing is booked, and nothing is texted or emailed to the customer from here.
