Skip to main content
Glama

testCal MCP server

This Custom MCP Server helps me get and set meeting appointment in my calendar.

Components

Resources

The server implements a simple note storage system with:

  • Custom note:// URI scheme for accessing individual notes

  • Each note resource has a name, description and text/plain mimetype

Prompts

The server provides a single prompt:

  • summarize-notes: Creates summaries of all stored notes

    • Optional "style" argument to control detail level (brief/detailed)

    • Generates prompt combining all current notes with style preference

Tools

The server implements one tool:

  • add-note: Adds a new note to the server

    • Takes "name" and "content" as required string arguments

    • Updates server state and notifies clients of resource changes

Related MCP server: Google Calendar MCP Server

Configuration

[TODO: Add configuration details specific to your implementation]

Quickstart

Install

Create a Google Desktop Application OAuth2 Client and download the Client_id & Client_secret JSON and save it as credentials.json in the root of this repo.

Claude Desktop

On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

Development

Building and Publishing

To prepare the package for distribution:

  1. Sync dependencies and update lockfile:

uv sync
  1. Build package distributions:

uv build

This will create source and wheel distributions in the dist/ directory.

  1. Publish to PyPI:

uv publish

Note: You'll need to set PyPI credentials via environment variables or command flags:

  • Token: --token or UV_PUBLISH_TOKEN

  • Or username/password: --username/UV_PUBLISH_USERNAME and --password/UV_PUBLISH_PASSWORD

Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector via npm with this command:

npx @modelcontextprotocol/inspector uv --directory /Users/avijitsarkar/Library/Application Support/Claude/testCal run testcal

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Community and Support

Hosting Partners

📺 Video Tutorials

Follow along with our detailed video tutorials on the Kno2gether YouTube Channel for step-by-step guidance and best practices.

🤝 Contributing

We welcome contributions! Please feel free to submit a Pull Request.

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

2 tools
create-eventA

Create a new calendar event. Times must be in ISO 8601 format with UTC timezone (e.g., '2024-12-04T10:00:00Z')

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYesTitle of the event
descriptionNoEvent description
start_timeYesStart time in ISO 8601 format with UTC timezone (e.g., '2024-12-04T10:00:00Z')
end_timeYesEnd time in ISO 8601 format with UTC timezone (e.g., '2024-12-04T11:00:00Z')
attendeesNoList of attendee email addresses

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so the description must convey behavior. It specifies the time format requirement, but lacks details on side effects, return values, or permissions.

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?

The description is a single sentence with an additional note, both front-loaded and free of unnecessary words.

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?

No output schema exists, and the description does not explain return values or error conditions. For a tool with 5 parameters and no annotations, it is minimally complete but lacks some behavioral context.

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% with parameter descriptions already including the time format. The description repeats the ISO 8601/UTC constraint but adds no new semantics beyond what the schema provides.

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 clearly states 'Create a new calendar event' with a specific verb and resource, and it distinguishes from the sibling 'search-events'.

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?

The description implies it's for creating events, and the sibling 'search-events' naturally differentiates the use case, but no explicit when-to-use or when-not-to-use guidance is given.

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

search-eventsA

Search for calendar events. Time range must be specified in ISO 8601 format with UTC timezone

ParametersJSON Schema
NameRequiredDescriptionDefault
time_minYesStart time in ISO 8601 format (e.g., '2024-12-04T00:00:00Z')
time_maxYesEnd time in ISO 8601 format (e.g., '2024-12-04T23:59:59Z')
queryNoOptional search term

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must disclose all important behavior. It states that the tool searches events and requires a time range. It does not mention whether it is read-only (implied by 'search'), any authentication needs, or what the return format is. This is minimal but not misleading.

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?

The description consists of two short sentences that are front-loaded with the main action. Every word is informative, and there is no redundancy or filler. It is appropriately concise for a simple tool.

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 the tool's simplicity (no output schema, only 3 parameters), the description is fairly complete. However, it does not explain what the search returns (e.g., event details). For a search tool, that information would be helpful. Still, it is adequate for basic use.

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 description coverage is 100%, so the schema already documents each parameter (time_min, time_max, query). The description simply reinforces the ISO 8601 requirement already in the schema. It adds no new semantic information beyond what the schema provides, achieving the baseline.

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 clearly states the tool searches for calendar events. The sibling tool 'create-event' suggests a contrasting action, but the description does not explicitly differentiate. Still, the purpose is clear with a specific verb and resource.

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 specifies that a time range must be in ISO 8601 format with UTC timezone, which provides a usage constraint. However, it gives no guidance on when to use this tool versus alternatives or when not to use it. The sibling 'create-event' implies a contrast, but the description lacks explicit context.

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

TDQS

A3.6/5.0
Disambiguation5/5

The tools 'create-event' and 'search-events' have clearly distinct purposes: one creates new events, the other searches existing events. There is no ambiguity between them.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern: 'create-event' and 'search-events'. The naming style is uniform and predictable.

Tool Count2/5

With only two tools for a calendar server, the surface is too thin. Typical calendar services require multiple CRUD operations (e.g., update, delete, list) beyond just create and search.

Completeness2/5

The tool set lacks fundamental operations like updating, deleting, or retrieving a single event by ID. Users cannot manage events beyond creating and searching, which is a significant gap for a calendar service.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

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/avijeett007/kno2gether-mcp-servers'

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