MCP.Market

Chronary MCP server

online · 100% uptime
by chronary.ai·ai.chronary/mcp·v1.5.2

Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.

A89/100grade A
What users say
No reviews yet
Be the first
Safety scan
A89/100

full report

Adoption
Growing

0 stars56 downloads/wk

Reviews

Write one

Nobody has reviewed Chronary yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Chronary tools (54, 23 write)

write = sends, deletes, buys or posts
  • accept_termsFree

    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 agents stuck without a console session. Pass the current tos_version (read it from GET /v1/auth/terms/current). Requires an org-level API key (chr_sk_*); agent-scoped keys cannot accept org-wide terms.

  • cancel_connection_linkwrite actionFree

    Cancel a pending human-calendar setup request. This invalidates the setup URL and does not disconnect an already completed Google or Microsoft connection.

  • cancel_eventwrite actionFree

    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. For a recurring series, pass `occurrence_start` to cancel just that one occurrence (the series continues); omit it to cancel the whole series. `calendar_id` is optional — if omitted the calendar is looked up from the event. Provide `calendar_id` to fail fast on cross-calendar typos.

  • cancel_proposalwrite actionFree

    Cancel an open proposal. Fires a proposal.cancelled webhook with reason="organizer_cancelled". Requires an org-level API key. Pro plan only.

  • clear_availability_ruleswrite actionFree

    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.

  • confirm_eventFree

    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 webhooks fire at the scheduled times.

  • create_agentwrite actionFree

    Register your agent (AI assistant, human participant, or resource) with Chronary so it can own calendars, events, and webhooks.

  • create_booking_pagewrite actionFree

    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.created webhook fires with a booking_page_id field. Set availability_constraints to restrict to weekly working hours; existing calendar events always block slots.

  • create_calendarwrite actionFree

    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", "Personal"). Org-level calendars (no agent_id) can be used as shared resources like meeting rooms.

  • create_connection_linkwrite actionFree

    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 secret URL is returned only on first creation. If reused=true and setup_url is null, retain the original URL or cancel this link and create a replacement.

  • create_eventwrite actionFree

    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 during that time and appears in availability queries. Use status="hold" with hold_expires_at to tentatively reserve a slot that auto-releases on TTL.

  • create_proposalwrite actionFree

    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 participant responds, the system auto-resolves to the highest-scoring slot (or cancels if all decline). Requires an org-level API key. Pro plan only.

  • create_scoped_keywrite actionFree

    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 response — store it immediately, it cannot be retrieved later. Requires an org-level API key.

  • create_webhookwrite actionFree

    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 verify the HMAC-SHA256 signature on delivered payloads. Requires an org-level API key.

  • delete_agentwrite actionFree

    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.

  • delete_booking_pagewrite actionFree

    Delete (deactivate) a booking page. Its hosted URL stops resolving; already-booked events are unaffected.

  • delete_calendarwrite actionFree

    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.

  • delete_ical_subscriptionwrite actionFree

    Delete an external iCal feed subscription. Events previously synced from the feed are no longer refreshed.

  • delete_webhookwrite actionFree

    Permanently delete a webhook subscription. This frees its endpoint slot against the per-plan cap. Requires an org-level API key.

  • find_meeting_timeFree

    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` before using slots. Accepts `agents`/`start`/`end` or their aliases.

  • get_agentFree

    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.

  • get_audit_logFree

    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_*); agent-scoped keys cannot read the org-wide audit log.

  • get_availabilityFree

    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 using slots. Accepts `start`/`end` or the `start_time`/`end_time` aliases.

  • get_availability_rulesFree

    Read the buffer times and working-hours rules configured on a calendar. Returns the rules row, or an error if none are set.

  • get_booking_pageFree

    Fetch a single booking page by ID, including its public booking_url and settings.

  • get_calendarFree

    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.

  • get_calendar_contextFree

    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 (idle/working/waiting/error). Use this to answer "what is this agent doing right now?" without issuing multiple list_events queries.

  • get_connection_linkFree

    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.

  • get_eventFree

    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 optional — if omitted the calendar is resolved from the event. Provide `calendar_id` to fail fast on cross-calendar typos.

  • get_ical_subscriptionFree

    Get a single external iCal feed subscription by id, including its sync status, last sync time, and last error.

  • get_proposalFree

    Get a scheduling proposal by id, including its slots and per-participant responses. Requires an org-level API key.

  • get_usageFree

    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 queries). Requires an org-level API key (chr_sk_*); agent-scoped keys cannot read org-wide usage.

  • get_webhookFree

    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.

  • list_agentsFree

    List all agents in your organization

  • list_booking_pagesFree

    List booking pages in the org. Agent-scoped keys see only pages on their own agent's calendars.

  • list_calendarsFree

    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 listing events.

  • list_eventsFree

    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` OR `agent_id`. Narrow with `start_after`/`start_before` (time window), `status`, and `source`.

  • list_ical_subscriptionsFree

    List an agent's external iCal feed subscriptions (e.g. linked Google Calendar / Outlook feeds), including their sync status and last sync time.

  • list_proposalsFree

    List scheduling proposals for the org. Filter by status (pending|confirmed|expired|cancelled) or organizer_agent_id. Requires an org-level API key.

  • list_scoped_keysFree

    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.

  • list_webhook_deliveriesFree

    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.

  • list_webhooksFree

    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.

  • release_eventFree

    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.

  • resolve_proposalFree

    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 was "decline", the proposal is cancelled instead. Use when you want to close out a proposal without waiting for every participant. Requires an org-level API key. Pro plan only.

  • respond_to_proposalwrite actionFree

    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. When all participants have responded the proposal auto-resolves — no separate resolve call needed in the normal flow. Requires an org-level API key. Pro plan only.

  • revoke_scoped_keyFree

    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.

  • set_availability_rulesFree

    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 automatically applies them (busy-block expansion for buffers, masking outside working hours). Upsert: overwrites any existing rules.

  • subscribe_icalFree

    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 — create the calendar with that agent_id first (org-level calendars without an agent_id cannot host external iCal subscriptions; create a dedicated per-agent calendar for sync targets).

  • sync_ical_subscriptionFree

    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.

  • update_agentwrite actionFree

    Update an agent's name, description, metadata, or status (active/paused). Requires an org-level API key — agent-scoped keys cannot mutate agents.

  • update_calendarwrite actionFree

    Update a calendar's name, timezone, agent status, default reminders, or metadata. Agent-scoped keys may only update calendars owned by their agent.

  • update_eventwrite actionFree

    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 only the fields you want to change. Holds cannot be edited via this tool (use confirm_event / release_event). External iCal events are read-only. `calendar_id` is optional — if omitted it is resolved from the event.

  • update_ical_subscriptionwrite actionFree

    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.

  • update_webhookwrite actionFree

    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.

Public scan report

scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it

no findings
  • Code scan4 source files scanned25/25
  • Live reliabilityremote reachable in 1292ms20/20
  • Tool poisoning54 tool descriptions checked15/15
  • Auth qualityAPI key sent as a header8/15
  • Maintenancelast push 73 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; website matches verified namespace9/10
Overall 89/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Chronary compares

Against every graded Productivity MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
89/100
higher than 80% of 1,299 Productivity servers
Tools
54
the typical Productivity server has 7
Tools that change things
43%
typical: 0%. Fewer write tools means less an agent can break
Uptime
100%
of our recent checks; the typical remote Productivity server answers 100%
Response time
270 ms
faster than 53% of 655 Productivity servers
Downloads a week
56
more than 43% of 427 Productivity servers with a package

What its tools let an agent do: 28 read · 8 create · 9 change · 9 delete

Install Chronary in Claude Code, Cursor or VS Code

claude mcp add --transport http mcp https://api.chronary.ai/mcp
Add to Cursor

What the publisher says

From the Chronary repository's README, as published. We do not edit it. Read it on GitHub

@chronary/mcp

MCP server for Chronary — calendar tools for AI assistants.

Drops 50 calendar tools (manage agents, calendars, and events, request human Google/Microsoft setup, find meeting times, run scheduling proposals, configure availability rules, manage webhooks, iCal subscriptions, scoped keys, audit log, and usage) into any MCP-compatible client: Claude Desktop, Cursor, VS Code Copilot, Claude Code, Windsurf.

One-click install via Smithery: npx -y @smithery/cli mcp add chronary/agent-calendar --client claude (swap --client for cursor, vscode, claude-code, windsurf, …).

Prerequisites

  1. A Chronary account — sign up at chronary.ai.
  2. An API key from the console (starts with chrsk).
  3. Node.js ≥ 18 on the machine where the MCP client runs.

Client configurations

All examples use npx -y @chronary/mcp, which downloads and runs the latest version on demand. No install step required.

Claude Desktop

Edit ~/Library/Application Support/Claude/claudedesktopconfig.json (macOS) or %APPDATA%\Claude\claudedesktopconfig.json (Windows):

macOS / Linux:

{
  "mcpServers": {
    "chronary": {
      "command": "npx",
      "args": ["-y", "@chronary/mcp"],
      "env": {
        "CHRONARY_API_KEY": "chr_sk_..."
      }
    }
  }
}

Windows (uses cmd /c because spawn can't resolve npx.cmd directly):

{
  "mcpServers": {
    "chronary": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@chronary/mcp"],
      "env": {
        "CHRONARY_API_KEY": "chr_sk_..."
      }
    }
  }
}

Restart Claude Desktop after saving.

Cursor

Edit .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (user-level):

macOS / Linux:

{
  "mcpServers": {
    "chronary": {
      "command": "npx",
      "args": ["-y", "@chronary/mcp"],
      "env": { "CHRONARY_API_KEY": "chr_sk_..." }
    }
  }
}

Windows:

{
  "mcpServers": {
    "chronary": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@chronary/mcp"],
      "env": { "CHRONARY_API_KEY": "chr_sk_..." }
    }
  }
}

VS Code Copilot

Edit .vscode/mcp.json (workspace) or run the MCP: Open User Configuration command for a user-level config. VS Code uses a different top-level key (servers) and requires an explicit type:

macOS / Linux:

{
  "servers": {
    "chronary": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@chronary/mcp"],
      "env": { "CHRONARY_API_KEY": "chr_sk_..." }
    }
  }
}

Windows:

{
  "servers": {
    "chronary": {
      "type": "stdio",
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@chronary/mcp"],
      "env": { "CHRONARY_API_KEY": "chr_sk_..." }
    }
  }
}

Claude Code

Edit .mcp.json at the project root, or ~/.claude.json for user-level:

macOS / Linux:

{
  "mcpServers": {
    "chronary": {
      "command": "npx",
      "args": ["-y", "@chronary/mcp"],
      "env": { "CHRONARY_API_KEY": "chr_sk_..." }
    }
  }
}

Windows:

{
  "mcpServers": {
    "chronary": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@chronary/mcp"],
      "env": { "CHRONARY_API_KEY": "chr_sk_..." }
    }
  }
}

Windsurf

Edit ~/.codeium/windsurf/mcpconfig.json (%USERPROFILE%\.codeium\windsurf\mcpconfig.json on Windows):

macOS / Linux:

{
  "mcpServers": {
    "chronary": {
      "command": "npx",
      "args": ["-y", "@chronary/mcp"],
      "env": { "CHRONARY_API_KEY": "chr_sk_..." }
    }
  }
}

Windows:

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Chronary: common questions

Is Chronary MCP server safe?
Yes, by our scan: it is graded A (89/100). Read the Chronary safety report
How do I install Chronary?
It runs remotely at api.chronary.ai. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
Does Chronary need an API key?
Yes. The registry entry asks for CHRONARY_API_KEY, Authorization.
Is Chronary maintained?
The last commit was 113 days ago (2026-07-14). The latest release is v1.5.2.
Is Chronary up?
100% of our last 28 checks got an answer. We check remote servers about four times a day.
What can I use instead of Chronary?
Servers from other publishers that do the same job: Agent-Native Calendar MCP server, Caldav MCP server and Apple Calendar MCP server. Compare all Chronary alternatives.
How does Chronary compare with other Productivity MCP servers?
safety score 89/100 (higher than 80% of 1,299 Productivity servers); tools 54 (the typical Productivity server has 7); tools that change things 43% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Chronary

Same job from other publishers: the closest match first, then the best rated.

All Chronary alternatives →
  • Agent-Native Calendar
    Agent-Native Google Calendar - manage events, sync, and public booking
    A
  • Caldav
    CalDAV calendar operations (list, create, update, delete events) as MCP tools.
    B
  • Apple Calendar
    List, create, update, and delete events in Apple Calendar on macOS.
    A
  • Google Calendar
    MCP server for Google Calendar integration with service account support and domain-wide delegation.
    A
  • Google Drive MCP
    Secure access to Google Drive, Docs, Sheets, Slides, and Calendar through MCP.
    B