sessionplan
Registry code: 6d573635eb96fded
Use create_session_link for a new Sessionplan. Whenever the user provides an existing Sessionplan URL, URL hash, or v2 snapshot code, call decode_session_link before reading, summarizing, or changing it. To change a plan, modify the complete decoded session and call create_session_link. Snapshot links are immutable: return structuredContent.link exactly as received; never invent, reconstruct, normalize, shorten, decode, or edit the URL.
- endpoint
- https://sessionplan.de/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is sessionplan live?
- Yes — it answered the hub's last check (checked 3h ago). It answered 98% of checks over the last 30 days.
- Is sessionplan free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does sessionplan have?
- 2 tools: create_session_link, decode_session_link.
- Is sessionplan safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 98.4%· all time 98.4%
last good check
of 2 tools
- down → live
- degraded → down· fetch failed
- live → degraded· fetch failed
- down → live
- degraded → live
- used for
- create a timed session plan for a workshop
- decode a session plan link
- takes → gives
- data, text → web pages, data
- tools
- 1 reads1 changes data
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
create_session_link changes data unknown never probed
Use this when the user wants a new Sessionplan for a workshop, training, meeting, event, or other timed session, or a revised link after decoding an existing Sessionplan. Pass a complete session object matching inputSchema; partial updates and patches are not accepted. The returned structuredContent.link is an opaque snapshot URL and must be presented verbatim.
{ "type": "object", "$defs": { "day": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "minLength": 1, "description": "Unique day ID." }, "date": { "type": [ "string", "null" ], "format": "date", "pattern": "^(?!0000)[0-9]{4}-[0-9]{2}-[0-9]{2}$(?![\\s\\S])", "description": "Optional calendar date of this day (YYYY-MM-DD). Omit in days[0]." }, "items": { "type": "array", "items": { "$ref": "#/$defs/item" }, "maxItems": 500, "description": "Ordered top-level blocks, groups or breakouts of this day. Omit in days[0]." }, "title": { "type": "string", "description": "Optional day label, e.g. 'Kick-off'. Defaults to 'Day n' when omitted." }, "startTime": { "type": [ "string", "null" ], "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$(?![\\s\\S])", "description": "Optional local start time of this day (HH:MM). Omit in days[0]." }, "description": { "type": "string", "description": "Optional description or facilitator notes for this day. Omit in days[0]; the first day's description stays in workshop.description." }, "durationLocked": { "type": "boolean", "description": "Whether this day's target duration is locked. Omit in days[0]." }, "targetDuration": { "type": "number", "minimum": 0, "description": "Optional target duration of this day in minutes. Omit in days[0]." } }, "additionalProperties": false }, "item": { "type": "object", "allOf": [ { "if": { "properties": { "type": { "const": "block" } } }, "then": { "not": { "required": [ "children" ] } } }, { "if": { "properties": { "type": { "const": "group" } } }, "then": { "required": [ "children" ], "properties": { "children": { "items": { "properties": { "type": { "enum": [ "block", "breakout" ] } } } } } } }, { "if": { "properties": { "type": { "const": "breakout" } } }, "then": { "required": [ "children" ], "properties": { "children": { "items": { "properties": { "type": { "const": "block" } } } } } } } ], "required": [ "id", "type", "blockTypeId", "title", "duration", "notes", "material" ], "properties": { "id": { "type": "string", "minLength": 1, "description": "Non-empty stable identifier, unique across the complete item tree." }, "type": { "enum": [ "block", "group", "breakout" ], "type": "string", "description": "Item kind: block, sequential group, or parallel breakout." }, "lanes": { "type": "integer", "maximum": 10, "minimum": 1, "description": "Number of breakout lanes, from 1 to 10 as supported by the editor. Defaults to 2 when omitted." }, "notes": { "type": "string", "description": "Facilitator notes; supports *bold*, _italic_ and [label](URL)." }, "title": { "type": "string", "description": "Agenda item title." }, "children": { "type": "array", "items": { "$ref": "#/$defs/item" }, "description": "Groups contain blocks or breakouts; breakouts contain blocks. Blocks cannot have children." }, "duration": { "type": "number", "minimum": 0, "description": "Explicit section duration in minutes. Groups normally use the sum of children; breakouts use the longest lane. The encoder does not recalculate durations." }, "material": { "type": "string", "description": "Materials, links or resources." }, "parallel": { "type": "boolean", "description": "Whether a breakout runs in parallel. Use true for breakouts." }, "laneIndex": { "type": "integer", "minimum": 0, "description": "Zero-based lane index within the parent breakout; defaults to 0. Must be less than the parent lane count." }, "personIds": { "type": "array", "items": { "type": "string" }, "description": "IDs of declared persons assigned to this item." }, "blockTypeId": { "type": [ "string", "null" ], "description": "ID of a declared block type, or null." }, "lanePersons": { "type": "object", "description": "Map of zero-based lane indices to arrays of declared person IDs. Keep this as a JSON object, including when empty.", "propertyNames": { "pattern": "^(0|[1-9][0-9]*)$(?![\\s\\S])" }, "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "durationLocked": { "type": "boolean", "description": "Preserve the explicit container duration when the editor recalculates the plan." }, "fixedStartTime": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$(?![\\s\\S])", "description": "Optional local fixed start time (HH:MM, 00:00–23:59)." }, "sameInAllBreakouts": { "type": "boolean", "description": "Show lane-zero content in every lane; child laneIndex must then be zero or omitted." } }, "additionalProperties": false }, "person": { "type": "object", "required": [ "id", "name", "color" ], "properties": { "id": { "type": "string", "minLength": 1, "description": "Non-empty identifier, unique within this collection." }, "name": { "type": "string", "description": "Display name." }, "color": { "type": "string", "description": "CSS color, commonly a hexadecimal color such as #2C8DFE." } }, "additionalProperties": false }, "workshop": { "type": "object", "required": [ "title", "description" ], "properties": { "date": { "type": [ "string", "null" ], "format": "date", "pattern": "^(?!0000)[0-9]{4}-[0-9]{2}-[0-9]{2}$(?![\\s\\S])", "description": "Optional calendar date (YYYY-MM-DD). Use null when no date is planned." }, "title": { "type": "string", "description": "Session title." }, "startTime": { "type": [ "string", "null" ], "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$(?![\\s\\S])", "description": "Optional local start time (HH:MM, 00:00–23:59). Use null when no start time is planned." }, "description": { "type": "string", "description": "Session description or facilitator notes." }, "lastModified": { "type": "string", "format": "date-time", "pattern": "^(?!0000)[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt]([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?([Zz]|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$(?![\\s\\S])", "description": "Optional timestamp with T separator, seconds 00–59 and a time zone (Z or ±HH:MM), e.g. 2026-09-15T09:00:00.000Z." }, "durationLocked": { "type": "boolean", "description": "Whether the target duration is locked." }, "targetDuration": { "type": "number", "minimum": 0, "description": "Optional target duration in minutes, greater than or equal to zero." } }, "additionalProperties": false }, "blockType": { "type": "object", "required": [ "id", "name", "color" ], "properties": { "id": { "type": "string", "minLength": 1, "description": "Non-empty identifier, unique within this collection." }, "name": { "type": "string", "description": "Display name." }, "color": { "type": "string", "description": "CSS color, commonly a hexadecimal color such as #2C8DFE." } }, "additionalProperties": false } }, "required": [ "session" ], "properties": { "session": { "type": "object", "title": "Sessionplan document", "required": [ "version", "workshop", "blockTypes", "persons", "items" ], "properties": { "days": { "type": "array", "items": { "$ref": "#/$defs/day" }, "maxItems": 14, "description": "Optional, only for plans spanning several days. Omit it for single-day plans. days[0] describes the first day and contains only id and optional title; the first day's items, description, date, startTime and target stay in 'items' and 'workshop'. Every further entry is a complete day with its own items. Item IDs must be unique across all days, and all days together may contain at most 500 items." }, "items": { "type": "array", "items": { "$ref": "#/$defs/item" }, "maxItems": 500, "description": "Ordered top-level blocks, groups or breakouts. The complete tree may contain at most 500 items." }, "persons": { "type": "array", "items": { "$ref": "#/$defs/person" }, "description": "Declared facilitators or participants referenced by personIds and lanePersons." }, "version": { "type": "string", "description": "Document format version, currently 1.0; distinct from the v2 link codec and MCP protocol version." }, "workshop": { "$ref": "#/$defs/workshop", "description": "Workshop metadata." }, "blockTypes": { "type": "array", "items": { "$ref": "#/$defs/blockType" }, "description": "Declared block categories referenced by blockTypeId." } }, "description": "Canonical format for newly generated Sessionplan documents. Include all required fields and only documented properties. Use declared category/person IDs and the supported item hierarchy.", "additionalProperties": false } }, "additionalProperties": false }arguments 397 linesdecode_session_link reads unknown 13h ago
Use this whenever the user provides a Sessionplan URL, URL hash, or v2 snapshot code and wants it read, summarized, reviewed, validated, or changed. The validated structuredContent.session is the source of truth. For changes, modify the complete decoded session and pass it to create_session_link; the existing snapshot is not modified in place.
{ "type": "object", "required": [ "link" ], "properties": { "link": { "type": "string", "minLength": 1, "description": "Unmodified Sessionplan URL, URL hash, or v2 snapshot code supplied by the user." } }, "additionalProperties": false }arguments 14 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id6d573635eb96fded.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/6d573635eb96fded/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/6d573635eb96fded?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.