Skip to main content
Glama
JulianThorpe

mcp-availability-server

by JulianThorpe

mcp-availability-server

A small Model Context Protocol (MCP) server written in TypeScript. It exposes two tools that an MCP-capable client (such as Claude Desktop or Claude Code) can discover and call:

  • check_availability — returns available appointment slots for a given date.

  • format_call_summary — turns a caller, intent and next action into a tidy SMS-style summary.

The server communicates over stdio, the transport MCP clients use to launch and talk to a local server process. The tool logic is self-contained so the server runs anywhere with no API keys or external services.

Why this exists

I build production AI systems that use tool-calling and orchestration (a conversational agent on the Anthropic API, and a phone voice agent on Telnyx). This repo is a clean, minimal example of authoring an MCP server: defining tools with typed input schemas, returning structured content, and serving them over the MCP stdio transport.

Related MCP server: Partner Booking MCP Server

Requirements

  • Node.js 18 or later

Install and build

npm install
npm run build

Run

npm start
# or
node build/index.js

The server runs on stdio and logs availability-server: MCP server running on stdio to stderr.

Use it with Claude Desktop

Add this to your Claude Desktop MCP config (claude_desktop_config.json):

{
  "mcpServers": {
    "availability": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-availability-server/build/index.js"]
    }
  }
}

Restart Claude Desktop, and the two tools will be available in conversation.

Tools

check_availability

Input

Type

Description

date

string (YYYY-MM-DD)

The date to check. Weekends return no slots.

format_call_summary

Input

Type

Description

caller

string

Caller name or number

intent

string

What the caller wanted

next_action

string

The agreed next step

License

MIT

Available Tools

2 tools
check_availabilityCheck availabilityB

Return available appointment slots for a given date (YYYY-MM-DD). Weekends return no slots.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes

TDQS

B3.3/5.0
Behavior3/5

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

Discloses weekends return no slots, which is a behavioral trait. However, with no annotations, it lacks details on idempotency, side effects, or authentication 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?

Two short sentences, no fluff. Every word adds value.

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?

Given no output schema, the description states it returns available slots, but does not specify the return structure or error cases. Adequate for a simple tool, but could be more complete.

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?

The description reinforces the date format (YYYY-MM-DD) already in the schema pattern, adding slight value. However, it does not explain the role of the date beyond format. Schema coverage is 0%, so description partially compensates.

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?

Clearly states it returns available appointment slots for a specific date with the format YYYY-MM-DD. It differentiates from sibling 'format_call_summary' by focusing on availability checks.

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?

No guidance on when to use this tool versus alternatives. Does not mention when not to use or any prerequisites.

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

format_call_summaryFormat call summaryA

Format a concise SMS-style summary of an inbound call from caller, intent and next action.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerYesCaller name or number
intentYesWhat the caller wanted
next_actionYesThe agreed next step

TDQS

A3.8/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It states formatting but does not disclose output format details, validation behavior, or side-effects (e.g., whether it saves or just returns text). Minimal behavioral disclosure.

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?

One sentence, no wasted words, front-loaded with verb and purpose. Highly concise.

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 3-string formatting tool with no output schema, the description covers the essential purpose. Could be slightly more explicit about output format (e.g., character limit), but adequate given low complexity.

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

Parameters4/5

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

Schema covers 100% with clear descriptions for each param. Description adds 'SMS-style' context suggesting brevity, which enriches the expected output beyond schema.

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

Purpose5/5

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

The description specifically states the verb 'format' and resource 'concise SMS-style summary' along with components (caller, intent, next action). It clearly distinguishes from sibling 'check_availability' which is about availability checking.

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?

The description implies usage when a call summary needs formatting, but no explicit guidance on when not to use it or alternatives. The sibling tool provides some context but no comparative advice.

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. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • First observedcheck_availability
    • First observedformat_call_summary

TDQS

A3.5/5.0
Disambiguation5/5

The two tools serve entirely different purposes—one for checking appointment availability and one for formatting call summaries—so there is no ambiguity between them.

Naming Consistency5/5

Both tools use a clear verb_noun pattern with underscores (check_availability and format_call_summary), maintaining consistency.

Tool Count2/5

With only two tools covering disparate domains (availability and call summaries), the tool count is too low for coherent scope; each domain would benefit from additional related tools.

Completeness2/5

The tool surface is severely incomplete for both implied domains: for availability, CRUD operations are missing; for call summaries, creation and editing are absent, leaving significant gaps.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Exposes tools from the Ecuro Light API for managing clinical appointments, patient records, and clinic availability. It enables users to perform healthcare management tasks such as scheduling, patient search, and report generation through MCP-compatible clients.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Simulates a third-party appointment booking agent, enabling your AI platform to check availability and book appointments via MCP interoperability.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Exposes WakaTime Summaries API tools over stdio, enabling daily and today's coding activity summaries via MCP.
    10
    17
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JulianThorpe/mcp-availability-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server