# Surfing Dog Inbox (ai.surfingdog/inbox): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/ai.surfingdog%2Finbox/versions/latest)
- Connected to: https://inbox.surfingdog.ai/mcp
- Homepage: https://surfingdog.ai/
- Repository: https://github.com/surfingdogai/inbox
- Scoring rules: v2
- Tools: 19
- Average: 49.3 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how Surfing Dog Inbox (ai.surfingdog/inbox)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Minor: The server's instructions are 2835 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.

## Tools

- `list_services`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: cursor, limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `request_quote`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: payload, payload.itemOffered, payload.itemOffered.name, payload.itemOffered.sku, payload.itemOffered.serviceId, payload.itemOffered.productId, payload.quantity, payload.description, payload.budget, payload.budget.value, payload.budget.currency, payload.requestedFor, payload.deliveryAddress, payload.deliveryAddress.streetAddress, payload.deliveryAddress.addressLocality, payload.deliveryAddress.addressRegion, payload.deliveryAddress.postalCode, payload.deliveryAddress.addressCountry, payload.job.urgency, payload.job.visit, payload.job.site, payload.job.site.address, payload.job.site.address.streetAddress, payload.job.site.address.addressLocality, payload.job.site.address.addressRegion, payload.job.site.address.postalCode, payload.job.site.address.addressCountry, payload.job.site.geo.latitude, payload.job.site.geo.longitude, payload.job.site.propertyType, payload.job.windows, payload.job.windows[].from, payload.job.windows[].to, payload.job.budgetMax, payload.job.budgetMax.currency, contact, contact.name, contact.email, contact.phone, contact.locale, message, attachments[].name.
  - Minor: String arguments with no constraint or example: payload.itemOffered.serviceId, payload.itemOffered.productId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `send_message`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subject, body, contact, contact.name, contact.email, contact.phone, contact.locale, message_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `list_products`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: cursor, limit, q.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `create_order`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: payload, payload.orderedItem, payload.orderedItem[].productId, payload.orderedItem[].sku, payload.orderedItem[].name, payload.orderedItem[].quantity, payload.orderedItem[].price, payload.orderedItem[].price.value, payload.orderedItem[].price.currency, payload.orderedItem[].listPrice, payload.orderedItem[].listPrice.value, payload.orderedItem[].listPrice.currency, payload.orderedItem[].options, payload.orderedItem[].options[].groupId, payload.orderedItem[].options[].choiceId, payload.orderedItem[].options[].name, payload.orderedItem[].options[].priceDelta, payload.orderedItem[].options[].priceDelta.currency, payload.orderedItem[].note, payload.orderedItem[].brief, payload.orderedItem[].brief.servings, payload.orderedItem[].brief.flavour, payload.totalPrice, payload.totalPrice.value, payload.totalPrice.currency, payload.personalised, payload.personalised.listPrice, payload.personalised.listPrice.value, payload.personalised.listPrice.currency, payload.personalised.says, payload.billingAddress, payload.billingAddress.streetAddress, payload.billingAddress.addressLocality, payload.billingAddress.addressRegion, payload.billingAddress.postalCode, payload.billingAddress.addressCountry, payload.shippingAddress, payload.shippingAddress.streetAddress, payload.shippingAddress.addressLocality, payload.shippingAddress.addressRegion, payload.shippingAddress.postalCode, payload.shippingAddress.addressCountry, payload.delivery, payload.delivery.method, payload.delivery.when, payload.paymentMethod, payload.notes, payload.fulfil, payload.fulfil.method, payload.fulfil.slot, payload.fulfil.slot.start, payload.fulfil.slot.end, payload.fulfil.geo.latitude, payload.fulfil.geo.longitude, payload.fulfil.zone, payload.fulfil.zone.name, payload.fulfil.fee, payload.fulfil.fee.currency, payload.fulfil.etaMin, payload.tip, payload.tip.percent, payload.tip.amount, payload.tip.amount.currency, payload.progress, payload.progress.stage, payload.progress.at, payload.kitchen, payload.kitchen.instant, payload.kitchen.hold, contact, contact.name, contact.email, contact.phone, contact.locale, message, attachments[].name.
  - Minor: String arguments with no constraint or example: payload.orderedItem[].productId.
  - Minor: The meaning of the boolean argument payload.kitchen.instant is unclear.
  - Minor: Says nothing about what it returns.
- `decline_offer`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: item_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `check_availability`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: service_id, party_size.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: service_id. Name the tool or the place that returns it, or models look it up first.
- `provide_details`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: item_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `get_item_status`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: item_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `cancel_item`: 51 / 100
  - Minor: Arguments without a description: item_id, reason.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `verify_customer`: 54 / 100
  - Minor: Arguments without a description: item_id.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `acknowledge_receipt`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: item_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `create_booking`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: payload, payload.reservationFor, payload.reservationFor.serviceId, payload.startTime, payload.partySize, payload.totalPrice, payload.totalPrice.value, payload.totalPrice.currency, payload.personalised, payload.personalised.listPrice, payload.personalised.listPrice.value, payload.personalised.listPrice.currency, payload.personalised.says, payload.resourceId, payload.deposit, payload.deposit.amount, payload.deposit.amount.value, payload.deposit.amount.currency, payload.deposit.dueBy, payload.deposit.refundable, payload.policy, payload.policy.steps[].until, payload.policy.steps[].fee, payload.policy.steps[].fee.currency, payload.policy.after.currency, payload.policy.noShow, payload.policy.noShow.currency, payload.notes, contact, contact.name, contact.email, contact.phone, contact.locale, message, attachments[].name, visit_for.item_id.
  - Minor: String arguments with no constraint or example: payload.resourceId.
  - Minor: The meaning of the boolean argument payload.deposit.refundable is unclear.
- `make_offer`: 55 / 100
  - Minor: Arguments without a description: item_id, terms.lines[].index, terms.lines[].quantity, terms.lines[].unit_price, terms.lines[].unit_price.value, terms.lines[].unit_price.currency, terms.total_price.value, terms.total_price.currency.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `accept_offer`: 58 / 100
  - Minor: Arguments without a description: item_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `get_business_profile`: 59 / 100
  - Minor: Says nothing about what it returns.
- `withdraw_from_contract`: 59 / 100
  - Minor: Arguments without a description: item_id, lines[].index, lines[].quantity.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `request_return`: 67 / 100
  - Minor: Arguments without a description: item_id, lines[].index, lines[].quantity, note.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.
- `suggest_time`: 68 / 100
  - Minor: Arguments without a description: item_id, note.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: item_id. Name the tool or the place that returns it, or models look it up first.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
