testCal
Allows interaction with Google Calendar to get and set meeting appointments.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@testCalschedule a meeting with John tomorrow at 3pm"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
Sync dependencies and update lockfile:
uv syncBuild package distributions:
uv buildThis will create source and wheel distributions in the dist/ directory.
Publish to PyPI:
uv publishNote: You'll need to set PyPI credentials via environment variables or command flags:
Token:
--tokenorUV_PUBLISH_TOKENOr username/password:
--username/UV_PUBLISH_USERNAMEand--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 testcalUpon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
Community and Support
Join our community: Kno2gether Community
Full Course (50% OFF): End-to-End SaaS Launch Course
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 toolscreate-eventA
Create a new calendar event. Times must be in ISO 8601 format with UTC timezone (e.g., '2024-12-04T10:00:00Z')
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Title of the event | |
| description | No | Event description | |
| start_time | Yes | Start time in ISO 8601 format with UTC timezone (e.g., '2024-12-04T10:00:00Z') | |
| end_time | Yes | End time in ISO 8601 format with UTC timezone (e.g., '2024-12-04T11:00:00Z') | |
| attendees | No | List of attendee email addresses |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| time_min | Yes | Start time in ISO 8601 format (e.g., '2024-12-04T00:00:00Z') | |
| time_max | Yes | End time in ISO 8601 format (e.g., '2024-12-04T23:59:59Z') | |
| query | No | Optional search term |
TDQS
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.
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.
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.
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.
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.
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
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.
Both tools follow a consistent verb_noun pattern: 'create-event' and 'search-events'. The naming style is uniform and predictable.
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.
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
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
Schedule and manage Google Calendar events directly from your workspace. Check availability, view…
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Read appointments, types, calendars and availability; create, cancel or reschedule bookings.
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables managing Google Calendar events including creating, listing, updating, and deleting events through natural language.17MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Calendar events, check availability, and handle scheduling tasks through natural language.10MIT
- AlicenseNot gradedqualityDmaintenanceEnables calendar management through Google Calendar API with OAuth2 authentication, multi-account support, and features like event creation, availability checking, and attendee management.MIT
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Google Calendar via MCP, allowing users to list, get, search, and create events as well as list accessible calendars.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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