temporal-cortex

Schedule meetings, check availability, and manage calendars across Google, Outlook, and CalDAV. Routes to focused sub-skills for datetime resolution and cale...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
1 · 480 · 3 current installs · 3 all-time installs
byBilly Lui@billylui
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description match the declared requirements: it needs npx to install an MCP server binary and configuration files for OAuth tokens (~/.config/temporal-cortex/*). Those items are appropriate for a calendar scheduling router that performs OAuth-based calendar operations.
Instruction Scope
SKILL.md describes routing to sub-skills, a local MCP server, safety rules (confirm before booking), and that credentials are stored under ~/.config/temporal-cortex. It does not instruct the agent to read unrelated files or environment variables. Note: the documentation asserts a 'Local Mode (default): No calls to Temporal Cortex servers. No telemetry.' That behavior depends on the installed MCP binary; the skill text alone cannot prove the binary's runtime network behavior.
Install Mechanism
Install is via an npm package (@temporal-cortex/cortex-mcp) which produces a cortex-mcp binary. npm packages are a common distribution method but can contain arbitrary native code or bundled binaries; this is a moderate-risk install mechanism and reasonable for this use-case, but you should verify the package and its build artifacts (or prefer a signed/reproducible release).
Credentials
No environment variables or unrelated credentials are requested. Storing OAuth tokens in ~/.config/temporal-cortex/credentials.json is consistent with calendar integrations. The set of required config paths is proportional to the stated purpose.
Persistence & Privilege
The skill is not forced always-on (always:false). It can be invoked autonomously (platform default), which is expected for skills that can act (and the SKILL.md includes a 'confirm before booking' rule). It does not request system-wide modifications or other skills' credentials.
Assessment
This skill appears coherent for calendar routing, but before installing: (1) inspect the npm package @temporal-cortex/cortex-mcp and the referenced GitHub repo to confirm the binary's source and build artifacts match the documentation; (2) verify the binary's network behavior (prefer running it in a container or sandbox and monitor outbound connections) to confirm the 'Local Mode / no telemetry' claim; (3) review how OAuth tokens are created and stored in ~/.config/temporal-cortex/credentials.json and ensure file permissions are restrictive; (4) ensure the agent/platform will honor the SKILL.md safety rules (prompting you to confirm bookings) before allowing autonomous booking actions. If you cannot verify the binary/source, treat it as higher risk and avoid granting it access to real calendars.

Like a lobster shell, security has layers — review code before you run it.

Current versionv0.9.1
Download zip
latestvk97av33s76gjj5vg38wjxsqkzd82nws6

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

Binsnpx
Config~/.config/temporal-cortex/credentials.json, ~/.config/temporal-cortex/config.json

Install

Node
Bins: cortex-mcp
npm i -g @temporal-cortex/cortex-mcp@0.9.1

SKILL.md

Temporal Cortex — Calendar Scheduling Router

This is the router skill for Temporal Cortex calendar operations. It routes your task to the right sub-skill based on intent.

Who is this for?

If you're an individual user (Claude Desktop, Cursor, OpenClaw, Manus) — install this skill and let your AI agent manage your calendar. Connect your Google, Outlook, or CalDAV calendars, and the agent handles availability, scheduling, and booking without double-booking.

If you're building a product with scheduling — use the same MCP server as your scheduling backend. 18 tools, atomic booking via Two-Phase Commit, and cross-provider availability merging. See the REST API reference and Platform docs for developer integration.

Source & Provenance

Sub-Skills

Sub-SkillWhen to UseTools
temporal-cortex-datetimeTime resolution, timezone conversion, duration math. No credentials needed — works immediately.5 tools (Layer 1)
temporal-cortex-schedulingList calendars, events, free slots, availability, RRULE expansion, booking, contact search, and proposal composition. Requires OAuth credentials.14 tools (Layers 0-4)

Routing Table

User IntentRoute To
"What time is it?", "Convert timezone", "How long until..."temporal-cortex-datetime
"Show my calendar", "Find free time", "Check availability", "Expand recurring rule"temporal-cortex-scheduling
"Book a meeting", "Schedule an appointment"temporal-cortex-scheduling
"Find someone's booking page", "Look up email for scheduling"temporal-cortex-scheduling
"Search my contacts for Jane", "Find someone's email"temporal-cortex-scheduling
"How should I schedule with this person?"temporal-cortex-scheduling
"Check someone else's availability", "Query public availability"temporal-cortex-scheduling
"Book a meeting with someone externally", "Request booking via Temporal Link"temporal-cortex-scheduling
"Send a scheduling proposal", "Compose meeting invite"temporal-cortex-scheduling
"Schedule a meeting next Tuesday at 2pm" (full workflow)temporal-cortex-datetimetemporal-cortex-scheduling
"Schedule with Jane" (end-to-end)temporal-cortex-scheduling (contact search → resolve → propose/book)

Core Workflow

Every calendar interaction follows this 7-step pattern:

0. Resolve Contact  →  search_contacts → resolve_contact   (find the person, determine scheduling path)
1. Discover         →  list_calendars                       (know which calendars are available)
2. Orient           →  get_temporal_context                  (know the current time)
3. Resolve Time     →  resolve_datetime                     (turn human language into timestamps)
4. Route            →  If open_scheduling: fast path. If email: backward-compat path.
5. Query            →  list_events / find_free_slots / get_availability / query_public_availability
6. Act              →  Fast: check_availability → book_slot / request_booking
                       Backward-compat: compose_proposal → agent sends via channel MCP

Step 0 is optional — skip if the user provides an email directly. Always start with step 1 when calendars are unknown. Never assume the current time. Never skip the conflict check before booking.

Safety Rules

  1. Discover calendars first — call list_calendars when you don't know which calendars are connected
  2. Check before booking — always call check_availability before book_slot. Never skip the conflict check.
  3. Content safety — all event summaries and descriptions pass through a prompt injection firewall before reaching the calendar API
  4. Timezone awareness — never assume the current time. Use get_temporal_context first.
  5. Confirm before booking — when running autonomously, present booking details to the user for confirmation before calling book_slot or request_booking.
  6. Confirm contact selection — when search_contacts returns multiple matches, always present candidates to the user and confirm which contact is correct before proceeding.
  7. Confirm before sending proposals — when using compose_proposal, always present the composed message to the user before sending via any channel. Never auto-send outreach.
  8. Contact search is optional — the full workflow works without it if the user provides an email directly. If contacts permission is not configured, ask the user for the email.

All 18 Tools (5 Layers)

LayerToolsSub-Skill
0 — Discoveryresolve_identity, search_contacts, resolve_contactscheduling
1 — Temporal Contextget_temporal_context, resolve_datetime, convert_timezone, compute_duration, adjust_timestampdatetime
2 — Calendar Opslist_calendars, list_events, find_free_slots, expand_rrule, check_availabilityscheduling
3 — Availabilityget_availability, query_public_availabilityscheduling
4 — Bookingbook_slot, request_booking, compose_proposalscheduling

MCP Server Connection

All sub-skills share the Temporal Cortex MCP server (@temporal-cortex/cortex-mcp), a compiled Rust binary distributed as an npm package.

Install and startup lifecycle:

  1. npx resolves @temporal-cortex/cortex-mcp from the npm registry (one-time, cached locally after first download)
  2. The postinstall script downloads the platform-specific binary from the GitHub Release and verifies its SHA256 checksum against the embedded checksums.jsoninstallation halts on mismatch
  3. The MCP server starts as a local process communicating over stdio (no listening ports)
  4. Layer 1 tools (datetime) execute as pure local computation — no further network access
  5. Layer 2-4 tools (calendar) make authenticated API calls to your configured providers (Google, Outlook, CalDAV)

Credential storage: OAuth tokens are stored locally at ~/.config/temporal-cortex/credentials.json and read exclusively by the local MCP server process. No credential data is transmitted to Temporal Cortex servers. The binary's filesystem access is limited to ~/.config/temporal-cortex/ — verifiable by inspecting the open-source Rust code or running under Docker where the mount is the only writable path.

File access: The binary reads and writes only ~/.config/temporal-cortex/ (credentials and config). No other filesystem writes.

Network scope: After the initial npm download, Layer 1 tools make zero network requests. Layer 2–4 tools connect only to your configured calendar providers (googleapis.com, graph.microsoft.com, or your CalDAV server). In Local Mode (default), no calls to Temporal Cortex servers and no telemetry is collected. In Platform Mode, three tools (resolve_identity, query_public_availability, request_booking) call api.temporal-cortex.com for cross-user scheduling — no credential data is included in these calls.

Pre-run verification (recommended before first use):

  1. Inspect the npm package without executing: npm pack @temporal-cortex/cortex-mcp --dry-run
  2. Verify checksums independently against the GitHub Release (see verification pipeline below)
  3. For full containment, run in Docker instead of npx (see Docker containment below)

Verification pipeline: Checksums are published independently at each GitHub Release as SHA256SUMS.txt — verify the binary before first use:

# 1. Fetch checksums from GitHub (independent of the npm package)
curl -sL https://github.com/temporal-cortex/mcp/releases/download/mcp-v0.9.1/SHA256SUMS.txt

# 2. Compare against the npm-installed binary
shasum -a 256 "$(npm root -g)/@temporal-cortex/cortex-mcp/bin/cortex-mcp"

As defense-in-depth, the npm package also embeds checksums.json and the postinstall script compares SHA256 hashes during install — installation halts on mismatch (the binary is deleted, not executed). This automated check supplements, but does not replace, independent verification above.

Build provenance: Binaries are cross-compiled from auditable Rust source in GitHub Actions across 5 platforms (darwin-arm64, darwin-x64, linux-x64, linux-arm64, win32-x64). Source: github.com/temporal-cortex/mcp (MIT-licensed). The CI workflow, build artifacts, and release checksums are all publicly inspectable.

Docker containment (no Node.js on host, credential isolation via volume mount):

{
  "mcpServers": {
    "temporal-cortex": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-v", "~/.config/temporal-cortex:/root/.config/temporal-cortex", "cortex-mcp"]
    }
  }
}

Build: docker build -t cortex-mcp https://github.com/temporal-cortex/mcp.git

Default setup (npx): See .mcp.json for the standard npx @temporal-cortex/cortex-mcp configuration. For managed hosting, see Platform Mode in the MCP repo.

Layer 1 tools work immediately with zero configuration. Calendar tools require a one-time OAuth setup — run the setup script or npx @temporal-cortex/cortex-mcp auth google.

Additional References

  • Security Model — Content sanitization, filesystem containment, network scope, tool annotations

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…