{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_zcgugry2z4u8","handle":"polyfork-low-poly-3d-assets","url":"https://wellknown.network/agents/polyfork-low-poly-3d-assets","links":{"self":"https://wellknown.network/agents/polyfork-low-poly-3d-assets/record.json","html":"https://wellknown.network/agents/polyfork-low-poly-3d-assets","markdown":"https://wellknown.network/agents/polyfork-low-poly-3d-assets/record.md","api":"https://wellknown.network/api/v1/agents/polyfork-low-poly-3d-assets","status":"https://wellknown.network/api/v1/agents/polyfork-low-poly-3d-assets/status","claim":"https://wellknown.network/agents/polyfork-low-poly-3d-assets/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/polyfork-low-poly-3d-assets/claim.json","badge":"https://wellknown.network/agents/polyfork-low-poly-3d-assets/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/polyfork-low-poly-3d-assets/history","tools":"https://wellknown.network/api/v1/agents/polyfork-low-poly-3d-assets/tools"},"ard":{"identifier":"urn:air:polyfork.dev:server:polyfork-low-poly-3d-assets","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Polyfork low-poly 3D assets","summary":"Low-poly 3D models and kits for three.js and game engines: search, match, remix, preview.","description":"Low-poly 3D models and kits for three.js and game engines: search, match, remix, preview.","publisher":{"name":"dev.polyfork","url":null},"homepage":"https://polyfork.dev","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://polyfork.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-08-14T12:49:20.689888Z","publishedAt":"2026-08-14T12:49:20.689888Z","registryName":"dev.polyfork/polyfork"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"media.3d","name":"3D & Design","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"}],"categories":["commerce","media"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 6h ago.","lastOkAt":"2026-10-10T19:24:36.869Z","lastProbedAt":"2026-10-10T19:24:36.869Z","statusComputedAt":"2026-10-10T19:27:04.121Z","reliability30d":{"probes":108,"successRate":0.9907,"p50Ms":71,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":108,"ok":107,"authBoundaryOk":0,"serviceOk":107,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T19:24:36.869Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":83,"error":null,"detail":{"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"toolCount":12,"toolsHash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","serverName":"polyfork","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T12:29:40.681Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":75,"error":null,"detail":{"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"toolCount":12,"toolsHash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","serverName":"polyfork","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T06:27:41.613Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":57,"error":null,"detail":{"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"toolCount":12,"toolsHash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","serverName":"polyfork","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T00:28:34.268Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":66,"error":null,"detail":{"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"toolCount":12,"toolsHash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","serverName":"polyfork","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T11:26:05.455Z","kind":"mcp_initialize","ok":false,"httpStatus":530,"latencyMs":20,"error":"http 530","detail":null},{"at":"2026-10-09T04:28:42.032Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":66,"error":null,"detail":{"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"toolCount":12,"toolsHash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","serverName":"polyfork","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T21:22:20.846Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"toolCount":12,"toolsHash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","serverName":"polyfork","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T14:21:33.925Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":119,"error":null,"detail":{"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"toolCount":12,"toolsHash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","serverName":"polyfork","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T07:26:05.897Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":75,"error":null,"detail":{"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"toolCount":12,"toolsHash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","serverName":"polyfork","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T01:22:55.106Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":52,"error":null,"detail":{"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"toolCount":12,"toolsHash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","serverName":"polyfork","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_assets","description":"Search the Polyfork catalogue of low-poly 3D assets for three.js. Use this whenever the user needs a model for a scene, game or site. Filter by triangle budget "},{"name":"get_asset","description":"Full detail for one asset: real-world size in metres, triangle count, palette, animatable parts, renders you can open to SEE it, and the correct download URLs f"},{"name":"find_matching","description":"Given one asset, return assets that BELONG IN A SCENE WITH IT: same kit first, then shared palette, then compatible real-world scale, spread across classes so y"},{"name":"get_variant","description":"Turn a plain-words request (\"oak cask\", \"taller\", \"five sails\") into a ready call. `want` is matched against this asset's KNOB NAMES and OPTION VALUES, not agai"},{"name":"preview_scene","description":"Compose assets into a scene and return a URL the user can OPEN and orbit. Use it instead of handing over a block of three.js the user cannot run. Works with pai"},{"name":"list_kits","description":"Kits are coherent sets built to one palette and one grid. Reach for a kit when the user is building a whole environment rather than looking for one object. Each"},{"name":"get_kit","description":"Every published part of one kit, with the same detail get_asset gives, so you can compose a whole scene from one call. Works on a kit that is still FILLING UP: "},{"name":"get_terrain","description":"AT WHAT HEIGHT DO I PLACE THIS, and where can I build. Every kit ships a procedural TERRAIN program for its own ground, and the ground is no longer flat, so a y"},{"name":"who_am_i","description":"What this connection can currently do: whether a key is attached, which assets and kits it owns, and therefore which downloads will work. Call it before promisi"},{"name":"buy_plan","description":"Buy a Polyfork plan: Pro (monthly or yearly) or a one-payment lifetime seat. This tool NEVER charges anything itself. It returns a Stripe Checkout link and the "},{"name":"get_help","description":"How to use this server: what the metadata means, the rules that are easy to get wrong (real-world metres, one material, never rescale to fake a fit), and worked"},{"name":"report_need","description":"Report a gap. Four kinds, and the last three are about THIS SERVER rather than the catalogue: kind=asset, we do not model what the user asked for (offer this wh"}],"package":null,"toolSurface":{"id":"ts_pu29up37auu7","endpointId":"ep_nxk7rphdw34y","hash":"ed928594d67c9219dc5d4240ff17f90a4093b7f8aa8398374be6e7201a0ea9ee","toolCount":12,"serverName":"polyfork","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-07T00:29:06.111Z","lastSeenAt":"2026-10-10T19:24:36.869Z","observations":13,"toolNames":["search_assets","get_asset","find_matching","get_variant","preview_scene","list_kits","get_kit","get_terrain","who_am_i","buy_plan","get_help","report_need"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_nxk7rphdw34y","url":"https://polyfork.dev/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T19:24:36.873Z","auth":{"observedAt":"2026-10-10T19:24:36.920Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T19:24:36.930Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"polyfork.dev","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-23T23:53:56.000Z","validTo":"2026-12-23T00:53:46.000Z","daysToExpiry":72,"sanCount":2,"fingerprint256":"AA:B9:C7:DC:B7:43:93:79:2D:D3:0B:ED:C9:87:FE:58:1E:A1:FA:84:DA:0A:14:56:E7:12:3B:49:32:BB:33:F9"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"dev.polyfork/polyfork","url":"https://registry.modelcontextprotocol.io/v0/servers/dev.polyfork%2Fpolyfork","firstSeenAt":"2026-09-05T23:20:58.013Z","fetchedAt":"2026-10-09T14:21:11.965Z","normalizedAt":"2026-10-09T14:21:11.965Z"}]},"firstSeenAt":"2026-09-05T23:20:58.013Z","updatedAt":"2026-10-10T19:27:42.074Z"}