904 Digital Media: book a call

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

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
83%
Naming quality
90%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • LOWTool description contains role marker that could confuse chat modelsin list_services

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,265Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (0.99% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "booking": {
      "url": "https://book.weare904digitalmedia.com/api/mcp/904-digital-media"
    }
  }
}

Remote endpoints

https://book.weare904digitalmedia.com/api/mcp/904-digital-mediastreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_availability(service_id, from, to, staff_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "service_id": {
      "type": "string",
      "description": "The service's id from list_services."
    },
    "from": {
      "description": "Earliest time: a date (YYYY-MM-DD, in the business's time zone) or a date-time with its offset. Default: now.",
      "type": "string"
    },
    "to": {
      "description": "Latest time: a date (that whole day is included) or a date-time with its offset. Default: 7 days after from; at most 14.",
      "type": "string"
    },
    "staff_id": {
      "description": "Only this person's times (a staff id from list_services).",
      "type": "string"
    }
  },
  "required": [
    "service_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡request_booking(service_id, start, name, phone, email, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "service_id": {
      "type": "string",
      "description": "The service's id from list_services."
    },
    "start": {
      "type": "string",
      "description": "The exact start from get_availability (ISO 8601 date-time with offset), unchanged."
    },
    "name": {
      "type": "string",
      "description": "The customer's full name."
    },
    "phone": {
      "type": "string",
      "description": "The customer's US phone number: 10 digits with area code, no extension."
    },
    "email": {
      "description": "The customer's email. 904 Digital Media sends the confirmation here, so a booking request needs it.",
      "type": "string"
    },
    "notes": {
      "description": "Anything the customer wants 904 Digital Media to know (up to 1000 characters).",
      "type": "string"
    },
    "answers": {
      "description": "Answers to the service's questions from list_services, keyed by question id.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "address": {
      "description": "The full street address, when the service happens at the customer's address.",
      "type": "string"
    },
    "staff_id": {
      "description": "A particular person from list_services. Leave out to let the business assign someone.",
      "type": "string"
    }
  },
  "required": [
    "service_id",
    "start",
    "name",
    "phone"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪request_callback(name, phone, reason)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The customer's name."
    },
    "phone": {
      "type": "string",
      "description": "The US number 904 Digital Media should call: 10 digits with area code, no extension."
    },
    "reason": {
      "type": "string",
      "description": "What the customer wants to talk about, in a sentence (up to 1000 characters)."
    }
  },
  "required": [
    "name",
    "phone",
    "reason"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools