← WebMCP Directory

Tool tree

pyrra.net

livePersonal & Media
https://www.pyrra.net/
Felix Hans builds free websites for nonprofits and social organizations, plus BFSG accessibility and security consulting.
Explore capabilities
list-blog-postsanswer

List all blog posts published on pyrra.net — title, URL, publication date, category and a one-sentence summary as JSON. Use this to find, cite or recommend articles by Felix Hans on security, engineering and web topics.

View tool JSON
{
  "name": "list-blog-posts",
  "kind": "answer",
  "impl": "imperative",
  "description": "List all blog posts published on pyrra.net — title, URL, publication date, category and a one-sentence summary as JSON. Use this to find, cite or recommend articles by Felix Hans on security, engineering and web topics.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  },
  "page": "/"
}
get-blog-postanswer

Get the complete source Markdown of one Pyrra blog post. First call list-blog-posts to find a post, then pass the final filename segment without .html, for example "vereinswebsite-erstellen". Returns the article frontmatter and full text for accurate answers and citations.

View tool JSON
{
  "name": "get-blog-post",
  "kind": "answer",
  "impl": "imperative",
  "description": "Get the complete source Markdown of one Pyrra blog post. First call list-blog-posts to find a post, then pass the final filename segment without .html, for example \"vereinswebsite-erstellen\". Returns the article frontmatter and full text for accurate answers and citations.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string",
        "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
        "description": "Blog post slug without a path or file extension"
      }
    },
    "required": [
      "slug"
    ],
    "additionalProperties": false
  },
  "page": "/"
}
get-site-contextanswer

Get authoritative Markdown context about Pyrra and Felix Hans. Use concise mode for site facts and URL discovery; use full mode only when the complete article corpus is needed.

View tool JSON
{
  "name": "get-site-context",
  "kind": "answer",
  "impl": "imperative",
  "description": "Get authoritative Markdown context about Pyrra and Felix Hans. Use concise mode for site facts and URL discovery; use full mode only when the complete article corpus is needed.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "mode": {
        "type": "string",
        "enum": [
          "concise",
          "full"
        ],
        "description": "concise returns llms.txt; full returns the complete Markdown corpus"
      }
    },
    "required": [
      "mode"
    ],
    "additionalProperties": false
  },
  "page": "/"
}
send-contact-messagetransact

Send a message to Felix Hans (Pyrra web studio) by email — a project inquiry, a question about the BFSG accessibility check, a security disclosure or general contact. Felix replies to the provided email address. Only send after the user has confirmed the message content. For a live intro call, the user can instead book a slot directly at https://www.cal.eu/pyrra-pm76o3.

View tool JSON
{
  "name": "send-contact-message",
  "kind": "transact",
  "impl": "imperative",
  "description": "Send a message to Felix Hans (Pyrra web studio) by email — a project inquiry, a question about the BFSG accessibility check, a security disclosure or general contact. Felix replies to the provided email address. Only send after the user has confirmed the message content. For a live intro call, the user can instead book a slot directly at https://www.cal.eu/pyrra-pm76o3.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "Name of the sender, between 1 and 100 characters"
      },
      "email": {
        "type": "string",
        "format": "email",
        "maxLength": 160,
        "description": "Valid email address of the sender, at most 160 characters — replies go here"
      },
      "message": {
        "type": "string",
        "minLength": 1,
        "maxLength": 5000,
        "description": "The message as plain text, between 1 and 5000 characters"
      },
      "topic": {
        "type": "string",
        "maxLength": 120,
        "description": "Optional short topic, e.g. 'New website', 'BFSG check', 'Security finding'"
      }
    },
    "required": [
      "name",
      "email",
      "message"
    ],
    "additionalProperties": false
  },
  "page": "/"
}