ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Chronary

โดย Chronaryรุ่น 1.5.2i★ 0iบนเครื่องหรือคลาวด์
ชื่อใน registryai.chronary/mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

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

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: บนเครื่องหรือคลาวด์
  • ช่องทาง (transport): stdio, Streamable HTTP
  • หมวด: เอกสาร ตาราง และงานออฟฟิศ
  • ต้องใส่ค่าเหล่านี้: CHRONARY_API_KEY, Authorization

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย
  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน

หรือรันในเครื่องคุณ

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "chronary": {
      "command": "npx",
      "args": [
        "-y",
        "@chronary/mcp"
      ],
      "env": {
        "CHRONARY_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http chronary https://api.chronary.ai/mcp --header 'Authorization: ใส่ค่าของคุณ'

หรือรันในเครื่องคุณ

claude mcp add chronary --env CHRONARY_API_KEY='ใส่ค่าของคุณ' -- npx -y @chronary/mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "chronary": {
      "url": "https://api.chronary.ai/mcp",
      "headers": {
        "Authorization": "ใส่ค่าของคุณ"
      }
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "chronary": {
      "command": "npx",
      "args": [
        "-y",
        "@chronary/mcp"
      ],
      "env": {
        "CHRONARY_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "chronary": {
      "type": "http",
      "url": "https://api.chronary.ai/mcp",
      "headers": {
        "Authorization": "ใส่ค่าของคุณ"
      }
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "chronary": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@chronary/mcp"
      ],
      "env": {
        "CHRONARY_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • CHRONARY_API_KEY ความลับ จำเป็น env
    Chronary API key - org key (chr_sk_...) or agent-scoped key (chr_ak_...). Request access at https://chronary.ai.
  • Authorization ความลับ จำเป็น HTTP header
    Bearer auth with your Chronary API key, e.g. 'Bearer chr_sk_...'.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ใช้กับโปรแกรมไหนได้

ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569

ต่อผ่านคลาวด์ได้ใน

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

ติดตั้งบนเครื่องได้ใน

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

ดูโปรแกรมทั้งหมดพร้อมข้อดีข้อเสีย →

ทำอะไรได้บ้าง

ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 10 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน

  • create_agent

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

  • list_agents

    List all agents in your organization

  • create_calendar

    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

  • create_event

    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 hol

  • list_events

    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

  • get_event

    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`

  • update_event

    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 confi

  • get_availability

    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.

  • find_meeting_time

    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.

  • cancel_event

    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 occurrenc

  • confirm_event

    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.

  • release_event

    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.

  • subscribe_ical

    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

  • list_ical_subscriptions

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

  • get_ical_subscription

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

  • update_ical_subscription

    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_ical_subscription

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

  • sync_ical_subscription

    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_calendar_context

    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 no

  • create_proposal

    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 ca

  • list_proposals

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

  • get_proposal

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

  • respond_to_proposal

    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 reso

  • resolve_proposal

    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

  • cancel_proposal

    Cancel an open proposal. Fires a proposal.cancelled webhook with reason="organizer_cancelled". Requires an org-level API key. Works on every plan, so an org that dropped to Free can still cancel proposals it made on Pro.

  • set_availability_rules

    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 hou

  • get_availability_rules

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

  • clear_availability_rules

    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_scoped_key

    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-le

  • list_scoped_keys

    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_scoped_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_webhook

    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 A

  • list_webhooks

    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_webhook

    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_webhook

    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.

  • delete_webhook

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

  • list_webhook_deliveries

    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.

  • get_agent

    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_agent

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

  • delete_agent

    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

    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.

  • get_calendar

    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_calendar

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

  • delete_calendar

    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_booking_page

    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 r

  • list_booking_pages

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

  • get_booking_page

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

  • delete_booking_page

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

  • get_usage

    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 or

  • get_audit_log

    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.

  • accept_terms

    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 fro

  • create_connection_link

    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 n

  • get_connection_link

    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_connection_link

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

  • get_billing

    Get the org's plan, subscription status, renewal or cancellation date, Pro pricing, and any pending upgrade request. Works even when the org is at its usage limit. Requires an org-level API key (chr_sk_*).

  • request_upgrade

    Ask your human to upgrade this Chronary account to Pro. Returns approval_url — give it to your human; only a human can pay. If reused=true a request is already pending — do not call again; poll get_upgrade_request at most once a minute.

  • get_upgrade_request

    Check an upgrade request (pending, completed, declined, canceled, expired). Poll at most once a minute; after completed, wait ~15 seconds before retrying the call that hit the plan limit.

  • cancel_upgrade_request

    Withdraw a pending upgrade request (for example, if you no longer need Pro).

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 11 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันโดเมน chronary.ai แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด 25 วันที่ผ่านมา

  • ✓ ผ่าน

    มีสัญญาอนุญาต (license)

    ใช้ Apache-2.0

  • ✓ ผ่าน

    endpoint ตอบ

    ตอบกลับใน 548 ms (HTTP 200)

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ไม่ต้องล็อกอิน

  • ✓ ผ่าน

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    อ่านคำอธิบายเครื่องมือ 58 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI

เทียบกับตัวอื่นในหมวด เอกสาร ตาราง และงานออฟฟิศi

  • ดาวมากกว่า 0% ของอีก 3726 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 17% ของอีก 3726 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 3726 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Chronary ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 5 จาก 5 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: CHRONARY_API_KEY, Authorization

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด 25 วันที่ผ่านมา และส่งรุ่นล่าสุด (1.5.2) เข้า registry 4 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Puter MCP, Agent-Native Slides, Agent-Native Forms

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

โดย HeyPuterใช้กันมาก★ 44.1Kอัปเดต 5 เดือนที่ผ่านมา

รันบนคลาวด์✓ puter.com

Agent-Native Slides

Agent-Native Google Slides - generate and edit React presentations

โดย BuilderIOใช้กันมาก★ 7.7Kอัปเดต 2 เดือนที่ผ่านมา

รันบนคลาวด์

Agent-Native Forms

Agent-Native form builder - create, edit, and manage forms

โดย BuilderIOใช้กันมาก★ 7.7Kอัปเดต 2 เดือนที่ผ่านมา

รันบนคลาวด์

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

@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](https://smithery.ai/server/chronary/agent-calendar): 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 chr_sk_).
  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/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.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/mcp_config.json (%USERPROFILE%\.codeium\windsurf\mcp_config.json on Windows):

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 limit: Cascade enforces a hard cap of 100 total tools across all MCP servers and 20 tool calls per prompt. Chronary exposes 50; consider --tools filtering if you stack multiple servers.

Reducing context with --tools

Exposing all 50 tools uses LLM tokens on every request. For focused workflows, whitelist only what you need:

{

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

Pointing at a non-production API

For self-hosted Chronary instances or development against a local API:

{

"args": ["-y", "@chronary/mcp", "--base-url", "http://localhost:8787"] }

Tools exposed

ToolRead-onlyDestructive
list_calendars, get_calendar✓
create_calendar, update_calendar
delete_calendar✓
list_events, get_event✓
create_event, update_event, confirm_event
cancel_event, release_event✓
list_agents, get_agent✓
create_agent, update_agent
delete_agent✓
get_availability, find_meeting_time✓
get_calendar_context✓
list_proposals, get_proposal✓
create_proposal, respond_to_proposal, resolve_proposal
cancel_proposal✓
get_availability_rules✓
set_availability_rules
clear_availability_rules✓
list_webhooks, get_webhook, list_webhook_deliveries✓
create_webhook, update_webhook
delete_webhook✓
list_ical_subscriptions, get_ical_subscription✓
subscribe_ical, update_ical_subscription, sync_ical_subscription
delete_ical_subscription✓
list_scoped_keys✓
create_scoped_key
revoke_scoped_key✓
get_audit_log✓
accept_terms
get_usage✓

Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are surfaced to MCP clients so hosts can decide whether to require user confirmation.

Troubleshooting

"spawn npx ENOENT" on Windows — use the cmd /c npx ... form shown above.

"CHRONARY_API_KEY is required" — the env block must be nested under the server entry, not at the top of the config file.

Tools aren't showing up — restart the MCP client after editing the config. Most clients only read the config on startup.

Verify the binary runs locally:

CHRONARY_API_KEY=test npx -y @chronary/mcp --help

Links

License

Apache-2.0