Skip to main content
Glama
oneappsworld

CallChatSyn MCP Server

by oneappsworld

CallChatSyn MCP server

Let an AI assistant (Claude, Cursor, any MCP client) answer customer questions and book appointments for a small business, using that business's own FAQs and opening hours on CallChatSyn.

Free for the first 1,000 businesses (founder offer: 100 API calls a day, 2,000 a month).

Tools

Tool

What it does

answer_customer_question

Answers from the business's FAQs and order data (English/Chinese); flags booking and "talk to a person" requests

list_open_times

Next open appointment times in the business's time zone, plus services and locations

book_appointment

Books one of those times (only offered times; the business is notified)

Related MCP server: G-Guest MCP server

Setup

  1. Create a CallChatSyn account, add FAQs and opening hours, then Dashboard → Developers → claim founder access → create an API key.

  2. Add to your MCP client config:

{
  "mcpServers": {
    "callchatsyn": {
      "command": "npx",
      "args": ["-y", "github:oneappsworld/callchatsyn-mcp"],
      "env": { "CALLCHATSYN_API_KEY": "ccs_live_..." }
    }
  }
}

Keep the key private; it acts for one business.

Notes

MIT licensed.

Available Tools

3 tools
answer_customer_questionAnswer a customer questionA

Answer a customer's message using the business's own FAQs and order data (English or Chinese). Returns intent (faq, order_status, appointment, human_handoff), the reply, and matched=false when no FAQ fit.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe customer's message, as written

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose useful behavioral detail beyond structured fields: the intent taxonomy (faq, order_status, appointment, human_handoff) and the matched=false signal when no FAQ fits, which implies an escalation path. However, it never says whether the generated reply is sent to the customer or merely returned for review, nor what permissions or side effects apply — a material ambiguity for a customer-facing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and data sources, then the return contract. Every clause earns its place, and the return-shape detail is warranted because no output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because there is no output schema and no annotations, the description does the heavy lifting well by enumerating the intent values and the matched=false fallback. The remaining gap is whether the reply is dispatched or returned, which leaves the agent unsure about side effects, but overall the description is sufficient to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter exists and schema coverage is 100%, so the schema already documents 'message' fully. The description adds only the language hint (English or Chinese) relevant to the message, which is marginal value. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (answer) and resource (a customer's message) and names the knowledge sources used (FAQs, order data), which distinguishes it from the booking-oriented siblings list_open_times and book_appointment without naming them. It stops short of an explicit 'not for booking' statement, so differentiation is inferential rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'answer a customer's message', and the parenthetical '(English or Chinese)' hints at the input language scope. There is no explicit when-to-use or when-not guidance, and no sibling alternatives are named, so the agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

book_appointmentBook an appointmentA

Book one of the open times from list_open_times. Needs the exact 'start' value, a service, and the customer's email or phone. Confirm details with the customer before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
emailNo
phoneNo
startYesA 'start' value returned by list_open_times
remarksNo
serviceYesOne of the business's services

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says nothing about whether the call is idempotent, what happens on a failed/duplicate booking, confirmations sent, required permissions, or what success returns. For a mutating booking operation with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and its data source, no repetition or filler. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the core flow (get times, pass start+service+contact, confirm first), which is the minimum an agent needs. But for a 6-parameter mutation tool with no annotations and no output schema, it omits failure/duplicate handling, permission or confirmation behavior, and the role of name/remarks, leaving meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33%, so the schema documents only 'start' and 'service'. The description does add value: it names the expected inputs (start/service/email or phone) and clarifies the email-or-phone alternative. But it leaves 'name' and 'remarks' completely undocumented and does not resolve the required-params ambiguity (schema marks only start and service required, while the description implies contact info is needed).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Book ... an appointment') and explicitly ties it to a sibling tool ('one of the open times from list_open_times'), which differentiates it from that sibling. It does not differentiate from answer_customer_question, but that sibling is clearly unrelated, so the differentiation need is lower.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear prerequisite: the 'start' value must come from list_open_times. It also adds a workflow instruction ('Confirm details with the customer before calling'), which is real usage guidance. It doesn't state when not to use the tool or address conflicts (e.g., what if the slot is taken), so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_open_timesList open appointment timesB

List the next open appointment times (labels in the business's time zone), plus its services and locations.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLabel language

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It usefully states that labels are in the business's time zone and that the response also includes services and locations, but says nothing about how many times are returned, pagination, ordering, or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb leading and no filler. Every clause (time zone, services, locations) carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one fully documented parameter, the description covers the essentials, including the return contents, which matters since no output schema exists. Only pagination/volume behavior is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single optional 'lang' enum is fully documented in the schema ('Label language'). The description's mention of 'labels' adds only marginal, indirect context, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('open appointment times') and even notes the label time zone and bundled services/locations. It clearly separates itself from book_appointment, though it never explicitly contrasts with the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of the natural companion tool book_appointment. The availability-checking intent is only implied by the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.0
    • First observedanswer_customer_question
    • First observedbook_appointment
    • First observedlist_open_times

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation4/5

The three tools have distinct core purposes: answering informational queries, listing available times, and booking appointments. However, answer_customer_question returns an 'appointment' intent that might tempt an agent to use it for scheduling queries instead of list_open_times, creating a mild boundary overlap.

Naming Consistency5/5

All tool names use snake_case and follow a verb-first pattern (answer_customer_question, list_open_times, book_appointment). The convention is consistent and predictable.

Tool Count5/5

Three tools are well-scoped for a focused customer chat and appointment booking server; each tool serves a clear, non-redundant role and the set avoids bloat.

Completeness3/5

The surface covers answering FAQs/orders and booking appointments, but lacks tools for canceling or rescheduling appointments and for actually performing a human handoff. These are notable gaps for a customer service lifecycle.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Exposes SMB business data as tools for AI agents, enabling retrieval of business profiles, services, availability, and reviews.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Book a table, an appointment or a place in a class at a real local business. Live availability, instant confirmation, no account and no API key. Eight tools: search, fetch, get_business, check_availability, create_booking, check_booking, cancel_booking and request_listing. Guest emails in eight languages. Hosted at https://g-guest.app/api/mcp
    8
    14 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables small-business AI assistants to answer customer questions about hours, offerings, FAQs, staff, and booking from a single business.yaml config, with industry-specific tools and guardrails.
    2
    67 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables voice-driven appointment booking for small businesses, letting customers check availability, book, reschedule, and cancel appointments through any MCP client.
    1 npm
    MIT