Calendar API for AI agents, covering events, availability, scheduling, webhooks, and iCal feeds.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The chronary MCP server exposes 54 tools, focused primarily on communication capabilities. Its published description reads: "Calendar API for AI agents, covering events, availability, scheduling, webhooks, and iCal feeds". It communicates over Streamable HTTP using the 2025-06-18 protocol revision, and does not require authorization to connect. MCPGrade currently rates chronary F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Cross-tool shadowing" and "Cross-tool shadowing". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check chronary's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add chronary to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://api.chronary.ai/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
Register your agent (AI assistant, human participant, or resource) with Chronary so it can own calendars, events, and webhooks.
List all agents in your organization
Create a calendar to hold events and track availability. Calendars are required before creating events — call this first when setting up a new agent. An agent can have multiple calendars (e.g. "Work",
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: create_event
A tool description tries to alter the model’s use of another tool.
r_id comes from create_calendar or list_events. Once created, this event blocksRecommendationDescriptions must describe only their own tool.
tool: update_event
A tool description tries to alter the model’s use of another tool.
this tool (use confirm_event / release_event). External iCal events are readRecommendationDescriptions must describe only their own tool.
tool: subscribe_ical
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: update_ical_subscription
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: sync_ical_subscription
A tool description tries to alter the model’s use of another tool.
of waiting for the next scheduled poll. Returns once the sync has been quRecommendationDescriptions must describe only their own tool.
tool: get_calendar_context
A tool description tries to alter the model’s use of another tool.
ssuing multiple list_events queries.RecommendationDescriptions must describe only their own tool.
tool: create_proposal
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
es an org-level API key. Pro plan only. {"$schema":"http://json-schema.RecommendationRemove side-channel parameters; constrain tool inputs.
tool: create_webhook
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
d). The signing secret is returned ONCE in this response — store it toRecommendationRemove side-channel parameters; constrain tool inputs.
tool: get_webhook
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "webhook_id"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: update_webhook
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "webhook_id"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: delete_webhook
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "webhook_id"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: list_webhook_deliveries
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
es an org-level API key. {"$schema":"http://json-schema.org/draft-07/scRecommendationRemove side-channel parameters; constrain tool inputs.
tool: list_calendars
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
org. Org-level API keys see every calendar (agent-owned and shared); agRecommendationRemove side-channel parameters; constrain tool inputs.
tool: (server instructions)
A tool description tries to alter the model’s use of another tool.
Typical flow: create_agent -> create_calendar -> create_event / get_availaRecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: create_calendar
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "create_calendar"RecommendationScope tools to the minimum needed.
tool: create_event
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "create_event"RecommendationScope tools to the minimum needed.
tool: update_event
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "update_event"RecommendationScope tools to the minimum needed.
tool: cancel_event
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "cancel_event"RecommendationScope tools to the minimum needed.
tool: subscribe_ical
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "subscribe_ical"RecommendationScope tools to the minimum needed.
tool: update_ical_subscription
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "update_ical_subscription"RecommendationScope tools to the minimum needed.
tool: delete_ical_subscription
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "delete_ical_subscription"RecommendationScope tools to the minimum needed.
tool: create_proposal
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "create_proposal"RecommendationScope tools to the minimum needed.
tool: resolve_proposal
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "resolve_proposal"RecommendationScope tools to the minimum needed.
tool: set_availability_rules
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "set_availability_rules"RecommendationScope tools to the minimum needed.
tool: get_availability_rules
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "get_availability_rules"RecommendationScope tools to the minimum needed.
tool: clear_availability_rules
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "clear_availability_rules"RecommendationScope tools to the minimum needed.
tool: create_scoped_key
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "create_scoped_key"RecommendationScope tools to the minimum needed.
tool: create_webhook
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "create_webhook"RecommendationScope tools to the minimum needed.
tool: update_webhook
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "update_webhook"RecommendationScope tools to the minimum needed.
tool: delete_webhook
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "delete_webhook"RecommendationScope tools to the minimum needed.
tool: update_agent
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "update_agent"RecommendationScope tools to the minimum needed.
tool: delete_agent
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "delete_agent"RecommendationScope tools to the minimum needed.
tool: update_calendar
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "update_calendar"RecommendationScope tools to the minimum needed.
tool: delete_calendar
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "delete_calendar"RecommendationScope tools to the minimum needed.
tool: create_booking_page
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "create_booking_page"RecommendationScope tools to the minimum needed.
tool: delete_booking_page
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "delete_booking_page"RecommendationScope tools to the minimum needed.
tool: create_connection_link
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "create_connection_link"RecommendationScope tools to the minimum needed.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Create a booking, appointment, meeting, hold, or any scheduled event on a calendar. The calendar_id comes from create_calendar or list_events. Once created, this event blocks the agent's availability
List events on a calendar or across an agent's calendars, including internally created events and externally synced events from iCal subscriptions (e.g. Google Calendar, Outlook). Provide `calendar_id
Retrieve a single event by ID, including its title, times, status, location, reminders, and metadata. Works for both internally created events and externally synced iCal events. `calendar_id` is optio
Reschedule or edit an event — change its title, description, start/end times, location, status, reminders, or metadata. Use this to move an appointment to a new time or update its details. Provide onl
Check when a single agent is free across its Chronary calendars and any human calendars authorized for that agent. This tool is fail-closed: always inspect `availability_state` and `warnings` before u
Find slots when multiple agents are free across Chronary calendars and any human calendars authorized for each agent. This tool is fail-closed: always inspect `availability_state` and `warnings` befor
Delete or cancel an event from a calendar. Use this to remove, cancel, or delete any scheduled event or appointment. The event is marked cancelled and excluded from future availability calculations. F
Promote a held event to a confirmed booking. The event must currently have status="hold" and its hold_expires_at must not have passed. After confirmation, event.started and event.ended lifecycle webho
Manually release a held event before its hold_expires_at. The event must currently have status="hold". Frees the slot for other agents to book.
Link an external iCal feed (e.g. a human's Google Calendar) to an agent's calendar so external events appear in availability calculations. The target calendar must be owned by the specified agent — cr
List an agent's external iCal feed subscriptions (e.g. linked Google Calendar / Outlook feeds), including their sync status and last sync time.
Get a single external iCal feed subscription by id, including its sync status, last sync time, and last error.
Update an external iCal feed subscription — change its label or its feed URL. Changing the URL forces a full re-sync on the next poll.
Delete an external iCal feed subscription. Events previously synced from the feed are no longer refreshed.
Trigger an immediate sync of an external iCal feed subscription instead of waiting for the next scheduled poll. Returns once the sync has been queued.
Get a calendar's temporal context in a single call: the current event (if one is happening now), the next upcoming event, recent past events, a short upcoming window, and the owning agent's status (id
Create a scheduling proposal — send a set of candidate time slots to one or more participant agents so they can accept, decline, or counter-propose. The organizer agent owns the proposal; once every p
List scheduling proposals for the org. Filter by status (pending|confirmed|expired|cancelled) or organizer_agent_id. Requires an org-level API key.
Get a scheduling proposal by id, including its slots and per-participant responses. Requires an org-level API key.
Submit a response (accept / decline / counter) on behalf of one participant agent to an open proposal. An "accept" requires the slot id from the proposal; a "counter" can suggest alternative slots. Wh
Force-resolve an open proposal using responses collected so far. Picks the highest-scoring slot among those accepted by the most participants and creates a confirmed calendar event. If every response
Cancel an open proposal. Fires a proposal.cancelled webhook with reason="organizer_cancelled". Requires an org-level API key. Pro plan only.
Set or replace the availability rules on a calendar — buffer times before/after events and optional per-day working hours. When these rules are set, every availability query on this calendar automatic
Read the buffer times and working-hours rules configured on a calendar. Returns the rules row, or an error if none are set.
Remove the availability rules from a calendar, reverting to the default (no buffers, no working-hours mask). Returns the deleted row, or an error if none were set.
Create an agent-scoped API key (chr_ak_*) that can only act on behalf of a single agent. Use this to self-provision or rotate per-agent credentials. The plaintext key is returned exactly once in the r
List all live (non-revoked) agent-scoped API keys for this org. Returns key metadata only (id, prefix, agent_id, label, created_at) — never the plaintext secret. Requires an org-level API key.
Revoke an agent-scoped API key by ID. Revocation is permanent (cannot be un-revoked); the key stops authenticating within about a minute. Requires an org-level API key.
Create a webhook subscription so the org receives HTTP POST notifications when events occur (e.g. event.created, proposal.confirmed). The signing secret is returned ONCE in this response — store it to
List the org's webhook subscriptions with their subscribed event types and active state. Signing secrets are never returned. Requires an org-level API key.
Get a single webhook subscription by id, including its subscribed event types and active state. The signing secret is never returned. Requires an org-level API key.
Update a webhook subscription — change its delivery URL, the set of subscribed event types, or pause/resume it via active. At least one field must be supplied. Requires an org-level API key.
Permanently delete a webhook subscription. This frees its endpoint slot against the per-plan cap. Requires an org-level API key.
List delivery attempts for a webhook subscription, with per-status counts (pending/delivered/failed). Use this to debug failing deliveries. Requires an org-level API key.
Fetch a single agent by ID. An agent represents an AI assistant, human, or shared resource (e.g. a meeting room). Agent-scoped API keys may only read their own agent.
Update an agent's name, description, metadata, or status (active/paused). Requires an org-level API key — agent-scoped keys cannot mutate agents.
Decommission an agent. This marks the agent as decommissioned and revokes all of its scoped API keys. Requires an org-level API key — agent-scoped keys cannot delete agents.
List calendars in the org. Org-level API keys see every calendar (agent-owned and shared); agent-scoped keys see only their own agent's calendars. Use this to discover calendar IDs before creating or
Fetch a single calendar by ID, including its name, timezone, agent status, and default reminders. Agent-scoped keys may only read calendars owned by their agent.
Update a calendar's name, timezone, agent status, default reminders, or metadata. Agent-scoped keys may only update calendars owned by their agent.
Delete a calendar (soft delete). Its events are no longer returned and it stops contributing to availability. Agent-scoped keys may only delete calendars owned by their agent.
Create a public booking page (a hosted scheduling link) for a calendar. Returns a booking_url to send to a human; when they pick a slot, a confirmed event is created on the calendar and an event.creat
List booking pages in the org. Agent-scoped keys see only pages on their own agent's calendars.
Fetch a single booking page by ID, including its public booking_url and settings.
Delete (deactivate) a booking page. Its hosted URL stops resolving; already-booked events are unaffected.
Get the calling org's current-period usage and plan limits (agents, calendars, events, API calls, webhooks, availability queries, iCal subscriptions, proposals, scoped keys, holds, cross-calendar quer
List audit-log entries for the calling org — mutating operations and auth-lifecycle events, newest first. Results are clamped to the plan's retention window. Requires an org-level API key (chr_sk_*);
Re-accept the current Chronary terms of service on behalf of the calling org. Use this when responses carry the Chronary-Terms-Upgrade-Required header — a material ToS bump otherwise leaves MCP-only a
Request human setup of Google Calendar or Microsoft Outlook for a Chronary calendar. Give setup_url to a human; the agent never receives OAuth credentials, provider calendar names, or event data. The
Poll a human-calendar setup request. Returns provider-neutral status and resulting connection ID when complete, but never replays the bearer setup URL or exposes human calendar data.
Cancel a pending human-calendar setup request. This invalidates the setup URL and does not disconnect an already completed Google or Microsoft connection.