Book a call with 904 Digital Media (Jacksonville, FL): services, open times, requests.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
The service's id from list_services.
Latest time: a date (that whole day is included) or a date-time with its offset. Default: 7 days after from; at most 14.
Earliest time: a date (YYYY-MM-DD, in the business's time zone) or a date-time with its offset. Default: now.
Only this person's times (a staff id from list_services).
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.
| Argument | Type | Description |
|---|---|---|
| to | string | Latest time: a date (that whole day is included) or a date-time with its offset. Default: 7 days after from; at most 14. |
| from | string | Earliest time: a date (YYYY-MM-DD, in the business's time zone) or a date-time with its offset. Default: now. |
| staff_id | string | Only this person's times (a staff id from list_services). |
| service_id* | string | The service's id from list_services. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"service_id"
],
"properties": {
"to": {
"type": "string",
"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."
},
"from": {
"type": "string",
"description": "Earliest time: a date (YYYY-MM-DD, in the business's time zone) or a date-time with its offset. Default: now."
},
"staff_id": {
"type": "string",
"description": "Only this person's times (a staff id from list_services)."
},
"service_id": {
"type": "string",
"description": "The service's id from 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.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| name* | string | The customer's full name. |
| string | The customer's email. 904 Digital Media sends the confirmation here, so a booking request needs it. | |
| notes | string | Anything the customer wants 904 Digital Media to know (up to 1000 characters). |
| phone* | string | The customer's US phone number: 10 digits with area code, no extension. |
| start* | string | The exact start from get_availability (ISO 8601 date-time with offset), unchanged. |
| address | string | The full street address, when the service happens at the customer's address. |
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.
| Argument | Type | Description |
|---|---|---|
| name* | string | The customer's name. |
| phone* | string | The US number 904 Digital Media should call: 10 digits with area code, no extension. |
| reason* | string | What the customer wants to talk about, in a sentence (up to 1000 characters). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"phone",
"reason"
],
"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)."
}
}
}| answers |
| object |
| Answers to the service's questions from list_services, keyed by question id. |
| staff_id | string | A particular person from list_services. Leave out to let the business assign someone. |
| service_id* | string | The service's id from list_services. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"service_id",
"start",
"name",
"phone"
],
"properties": {
"name": {
"type": "string",
"description": "The customer's full name."
},
"email": {
"type": "string",
"description": "The customer's email. 904 Digital Media sends the confirmation here, so a booking request needs it."
},
"notes": {
"type": "string",
"description": "Anything the customer wants 904 Digital Media to know (up to 1000 characters)."
},
"phone": {
"type": "string",
"description": "The customer's US phone number: 10 digits with area code, no extension."
},
"start": {
"type": "string",
"description": "The exact start from get_availability (ISO 8601 date-time with offset), unchanged."
},
"address": {
"type": "string",
"description": "The full street address, when the service happens at the customer's address."
},
"answers": {
"type": "object",
"description": "Answers to the service's questions from list_services, keyed by question id.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"staff_id": {
"type": "string",
"description": "A particular person from list_services. Leave out to let the business assign someone."
},
"service_id": {
"type": "string",
"description": "The service's id from list_services."
}
}
}