# Whenna (remote · whenna.com)

Group scheduling: create a plan link, mark availability, get best times, lock the final time.

- Trust score: 64/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `whenna.com`: 64/100 (this document), [markdown](https://verifymcp.io/servers/com-whenna-whenna/whenna.md), [page](https://verifymcp.io/servers/com-whenna-whenna/whenna)

## Channel facts

- Endpoint: `https://whenna.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 7 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1384 tokens (~197/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 90/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 70% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-whenna-whenna https://whenna.com/mcp
```

### Codex

```toml
[mcp_servers.com-whenna-whenna]
url = "https://whenna.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-whenna-whenna": {
      "type": "remote",
      "url": "https://whenna.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-whenna-whenna --url https://whenna.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-whenna-whenna:
    url: "https://whenna.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-whenna-whenna": {
      "type": "http",
      "url": "https://whenna.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 62, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-29 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 60, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 59)

First indexed and scored.

## MCP tools (7)

### `whenna_create_plan` (~442 tokens)

Create a Whenna plan (a shareable link that finds the time everyone is free). Returns the link to share with humans or other agents, and a creator_key that authorizes locking the final time. Times are wall-clock in the given IANA timezone. For a RECURRING plan ("every Tuesday"), pass weekday names in days (e.g. ["Tuesday"] or ["Tue","Thu"]) — the plan then has no dates and calendar events repeat weekly.

Input parameters:

- `days` (array, required): Candidate days: YYYY-MM-DD dates; OR weekday names (Mon…Sun) for weekly; OR ["daily"]; OR for monthly a single rule like ["15"] (day of month) or ["2nd Wednesday"] / ["last Friday"]. Do not mix forms.
- `end_hour` (integer, required): Latest hour to consider (1-24, exclusive)
- `every_weeks` (integer): Repeat interval for recurring plans (with frequency: 2+weekly = every other week, 2+monthly = every other month, 3+daily = every 3 days)
- `frequency` (string): How a recurring plan repeats. monthly requires days to be one rule: a day-of-month ("15") or an nth weekday ("2nd Wednesday", "last Friday"). Default weekly.
- `language` (string): Optional 2-letter language for emails to notify_email (en es pt fr de it nl ru tr id hi ja ko zh ar). Default en.
- `location` (string): Optional place ("Nonna's, 5th Ave") — shown on the plan and embedded in everyone's calendar event
- `notify_email` (string): Optional creator email: gets an alert on the first answer, digests after, a "everyone's free" moment, and the lock confirmation. Every email has one-click unsubscribe.
- `slot_minutes` (integer): Time-slot precision
- `start_hour` (integer, required): Earliest hour to consider (0-23)
- `timezone` (string): IANA timezone, e.g. America/Chicago
- `title` (string, required): What the plan is, e.g. "Team dinner"

### `whenna_get_plan` (~97 tokens)

Fetch a Whenna plan: title, window, every participant's availability, ranked best times, the locked final time if set, and a negotiation brief — state (awaiting_answers | collecting | everyone_overlaps | locked), who has answered, and suggested_next_step telling an agent the best next move. Poll this between actions when coordinating.

Input parameters:

- `id` (string, required): Plan id (the part after /o/ in the link)

### `whenna_mark_availability` (~159 tokens)

Set a participant's free times on a plan (replaces that participant's previous answer). Express availability as free ranges per day; the server converts them to slots. Use the participant's human name so the group recognizes them. An EMPTY free array records an explicit "can't make any of these times" (the group sees a ✗); pass withdraw:true instead to remove the answer entirely, as if never given. The result reports any ranges that could not be applied and why.

Input parameters:

- `free` (array): Free ranges. Empty array = explicit "can't make any".
- `id` (string, required)
- `name` (string, required): Participant display name
- `withdraw` (boolean): Remove this participant's answer entirely (ignores free).

### `whenna_set_place` (~122 tokens)

Set where the group meets: a place name, or video_call:true to attach Whenna's built-in encrypted video room (the room link then goes on everyone's calendar automatically). Place and video room are mutually exclusive. Requires creator_key.

Input parameters:

- `creator_key` (string, required)
- `id` (string, required)
- `location` (string): Place name, e.g. "Nonna's, 5th Ave". Empty string clears it.
- `video_call` (boolean): true = meet on Whenna's encrypted video room instead of a physical place

### `whenna_plan_next` (~131 tokens)

Group memory: start the group's next plan from a finished one. Clones the setup (title, hours, place/video, discussion), proposes the next occurrences of the locked weekday as candidate days, links old→new (the old link shows everyone "the next one is live"), and emails the people who opted in to hear about this group's next plans. Requires creator_key. Returns the new plan and its own creator_key — keep it to lock the new time. Idempotent: if a successor already exists it is returned.

Input parameters:

- `creator_key` (string, required)
- `id` (string, required)

### `whenna_best_times` (~49 tokens)

Ranked best meeting times for a plan: contiguous blocks where the most participants are free, with who is free in each block.

Input parameters:

- `id` (string, required)
- `top` (integer)

### `whenna_lock_time` (~167 tokens)

Lock the final time on a plan (requires the creator_key returned by whenna_create_plan). Pass use_best:true to lock the top-ranked best time automatically, or give an explicit day/start. Everyone viewing the link sees it as confirmed, with add-to-calendar buttons. Returns calendar links (Google, Outlook, .ics).

Input parameters:

- `creator_key` (string, required)
- `day` (string): YYYY-MM-DD date, or a weekday name for weekly plans (matching the plan's days)
- `id` (string, required)
- `minutes` (integer): Duration in minutes
- `start` (string): Start time HH:MM (24h, plan timezone)
- `use_best` (boolean): Lock the current #1 best time (most participants free); day/start not needed.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-whenna-whenna/whenna#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 63
- 2026-08-01: 63
- 2026-07-31: 62
- 2026-07-30: 62
- 2026-07-29: 61
- 2026-07-28: 60
- 2026-07-27: 60
- 2026-07-26: 59

## Links

- Remote endpoint: https://whenna.com/mcp
- Website: https://whenna.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-whenna-whenna/whenna/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-whenna-whenna/whenna/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-whenna-whenna/whenna
