← WebMCP Directory

Tool tree

matteopolak.com

Media & PersonalTools verified
Website
Software Engineer with experience at Microsoft, Shopify, and Solace. CS student at University of Ottawa building fast, scalable systems.
Explore capabilities

    page: Every page

    get_profileAnswer

    Matthew Polak's profile from his portfolio: name, headline, contact links, experience, selected work, education, skills and achievements. Pass `section` to get only one part.

    View tool JSON
    {
      "name": "get_profile",
      "kind": "answer",
      "impl": "imperative",
      "description": "Matthew Polak's profile from his portfolio: name, headline, contact links, experience, selected work, education, skills and achievements. Pass `section` to get only one part.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "section": {
            "type": "string",
            "description": "Return only this part of the profile.",
            "enum": [
              "contact",
              "experience",
              "projects",
              "education",
              "skills",
              "achievements"
            ]
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    list_projectsAnswer

    Lists the projects on the site, newest first, with slug, date, tags and links. Optionally keep only projects with one tag (for example "rust").

    View tool JSON
    {
      "name": "list_projects",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists the projects on the site, newest first, with slug, date, tags and links. Optionally keep only projects with one tag (for example \"rust\").",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tag": {
            "type": "string",
            "description": "Only projects with this tag (case-insensitive).",
            "maxLength": 60
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    get_projectAnswer

    Returns one project by slug (from list_projects): description in markdown, tags, links and how AI was used to build it, if at all.

    View tool JSON
    {
      "name": "get_project",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns one project by slug (from list_projects): description in markdown, tags, links and how AI was used to build it, if at all.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "The project slug, for example \"quasi\".",
            "minLength": 1,
            "maxLength": 80
          }
        },
        "required": [
          "slug"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    search_blogAnswer

    Finds blog posts whose title, description or tags contain every word of the query. An empty result means no match.

    View tool JSON
    {
      "name": "search_blog",
      "kind": "answer",
      "impl": "imperative",
      "description": "Finds blog posts whose title, description or tags contain every word of the query. An empty result means no match.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Words to look for, for example \"axum extract\".",
            "minLength": 1,
            "maxLength": 120
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_postAnswer

    Returns one blog post by slug: title, date, description, URL and the full markdown body.

    View tool JSON
    {
      "name": "get_post",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns one blog post by slug: title, date, description, URL and the full markdown body.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "The post slug, for example \"axum-extract\".",
            "minLength": 1,
            "maxLength": 120
          }
        },
        "required": [
          "slug"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    navigateAction

    Opens one of this site's own pages in the current tab (for example /projects, /blog or /playground/quasi). Other sites are refused.

    View tool JSON
    {
      "name": "navigate",
      "kind": "act",
      "impl": "imperative",
      "description": "Opens one of this site's own pages in the current tab (for example /projects, /blog or /playground/quasi). Other sites are refused.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "A site path such as \"/projects\".",
            "minLength": 1,
            "maxLength": 200
          }
        },
        "required": [
          "path"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    set_themeAction

    Changes the site colour theme and remembers the choice. Pass a theme id or name, or "next" for the next one. Without an argument it only lists the themes.

    View tool JSON
    {
      "name": "set_theme",
      "kind": "act",
      "impl": "imperative",
      "description": "Changes the site colour theme and remembers the choice. Pass a theme id or name, or \"next\" for the next one. Without an argument it only lists the themes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "theme": {
            "type": "string",
            "description": "A theme id or name, or \"next\".",
            "maxLength": 40
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }

    page: Jacket

    run_codeAction

    Loads code into the open in-browser playground (Jai, Quasi or BaerScript, whichever is on this page), runs it and returns its output. The editor contents are replaced. Returns stdout, stderr, the exit status and diagnostics; output is cut at 20 KB and the run is stopped after 30 seconds. Jai restarts its compiler session first, so it takes longer.

    View tool JSON
    {
      "name": "run_code",
      "kind": "act",
      "impl": "imperative",
      "description": "Loads code into the open in-browser playground (Jai, Quasi or BaerScript, whichever is on this page), runs it and returns its output. The editor contents are replaced. Returns stdout, stderr, the exit status and diagnostics; output is cut at 20 KB and the run is stopped after 30 seconds. Jai restarts its compiler session first, so it takes longer.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The complete program to run.",
            "minLength": 1,
            "maxLength": 100000
          },
          "filename": {
            "type": "string",
            "description": "Jai workspace only: the file to write the code to (default main.jai). Ignored by single-file playgrounds.",
            "maxLength": 200
          }
        },
        "required": [
          "code"
        ],
        "additionalProperties": false
      },
      "page": "/playground/jacket"
    }