{
  "data": {
    "tool": {
      "category": "",
      "endpoint": "https://sessionplan.de/mcp/",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sessionplan.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/sessionplan.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/sessionplan.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 2742,
          "counts": {
            "error": 0,
            "note": 0,
            "warn": 3
          },
          "findings": [
            {
              "rule": "TC15",
              "severity": "warn",
              "tool": "create_session_link",
              "message": "inputSchema uses $ref/$defs",
              "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
            },
            {
              "rule": "TC18",
              "severity": "warn",
              "tool": "create_session_link",
              "message": "readOnlyHint is true but the name says \"create\"",
              "fix": "If it changes anything, readOnlyHint must be false."
            },
            {
              "rule": "TC22",
              "severity": "warn",
              "tool": "create_session_link",
              "message": "the definition is about 1,820 tokens",
              "fix": "Trim the description and parameter docs, or split the tool."
            }
          ]
        },
        "checkedAt": "2026-10-04T22:24:25Z",
        "count": 2,
        "schemaTokens": 2742,
        "status": "ok",
        "tools": [
          {
            "name": "create_session_link",
            "title": "Create Sessionplan",
            "description": "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.",
            "inputSchema": {
              "$defs": {
                "blockType": {
                  "additionalProperties": false,
                  "properties": {
                    "color": {
                      "description": "CSS color, commonly a hexadecimal color such as #2C8DFE.",
                      "type": "string"
                    },
                    "id": {
                      "description": "Non-empty identifier, unique within this collection.",
                      "minLength": 1,
                      "type": "string"
                    },
                    "name": {
                      "description": "Display name.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "color"
                  ],
                  "type": "object"
                },
                "item": {
                  "additionalProperties": false,
                  "allOf": [
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "block"
                          }
                        }
                      },
                      "then": {
                        "not": {
                          "required": [
                            "children"
                          ]
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "group"
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "children": {
                            "items": {
                              "properties": {
                                "type": {
                                  "enum": [
                                    "block",
                                    "breakout"
                                  ]
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "children"
                        ]
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "breakout"
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "children": {
                            "items": {
                              "properties": {
                                "type": {
                                  "const": "block"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "children"
                        ]
                      }
                    }
                  ],
                  "properties": {
                    "blockTypeId": {
                      "description": "ID of a declared block type, or null.",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "children": {
                      "description": "Groups contain blocks or breakouts; breakouts contain blocks. Blocks cannot have children.",
                      "items": {
                        "$ref": "#/$defs/item"
                      },
                      "type": "array"
                    },
                    "duration": {
                      "description": "Explicit section duration in minutes. Groups normally use the sum of children; breakouts use the longest lane. The encoder does not recalculate durations.",
                      "minimum": 0,
                      "type": "number"
                    },
                    "durationLocked": {
                      "description": "Preserve the explicit container duration when the editor recalculates the plan.",
                      "type": "boolean"
                    },
                    "fixedStartTime": {
                      "description": "Optional local fixed start time (HH:MM, 00:00–23:59).",
                      "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$(?![\\s\\S])",
                      "type": "string"
                    },
                    "id": {
                      "description": "Non-empty stable identifier, unique across the complete item tree.",
                      "minLength": 1,
                      "type": "string"
                    },
                    "laneIndex": {
                      "description": "Zero-based lane index within the parent breakout; defaults to 0. Must be less than the parent lane count.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "lanePersons": {
                      "additionalProperties": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "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])"
                      },
                      "type": "object"
                    },
                    "lanes": {
                      "description": "Number of breakout lanes, from 1 to 10 as supported by the editor. Defaults to 2 when omitted.",
                      "maximum": 10,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "material": {
                      "description": "Materials, links or resources.",
                      "type": "string"
                    },
                    "notes": {
                      "description": "Facilitator notes; supports *bold*, _italic_ and [label](URL).",
                      "type": "string"
                    },
                    "parallel": {
                      "description": "Whether a breakout runs in parallel. Use true for breakouts.",
                      "type": "boolean"
                    },
                    "personIds": {
                      "description": "IDs of declared persons assigned to this item.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "sameInAllBreakouts": {
                      "description": "Show lane-zero content in every lane; child laneIndex must then be zero or omitted.",
                      "type": "boolean"
                    },
                    "title": {
                      "description": "Agenda item title.",
                      "type": "string"
                    },
                    "type": {
                      "description": "Item kind: block, sequential group, or parallel breakout.",
                      "enum": [
                        "block",
                        "group",
                        "breakout"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "type",
                    "blockTypeId",
                    "title",
                    "duration",
                    "notes",
                    "material"
                  ],
                  "type": "object"
                },
                "person": {
                  "additionalProperties": false,
                  "properties": {
                    "color": {
                      "description": "CSS color, commonly a hexadecimal color such as #2C8DFE.",
                      "type": "string"
                    },
                    "id": {
                      "description": "Non-empty identifier, unique within this collection.",
                      "minLength": 1,
                      "type": "string"
                    },
                    "name": {
                      "description": "Display name.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "color"
                  ],
                  "type": "object"
                },
                "workshop": {
                  "additionalProperties": false,
                  "properties": {
                    "date": {
                      "description": "Optional calendar date (YYYY-MM-DD). Use null when no date is planned.",
                      "format": "date",
                      "pattern": "^(?!0000)[0-9]{4}-[0-9]{2}-[0-9]{2}$(?![\\s\\S])",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "description": {
                      "description": "Session description or facilitator notes.",
                      "type": "string"
                    },
                    "durationLocked": {
                      "description": "Whether the target duration is locked.",
                      "type": "boolean"
                    },
                    "lastModified": {
                      "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.",
                      "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])",
                      "type": "string"
                    },
                    "startTime": {
                      "description": "Optional local start time (HH:MM, 00:00–23:59). Use null when no start time is planned.",
                      "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$(?![\\s\\S])",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "targetDuration": {
                      "description": "Optional target duration in minutes, greater than or equal to zero.",
                      "minimum": 0,
                      "type": "number"
                    },
                    "title": {
                      "description": "Session title.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "title",
                    "description"
                  ],
                  "type": "object"
                }
              },
              "additionalProperties": false,
              "properties": {
                "session": {
                  "additionalProperties": false,
                  "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.",
                  "properties": {
                    "blockTypes": {
                      "description": "Declared block categories referenced by blockTypeId.",
                      "items": {
                        "$ref": "#/$defs/blockType"
                      },
                      "type": "array"
                    },
                    "items": {
                      "description": "Ordered top-level blocks, groups or breakouts. The complete tree may contain at most 500 items.",
                      "items": {
                        "$ref": "#/$defs/item"
                      },
                      "maxItems": 500,
                      "type": "array"
                    },
                    "persons": {
                      "description": "Declared facilitators or participants referenced by personIds and lanePersons.",
                      "items": {
                        "$ref": "#/$defs/person"
                      },
                      "type": "array"
                    },
                    "version": {
                      "description": "Document format version, currently 1.0; distinct from the v2 link codec and MCP protocol version.",
                      "type": "string"
                    },
                    "workshop": {
                      "$ref": "#/$defs/workshop",
                      "description": "Workshop metadata."
                    }
                  },
                  "required": [
                    "version",
                    "workshop",
                    "blockTypes",
                    "persons",
                    "items"
                  ],
                  "title": "Sessionplan document",
                  "type": "object"
                }
              },
              "required": [
                "session"
              ],
              "type": "object"
            },
            "outputSchema": {
              "additionalProperties": true,
              "properties": {
                "link": {
                  "description": "Opaque, directly openable Sessionplan snapshot URL. Present this exact value verbatim; do not reconstruct, normalize, shorten, decode, or modify it.",
                  "type": "string"
                },
                "summary": {
                  "additionalProperties": true,
                  "description": "Optional compact summary of the encoded session.",
                  "properties": {
                    "blockCount": {
                      "description": "Number of block items across the complete tree; containers are excluded.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "title": {
                      "description": "Session title.",
                      "type": "string"
                    },
                    "totalDuration": {
                      "description": "Sum of explicit top-level item durations in minutes; does not include fixed-start gaps or recalculate children.",
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "link"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          },
          {
            "name": "decode_session_link",
            "title": "Open Sessionplan",
            "description": "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.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {
                "link": {
                  "description": "Unmodified Sessionplan URL, URL hash, or v2 snapshot code supplied by the user.",
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "link"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$defs": {
                "blockType": {
                  "additionalProperties": true,
                  "properties": {
                    "color": {
                      "type": "string"
                    },
                    "id": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ],
                  "type": "object"
                },
                "item": {
                  "additionalProperties": true,
                  "allOf": [
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "block"
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "children": {
                            "maxItems": 0
                          }
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "group"
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "children": {
                            "items": {
                              "properties": {
                                "type": {
                                  "enum": [
                                    "block",
                                    "breakout"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "breakout"
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "children": {
                            "items": {
                              "properties": {
                                "type": {
                                  "const": "block"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  ],
                  "properties": {
                    "blockTypeId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "children": {
                      "items": {
                        "$ref": "#/$defs/item"
                      },
                      "type": "array"
                    },
                    "duration": {
                      "minimum": 0,
                      "type": "number"
                    },
                    "durationLocked": {
                      "type": "boolean"
                    },
                    "fixedStartTime": {
                      "pattern": "^(([01][0-9]|2[0-3]):[0-5][0-9])?$(?![\\s\\S])",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "id": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "laneIndex": {
                      "minimum": 0,
                      "type": "integer"
                    },
                    "lanePersons": {
                      "additionalProperties": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "propertyNames": {
                        "pattern": "^(0|[1-9][0-9]*)$(?![\\s\\S])"
                      },
                      "type": "object"
                    },
                    "lanes": {
                      "maximum": 10,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "material": {
                      "type": "string"
                    },
                    "notes": {
                      "type": "string"
                    },
                    "parallel": {
                      "type": "boolean"
                    },
                    "personIds": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "sameInAllBreakouts": {
                      "type": "boolean"
                    },
                    "title": {
                      "type": "string"
                    },
                    "type": {
                      "enum": [
                        "block",
                        "group",
                        "breakout"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "type",
                    "title",
                    "duration"
                  ],
                  "type": "object"
                },
                "person": {
                  "additionalProperties": true,
                  "properties": {
                    "color": {
                      "type": "string"
                    },
                    "id": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ],
                  "type": "object"
                },
                "workshop": {
                  "additionalProperties": true,
                  "properties": {
                    "date": {
                      "if": {
                        "not": {
                          "const": ""
                        }
                      },
                      "then": {
                        "format": "date",
                        "pattern": "^(?!0000)[0-9]{4}-[0-9]{2}-[0-9]{2}$(?![\\s\\S])"
                      },
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "description": {
                      "type": "string"
                    },
                    "durationLocked": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "lastModified": {
                      "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])",
                      "type": "string"
                    },
                    "startTime": {
                      "pattern": "^(([01][0-9]|2[0-3]):[0-5][0-9])?$(?![\\s\\S])",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "targetDuration": {
                      "minimum": 0,
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "title"
                  ],
                  "type": "object"
                }
              },
              "additionalProperties": false,
              "properties": {
                "session": {
                  "additionalProperties": true,
                  "properties": {
                    "blockTypes": {
                      "items": {
                        "$ref": "#/$defs/blockType"
                      },
                      "type": "array"
                    },
                    "items": {
                      "items": {
                        "$ref": "#/$defs/item"
                      },
                      "maxItems": 500,
                      "type": "array"
                    },
                    "persons": {
                      "items": {
                        "$ref": "#/$defs/person"
                      },
                      "type": "array"
                    },
                    "version": {
                      "type": "string"
                    },
                    "workshop": {
                      "$ref": "#/$defs/workshop"
                    }
                  },
                  "required": [
                    "workshop",
                    "items"
                  ],
                  "title": "Sessionplan document",
                  "type": "object"
                }
              },
              "required": [
                "session"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          }
        ]
      },
      "name": "Sessionplan",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": null,
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sessionplan.json",
      "popularity": {
        "githubStars": 5
      },
      "registryName": "de.sessionplan/sessionplan",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://sessionplan.de/mcp/"
        }
      ],
      "repository": "https://github.com/tim-peters/sessionplan",
      "reviewed": false,
      "slug": "sessionplan",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=de.sessionplan/sessionplan",
      "summary": "Create and edit visual agendas for workshops, trainings, meetings, and events.",
      "updatedAt": "2026-08-20T11:49:28Z",
      "url": "https://www.anchorterminal.com/tools/sessionplan",
      "vendor": "sessionplan.de",
      "vendorUrl": "https://sessionplan.de/",
      "version": "1.2.0",
      "websiteUrl": "https://sessionplan.de/",
      "where": "hosted",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/sessionplan",
    "json": "https://www.anchorterminal.com/tools/sessionplan.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/sessionplan.md",
    "slim": "https://www.anchorterminal.com/tools/sessionplan.min.md"
  },
  "markdown": "# Sessionplan\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by sessionplan.de (https://sessionplan.de/)\n- Listed because: It's published in the registry under sessionplan.de, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Create and edit visual agendas for workshops, trainings, meetings, and events.\n\n## Facts\n\n- MCP registry: `de.sessionplan/sessionplan` 1.2.0\n- Endpoint: https://sessionplan.de/mcp/ (streamable HTTP)\n- Source: https://github.com/tim-peters/sessionplan\n- Website: https://sessionplan.de/\n- GitHub stars: 5\n- Registry entry updated: 2026-08-20\n\n## Tools\n\n- Tools it lists (2, about 2,742 tokens of context, `tools/list` without credentials over MCP 2026-07-28, checked 2026-10-04 22:24 UTC):\n  - `create_session_link` (read-only): 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…\n  - `decode_session_link` (read-only): 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…\n- How its tools read to an agent (0 errors, 3 warnings, 0 notes, about 2,742 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC15 create_session_link: inputSchema uses $ref/$defs\n  - warn TC18 create_session_link: readOnlyHint is true but the name says \"create\"\n  - warn TC22 create_session_link: the definition is about 1,820 tokens\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/sessionplan.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "Sessionplan",
        "url": ""
      }
    ],
    "description": "Sessionplan, an MCP server by sessionplan.de, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Create and edit visual agendas for workshops, trainings, meetings, and events.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "Sessionplan",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/sessionplan",
    "published": "",
    "section": "indexed",
    "title": "Sessionplan: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/tools/sessionplan"
  },
  "tokens": {
    "markdown": 650,
    "slim": 580
  },
  "version": 1
}
