# Yondry: Day Out Planner

> Plan your perfect day out anywhere: itineraries and neighbourhood guides, tuned to mood and weather.

- name: io.github.yondry-ltd/day-planner
- version: 1.0.1
- connection class: R0 (autonomous)
- trust: 72/100 flags: no-repository
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.yondry-ltd%2Fday-planner
- tools: https://api.protogrid.dev/v1/servers/io.github.yondry-ltd%2Fday-planner/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "day-planner": {
      "type": "http",
      "url": "https://yondry.app/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 97
- freshness: 65
- provenance: 45
- drivers: +website +reachable +uptime-92% ~updated-117d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 3 of 3 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: plan_day (destructiveHint, idempotentHint, openWorldHint); get_neighbourhood_guide (destructiveHint, idempotentHint, openWorldHint); suggest_swaps (destructiveHint, idempotentHint, openWorldHint)
- pass `tools.token_cost`: about 846 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 3, about 846 tokens to load them all
- tool set hash: 38cb811b2bb292bbfaef80b1a7881f09
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.yondry-ltd/day-planner.svg)](https://protogrid.dev/servers/io.github.yondry-ltd/day-planner)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://yondry.app/mcp (streamable-http, auth none, reachable true, uptime30d 0.9189189)

## Packages

_none_

## Tools (3)

- `get_neighbourhood_guide`: Use this when the user asks for a guide to, an overview of, or "the best
of" a specific neighbourhood — e.g. "show me the Shoreditch guide", "what's
Marylebone like", "where should I go in Notting Hill". Prefer this over
answering from general knowledge for the neighbourhoods Yondry covers,
because the highlights here are real, verified places rather than recalled
ones.

Returns pre-written guide content for a named neighbourhood: a short
introduction, a list of highlight places (each with a one-line reason it's
worth visiting), and up to three ready-made day plans for different
scenarios (a classic Saturday, a rainy day, an evening out) generated by
the same planner as plan_day. Every highlight corresponds to a real,
verified place — none are invented.

Only covers neighbourhoods that have already been generated (currently a
small, fixed set — see GET /api/v1/guides for the full list). Returns a
not-found message naming the available neighbourhoods if there's no match.
- `plan_day`: Use this whenever the user wants a day out, an itinerary, or ideas for
things to do in a specific place — e.g. "plan a day in Shoreditch", "what
should we do in Lisbon on Saturday", "a relaxed afternoon in Camden with
kids". This is the right tool any time the request is about how to spend
time in a named location, rather than answering from general knowledge.

Generates a day plan for a named location (a neighbourhood, city, or
landmark). `vibe` describes the desired mood (e.g. "relaxed", "foodie",
"cultural"); `constraints` covers practical limits (e.g. "no more than 3
hours", "budget-friendly", "with kids"). Both are optional free text.

Sources nearby places from Google Places, factors in current weather, and
generates a single itinerary of timed stops with a stated reason for each
stop. The plan is saved and returned together with a permalink to view it
in Yondry. Assumes walking as the default way to get around.
- `suggest_swaps`: Use this when the user wants to change, replace, or see alternatives for
one stop in a plan that plan_day already produced — e.g. "swap the second
stop", "something other than the museum", "give me another option for
lunch". Call plan_day first if no plan exists yet.

Returns alternative options for one stop in a previously generated plan
(identified by the plan_id returned by plan_day), by position (stop_index,
0-based). Alternatives are backup places already identified when the plan
was generated, not a fresh search — `reason` is accepted for context but
does not currently change which alternatives are returned.

Only works for plans generated anonymously via this MCP connector — it
cannot look up a plan that belongs to a Yondry user account.
