← WebMCP Directory

Tool tree

dnnsmnstrr.github.io

Developer ToolsTools verified
Website
Pick a 3D-printable connector part, tweak its parameters, and export an STL — rendered in the browser with OpenSCAD.
Explore capabilities
    list_commandsAnswer

    Lists what can be done in Connector Foundry, a designer for 3D-printable connector parts, right now: the commands its command palette (Cmd/Ctrl+K) offers. They follow the tab in use (Library, Bench, Holes) and what is selected, so list again after a change. Without a query the everyday commands are listed; parts, hole types, camera views and guides are found with a query. A command marked "opens" leads to a list of choices (Grid step, Attach a part…): list those by passing its id in "within". Run a command with run_command.

    View tool JSON
    {
      "name": "list_commands",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists what can be done in Connector Foundry, a designer for 3D-printable connector parts, right now: the commands its command palette (Cmd/Ctrl+K) offers. They follow the tab in use (Library, Bench, Holes) and what is selected, so list again after a change. Without a query the everyday commands are listed; parts, hole types, camera views and guides are found with a query. A command marked \"opens\" leads to a list of choices (Grid step, Attach a part…): list those by passing its id in \"within\". Run a command with run_command.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Words to look for, as typed into the palette: \"download stl\", \"m3\", \"gridfinity bin\"."
          },
          "within": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Ids of the commands whose lists to open, outermost first: [\"bench.attach\"]."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 300,
            "description": "At most this many (100)."
          }
        }
      },
      "page": "/connector-foundry/app/"
    }
    run_commandAction

    Runs one of the commands list_commands lists, as pressing Enter on it in the command palette would — or another of its actions, by title ("Copy link", "Open in Bench"). A command from a list of choices needs the same "within" it was listed with. Changes to a bench or holes can be undone by the user (Undo). The app updates once it has run: get_app_state shows the result.

    View tool JSON
    {
      "name": "run_command",
      "kind": "act",
      "impl": "imperative",
      "description": "Runs one of the commands list_commands lists, as pressing Enter on it in the command palette would — or another of its actions, by title (\"Copy link\", \"Open in Bench\"). A command from a list of choices needs the same \"within\" it was listed with. Changes to a bench or holes can be undone by the user (Undo). The app updates once it has run: get_app_state shows the result.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The command's id, from list_commands."
          },
          "within": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The ids of the lists it is on, as passed to list_commands."
          },
          "action": {
            "type": "string",
            "description": "Which of its actions, by title. The first one if left out."
          }
        },
        "required": [
          "id"
        ]
      },
      "page": "/connector-foundry/app/"
    }
    search_partsAnswer

    Searches the catalogue of parts: connectors and accessories for Gridfinity, openGrid, Multiboard, Skådis and other systems. Each part comes with its parameters and their defaults, the values a parameter can take, and its named variants. Open one with open_part. Without a query, lists them all.

    View tool JSON
    {
      "name": "search_parts",
      "kind": "answer",
      "impl": "imperative",
      "description": "Searches the catalogue of parts: connectors and accessories for Gridfinity, openGrid, Multiboard, Skådis and other systems. Each part comes with its parameters and their defaults, the values a parameter can take, and its named variants. Open one with open_part. Without a query, lists them all.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Words in the part's name, system or id: \"gridfinity bin\", \"opengrid board\"."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "At most this many (50)."
          }
        }
      },
      "page": "/connector-foundry/app/"
    }
    open_partAction

    Opens a catalogue part with the given parameters: in the Library to preview and download it, on the Bench as the base of a new assembly, or in Holes to drill holes into it. Parameters left out keep their defaults (search_parts lists them). Replacing a bench or placed holes asks the user first.

    View tool JSON
    {
      "name": "open_part",
      "kind": "act",
      "impl": "imperative",
      "description": "Opens a catalogue part with the given parameters: in the Library to preview and download it, on the Bench as the base of a new assembly, or in Holes to drill holes into it. Parameters left out keep their defaults (search_parts lists them). Replacing a bench or placed holes asks the user first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "partId": {
            "type": "string",
            "description": "The part's id, from search_parts: \"gridfinity/bin\"."
          },
          "params": {
            "type": "object",
            "description": "Parameter values by name: { \"gx\": 2, \"gy\": 3 }.",
            "additionalProperties": true
          },
          "target": {
            "type": "string",
            "enum": [
              "library",
              "bench",
              "holes"
            ],
            "description": "Which tab to open it in (library)."
          }
        },
        "required": [
          "partId"
        ]
      },
      "page": "/connector-foundry/app/"
    }
    attach_partAction

    Attaches a catalogue part to an open slot on the Bench, as picking it in Attach a part… does: it starts with the parameters it would get there (a grid part sized to the surface, a part turned upright on a side face), and params given here go over those. get_app_state lists the open slots once the bench has rendered. A bench takes at most 3 attached parts. The user can undo it.

    View tool JSON
    {
      "name": "attach_part",
      "kind": "act",
      "impl": "imperative",
      "description": "Attaches a catalogue part to an open slot on the Bench, as picking it in Attach a part… does: it starts with the parameters it would get there (a grid part sized to the surface, a part turned upright on a side face), and params given here go over those. get_app_state lists the open slots once the bench has rendered. A bench takes at most 3 attached parts. The user can undo it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "partId": {
            "type": "string",
            "description": "The part's id, from search_parts: \"basics/plate\"."
          },
          "parentId": {
            "type": "string",
            "description": "The node the slot is on, from get_app_state's openSlots (\"root\" if left out)."
          },
          "slotName": {
            "type": "string",
            "description": "The slot, from get_app_state's openSlots: \"mount_0_0\"."
          },
          "params": {
            "type": "object",
            "description": "Parameter values by name, over the ones it starts with.",
            "additionalProperties": true
          },
          "joint": {
            "type": "string",
            "enum": [
              "fused",
              "bolted",
              "snap",
              "pin",
              "screwed"
            ],
            "description": "How it joins the part below (fused)."
          }
        },
        "required": [
          "partId",
          "slotName"
        ]
      },
      "page": "/connector-foundry/app/"
    }
    get_app_stateAnswer

    Says which tab is showing and what is on each: the Library's part and its parameters, the Bench's assembly as a bench config (the document load_bench takes), and the Holes tab's model and how many holes it has. Imported meshes' STL data is left out. preview is how the showing tab's render went: "rendering" until it lands, then "done", or "error" with the message — check it after a change, since a bad parameter or slot only shows there. On the Bench, openSlots lists where attach_part can put a part.

    View tool JSON
    {
      "name": "get_app_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Says which tab is showing and what is on each: the Library's part and its parameters, the Bench's assembly as a bench config (the document load_bench takes), and the Holes tab's model and how many holes it has. Imported meshes' STL data is left out. preview is how the showing tab's render went: \"rendering\" until it lands, then \"done\", or \"error\" with the message — check it after a change, since a bad parameter or slot only shows there. On the Bench, openSlots lists where attach_part can put a part.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/connector-foundry/app/"
    }
    load_benchAction

    Replaces the Bench's assembly with a bench config and shows the Bench. Read the current one with get_app_state, change it (a part's params, a joint, a rotation), and pass the whole document back. An imported mesh may keep "stl": "(left out)" when it is on the bench now. To attach a part, use attach_part: which slots a part has depends on its rendered size. Joints: fused, bolted, snap, pin, screwed. The user can undo it.

    View tool JSON
    {
      "name": "load_bench",
      "kind": "act",
      "impl": "imperative",
      "description": "Replaces the Bench's assembly with a bench config and shows the Bench. Read the current one with get_app_state, change it (a part's params, a joint, a rotation), and pass the whole document back. An imported mesh may keep \"stl\": \"(left out)\" when it is on the bench now. To attach a part, use attach_part: which slots a part has depends on its rendered size. Joints: fused, bolted, snap, pin, screwed. The user can undo it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "config": {
            "type": "object",
            "description": "A bench config: { \"format\": \"connector-foundry/bench\", \"version\": 1, \"root\", \"nodes\" }.",
            "additionalProperties": true
          }
        },
        "required": [
          "config"
        ]
      },
      "page": "/connector-foundry/app/"
    }