← WebMCP Directory

Tool tree

sungjoon.works

Media & PersonalTools verified
Website
Sungjoon Lee
Explore capabilities

    page: Every page

    search_portfolioAnswer

    Search all published portfolio content (photography, music performances, dev projects, blog posts) by free-text keyword. Returns matching items with the page path to visit. Blog posts are part of the dev section and appear as 'dev/blog'. This tool has no tag index: when the request names a tag or a tech stack, use the dedicated tool instead — list_blog_posts for blog tags, list_projects for tech stacks, filter_photos for photo tags. Only those know which tags exist and can answer that none match. They are registered on their own section pages, so when one is not in the current tool list, either open that page first or answer from this keyword search.

    View tool JSON
    {
      "name": "search_portfolio",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search all published portfolio content (photography, music performances, dev projects, blog posts) by free-text keyword. Returns matching items with the page path to visit. Blog posts are part of the dev section and appear as 'dev/blog'. This tool has no tag index: when the request names a tag or a tech stack, use the dedicated tool instead — list_blog_posts for blog tags, list_projects for tech stacks, filter_photos for photo tags. Only those know which tags exist and can answer that none match. They are registered on their own section pages, so when one is not in the current tool list, either open that page first or answer from this keyword search.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Keyword to search for. Korean and English both work."
          },
          "section": {
            "type": "string",
            "description": "Restrict results to one section.",
            "enum": [
              "photo",
              "music",
              "dev"
            ]
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of items to return. Defaults to 8, capped at 20."
          }
        },
        "required": [
          "query"
        ]
      },
      "page": "/ko"
    }
    get_profileAnswer

    Get a short profile of Sungjoon Lee (photographer, pianist, frontend developer) and a map of the site: every page of each section plus the contact page. Use this to find which page holds what before navigating.

    View tool JSON
    {
      "name": "get_profile",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get a short profile of Sungjoon Lee (photographer, pianist, frontend developer) and a map of the site: every page of each section plus the contact page. Use this to find which page holds what before navigating.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "section": {
            "type": "string",
            "description": "Focus on one section, or use 'all' for the full profile.",
            "enum": [
              "photo",
              "music",
              "dev",
              "all"
            ]
          }
        }
      },
      "page": "/ko"
    }

    page: Photo

    filter_photosAction

    Filter the photo grid on this page by tag, camera, or focal length range (mm). Filters stack: an argument you omit keeps its current value. Clear a tag or camera with 'all'; reset the focal range by passing focalMin 16 and focalMax 300. Call with no arguments to see the available tags and cameras plus the filters already active, even when nothing matches. Updates the visible grid and returns how many photos match.

    View tool JSON
    {
      "name": "filter_photos",
      "kind": "act",
      "impl": "imperative",
      "description": "Filter the photo grid on this page by tag, camera, or focal length range (mm). Filters stack: an argument you omit keeps its current value. Clear a tag or camera with 'all'; reset the focal range by passing focalMin 16 and focalMax 300. Call with no arguments to see the available tags and cameras plus the filters already active, even when nothing matches. Updates the visible grid and returns how many photos match.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tag": {
            "type": "string",
            "description": "Tag id or label to filter by, or 'all' to clear."
          },
          "camera": {
            "type": "string",
            "description": "Camera name to filter by, or 'all' to clear."
          },
          "focalMin": {
            "type": "number",
            "description": "Minimum focal length in mm (16-300)."
          },
          "focalMax": {
            "type": "number",
            "description": "Maximum focal length in mm (16-300)."
          }
        }
      },
      "page": "/ko/photo"
    }
    get_photo_detailsAnswer

    Get details of one photo (title, place, camera, lens, exposure) without opening it. Omit photoId to describe the photo currently open in the detail modal. Use open_photo instead when the visitor should see the photo.

    View tool JSON
    {
      "name": "get_photo_details",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get details of one photo (title, place, camera, lens, exposure) without opening it. Omit photoId to describe the photo currently open in the detail modal. Use open_photo instead when the visitor should see the photo.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "photoId": {
            "type": "string",
            "description": "Photo id from filter_photos results. Omit for the photo already open."
          }
        }
      },
      "page": "/ko/photo"
    }
    open_photoAction

    Open one photo in the detail modal so the visitor can see it.

    View tool JSON
    {
      "name": "open_photo",
      "kind": "act",
      "impl": "imperative",
      "description": "Open one photo in the detail modal so the visitor can see it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "photoId": {
            "type": "string",
            "description": "Photo id from filter_photos results."
          }
        },
        "required": [
          "photoId"
        ]
      },
      "page": "/ko/photo"
    }

    page: Albums

    list_albumsAnswer

    List published photo albums with the page path of each album's detail page.

    View tool JSON
    {
      "name": "list_albums",
      "kind": "answer",
      "impl": "imperative",
      "description": "List published photo albums with the page path of each album's detail page.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "number",
            "description": "Maximum number of items to return. Defaults to 8, capped at 20."
          }
        }
      },
      "page": "/ko/photo/albums"
    }