{"data":{"name":"io.github.MRRengi/rengi-forge","title":"Rengi Forge","description":"Gamedev tools for AI agents: level design, renders, sprites, GLB optimizer. Pay per call with x402.","version":"0.1.0","websiteUrl":null,"repositoryUrl":null,"remotes":[{"url":"https://rengi.dev/mcp","type":"streamable-http"}],"packages":[],"status":"active","isLatest":true,"publishedAt":"2026-10-20T10:07:30.814Z","updatedAt":"2026-10-20T10:07:30.814Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":"Rengi Forge","source":"official-registry","sourceId":"io.github.MRRengi/rengi-forge","updatedAt":"2026-10-20T10:07:30.814Z","confidence":100,"websiteUrl":null,"description":"Gamedev tools for AI agents: level design, renders, sprites, GLB optimizer. Pay per call with x402.","verification":"official","repositoryUrl":null}],"toolIndex":{"tools":[{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"asset_render_sprites","title":null,"description":"Transparent isometric sprite sheet, 4 or 8 directions in one row (south first, clockwise), with frame JSON. Price: $0.40 USDC via x402, charged only on success. Part of Asset render: Pictures of a 3D model for agents that cannot see: catalog views, a turntable GIF, and isometric sprite sheets for 2.5D games.","inputSchema":{"type":"object","properties":{"glb":{"type":"string","description":"Base64 GLB."},"glbUrl":{"type":"string","format":"uri"},"upAxis":{"type":"string","enum":["auto","y","z"],"default":"auto"},"directions":{"type":"number","enum":[4,8],"default":8},"cellSize":{"type":"integer","minimum":32,"maximum":512,"default":128},"elevationDeg":{"type":"number","minimum":0,"maximum":89,"default":30},"pixelArt":{"type":"boolean","default":false}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"0f5d4e85961e097863582903c61487210ec992a258a7a06a8da554b1178a4990","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"asset_render_turntable","title":null,"description":"Render a GLB model as a looping turntable GIF, one full revolution, plus mesh stats. Price: $0.25 USDC via x402, charged only on success. Part of Asset render: Pictures of a 3D model for agents that cannot see: catalog views, a turntable GIF, and isometric sprite sheets for 2.5D games.","inputSchema":{"type":"object","properties":{"glb":{"type":"string","description":"Base64 GLB."},"glbUrl":{"type":"string","format":"uri"},"upAxis":{"type":"string","enum":["auto","y","z"],"default":"auto"},"size":{"type":"number","enum":[256,512],"default":256},"frames":{"type":"integer","minimum":12,"maximum":72,"default":36}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"f85e1f12bc77ff26acb42c0383f8d186b0696898b690646d2de0d2f02317ac6a","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"asset_render_views","title":null,"description":"Render a GLB model to four PNG views (three-quarter, front, side, top) for thumbnails and previews, plus mesh stats and size. Price: $0.10 USDC via x402, charged only on success. Part of Asset render: Pictures of a 3D model for agents that cannot see: catalog views, a turntable GIF, and isometric sprite sheets for 2.5D games.","inputSchema":{"type":"object","properties":{"glb":{"type":"string","description":"Base64 GLB."},"glbUrl":{"type":"string","format":"uri"},"upAxis":{"type":"string","enum":["auto","y","z"],"default":"auto"},"size":{"type":"number","enum":[256,512,1024],"default":512},"background":{"type":"string","enum":["neutral","transparent"],"default":"neutral"},"lighting":{"type":"string","enum":["lit","unlit"],"default":"lit","description":"unlit: base color only, no scene lighting (for models with lighting baked into the texture)"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"95641ffb6ec4e34c699defce63d0b681e8aa2e55c5be068e4ababd44d6cb80a2","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"audio_tools_beats","title":null,"description":"Beat map of a song for rhythm games and music-synced effects: BPM and tempo changes, beats, bar lines, kick / snare / hat hits, and easy, normal and hard note charts on the grid, as JSON. Price: $0.05 USDC via x402, charged only on success. Part of Audio tools: Make generated or recorded sounds game-ready: trim silence and match loudness (LUFS with a true-peak ceiling), seamless loops for music and ambience with loop points, and SFX variations.","inputSchema":{"type":"object","properties":{"audio":{"type":"string","description":"Music as base64 (wav, mp3, ogg, flac, m4a), up to 10 minutes."},"audioUrl":{"type":"string","format":"uri"},"offsetMs":{"type":"number","minimum":-2000,"maximum":2000,"default":0,"description":"Added to every time, to match your engine's audio latency."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"9bad658995782880a904b5602711e5c9e00ac1a483b1d5f9febda63c87fe540a","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"audio_tools_clean","title":null,"description":"Trim silence, normalize loudness to a LUFS target with a -1 dBTP ceiling, add anti-click fades and convert (ogg, wav, mp3; mono for SFX). Returns the file, a waveform and measured stats. Price: $0.05 USDC via x402, charged only on success. Part of Audio tools: Make generated or recorded sounds game-ready: trim silence and match loudness (LUFS with a true-peak ceiling), seamless loops for music and ambience with loop points, and SFX variations.","inputSchema":{"type":"object","properties":{"audio":{"type":"string","description":"Audio file as base64 (wav, mp3, ogg, flac, m4a)."},"audioUrl":{"type":"string","format":"uri","description":"Audio file URL."},"format":{"type":"string","enum":["ogg","wav","mp3"],"default":"ogg"},"kind":{"type":"string","enum":["sfx","music","ambience","voice"],"default":"sfx","description":"Sets the loudness target and channel default: sfx -16 LUFS mono, music -18 stereo, ambience -20 stereo, voice -16 mono."},"targetLufs":{"type":"number","minimum":-40,"maximum":-6},"trimSilence":{"type":"boolean","default":true},"silenceThresholdDb":{"type":"number","minimum":-90,"maximum":-20,"default":-50},"mono":{"type":"boolean"},"sampleRate":{"type":"number","enum":[22050,44100,48000]}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"7cc1d7b39f6b5c09c78a9d6b879754a84e526740a387a2bb1ace909f062a91f6","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"audio_tools_loop","title":null,"description":"Turn music or ambience into a seamless loop: cuts at zero crossings and crossfades the end into the start with an equal-power curve. Returns the loop, a 3x preview and loop points in samples. Price: $0.10 USDC via x402, charged only on success. Part of Audio tools: Make generated or recorded sounds game-ready: trim silence and match loudness (LUFS with a true-peak ceiling), seamless loops for music and ambience with loop points, and SFX variations.","inputSchema":{"type":"object","properties":{"audio":{"type":"string","description":"Audio file as base64 (wav, mp3, ogg, flac, m4a)."},"audioUrl":{"type":"string","format":"uri","description":"Audio file URL."},"format":{"type":"string","enum":["ogg","wav","mp3"],"default":"ogg"},"startSec":{"type":"number","minimum":0},"endSec":{"type":"number","minimum":0},"crossfadeMs":{"type":"number","minimum":5,"maximum":2000,"default":120},"mono":{"type":"boolean","default":false}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"cc70d50f093abaa3cc216e098164c087289c83c4018a4666fd01e4a34de769a8","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"audio_tools_variations","title":null,"description":"Make 2-12 variations of one sound effect with small pitch and volume changes, so repeated footsteps or hits do not sound copy-pasted. Returns each file and a ZIP. Price: $0.10 USDC via x402, charged only on success. Part of Audio tools: Make generated or recorded sounds game-ready: trim silence and match loudness (LUFS with a true-peak ceiling), seamless loops for music and ambience with loop points, and SFX variations.","inputSchema":{"type":"object","properties":{"audio":{"type":"string","description":"Audio file as base64 (wav, mp3, ogg, flac, m4a)."},"audioUrl":{"type":"string","format":"uri","description":"Audio file URL."},"format":{"type":"string","enum":["ogg","wav","mp3"],"default":"ogg"},"count":{"type":"integer","minimum":2,"maximum":12,"default":5},"pitchSemitones":{"type":"number","minimum":0,"maximum":6,"default":2,"description":"Max pitch change either way."},"volumeDb":{"type":"number","minimum":0,"maximum":12,"default":2,"description":"Max volume change either way."},"seed":{"type":"integer","default":1},"mono":{"type":"boolean"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"e8effa50d81371ae6b2e82aac13fa399b3838fd4d3fd73b56d58901c2ca4ffdd","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"audio_tools_voice","title":null,"description":"Make a voice recording or TTS take game-ready: rumble high-passed, noise reduced against the measured floor, sibilance tamed, dialogue loudness (-18 LUFS) with a -1 dBTP ceiling, and a long take split into one file per phrase with a CSV cue sheet. Price: $0.10 USDC via x402, charged only on success. Part of Audio tools: Make generated or recorded sounds game-ready: trim silence and match loudness (LUFS with a true-peak ceiling), seamless loops for music and ambience with loop points, and SFX variations.","inputSchema":{"type":"object","properties":{"audio":{"type":"string","description":"Audio file as base64 (wav, mp3, ogg, flac, m4a)."},"audioUrl":{"type":"string","format":"uri","description":"Audio file URL."},"format":{"type":"string","enum":["ogg","wav","mp3"],"default":"ogg"},"targetLufs":{"type":"number","minimum":-30,"maximum":-10,"default":-18,"description":"Dialogue loudness; -18 LUFS is a common game VO target."},"denoise":{"type":"number","minimum":0,"maximum":1,"default":0.5,"description":"0 gentle, 1 strong. Strong denoising can make a voice sound metallic."},"split":{"type":"boolean","default":true,"description":"One file per phrase."},"minSilenceMs":{"type":"integer","minimum":100,"maximum":3000,"default":350,"description":"A pause at least this long separates two phrases."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"79a1014d2cc240b74311f95cd12a61e42c0d4cf6f0f88d04c499aa410278d0be","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"font_tools_bitmap","title":null,"description":"Bitmap font from a TTF/OTF: atlas PNG, BMFont .fnt with kerning, JSON and a preview of a sample line. Pixel mode snaps glyphs to whole pixels with no antialiasing. Price: $0.10 USDC via x402, charged only on success. Part of Font tools: Turn a TTF/OTF font into a bitmap font for games: crisp pixel-perfect glyphs for pixel art or smooth antialiased ones, Latin and Cyrillic, optional outline, atlas PNG plus AngelCode BMFont .fnt with kerning (Unity, Godot, Phaser, LibGDX) and JSON..","inputSchema":{"type":"object","properties":{"font":{"type":"string","description":"TTF or OTF file as base64."},"fontUrl":{"type":"string","format":"uri"},"size":{"type":"integer","minimum":6,"maximum":256,"default":16,"description":"Pixel size (em)."},"mode":{"type":"string","enum":["pixel","smooth"],"default":"pixel","description":"pixel: crisp, no antialiasing, for pixel art games; smooth: antialiased."},"charset":{"type":"string","enum":["ascii","latin1","cyrillic","custom"],"default":"cyrillic"},"chars":{"type":"string","maxLength":4000,"description":"charset=custom: exactly these characters."},"color":{"type":"string","pattern":"^#?[0-9a-fA-F]{6}$","default":"#ffffff","description":"Glyph colour baked into the atlas (white lets the engine tint it)."},"outline":{"type":"integer","minimum":0,"maximum":8,"default":0},"outlineColor":{"type":"string","pattern":"^#?[0-9a-fA-F]{6}$","default":"#000000"},"padding":{"type":"integer","minimum":0,"maximum":8,"default":1},"sample":{"type":"string","maxLength":200,"default":"The quick brown fox 0123 Привіт, як справи?"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"3ce077a8ce28406184018dde3678efcdf329beae9605389baa6b350ceafe1679","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"forge_help","title":null,"description":"What Rengi Forge offers, prices and how payment works. Free.","inputSchema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"59040141a786e50f89808cb181cec7418438981c26671b0d25e53889d26ff0fb","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"glb_optimizer_colliders","title":null,"description":"Collision for a model: a set of convex hulls that hug the shape (V-HACD), ready for Godot (-convcolonly nodes), Unreal (UCX_ names) and Unity (convex MeshColliders via an editor script), plus hulls.json for any engine and a see-through overlay to check. Price: $0.15 USDC via x402, charged only on success. Part of GLB optimizer: Make a GLB small and fast for the web or mobile: dedup, instance, join, weld, simplify, resize and re-encode textures, meshopt or draco compression.","inputSchema":{"type":"object","properties":{"glb":{"type":"string"},"glbUrl":{"type":"string","format":"uri"},"engine":{"type":"string","enum":["all","godot","unreal","unity"],"default":"all"},"maxHulls":{"type":"integer","minimum":1,"maximum":64,"default":16,"description":"Upper limit; the fewest hulls that fit the shape (within 3% of the volume the limit gives) are used."},"resolution":{"type":"integer","minimum":10000,"maximum":1000000,"default":100000,"description":"Voxels used to read the shape; higher follows small details."},"maxVerticesPerHull":{"type":"integer","minimum":8,"maximum":255,"default":64,"description":"64 keeps every hull valid for Unity convex MeshColliders (255 polygons)."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"5c52ea52cdb26e689603233649de412c55efb6100f35e10a8dc08d5ff75ee228","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"glb_optimizer_convert","title":null,"description":"Convert FBX, OBJ (zip with .mtl and textures), glTF (zip), STL, PLY, DAE or 3DS to one GLB: Y-up, in meters, materials and FBX animations kept. Returns the GLB, a report, a validator pass and a preview render. Price: $0.15 USDC via x402, charged only on success. Part of GLB optimizer: Make a GLB small and fast for the web or mobile: dedup, instance, join, weld, simplify, resize and re-encode textures, meshopt or draco compression.","inputSchema":{"type":"object","properties":{"file":{"type":"string","description":"Model file as base64: FBX, GLB, STL, PLY, DAE, 3DS, or a ZIP holding an OBJ/glTF with its .mtl/.bin and textures."},"fileUrl":{"type":"string","format":"uri"},"fileName":{"type":"string","maxLength":200,"description":"Original file name, helps tell the format apart."},"upAxis":{"type":"string","enum":["auto","y","z"],"default":"auto","description":"auto trusts FBX/glTF/DAE metadata, assumes Y-up for OBJ and Z-up for STL/PLY/3DS."},"unitScale":{"anyOf":[{"type":"string","const":"auto"},{"type":"number","exclusiveMinimum":0,"maximum":1000}],"default":"auto","description":"Multiply sizes by this to get meters; auto reads FBX units and treats large STLs as millimeters."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"0f532b1988a524b9251e62a50c9bb3053ad1672fa377bc7cf48a66e8300c1301","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"glb_optimizer_inspect","title":null,"description":"Inspect a GLB without changing it: triangles, draw calls, materials, texture memory, animations, glTF validator errors, and concrete suggestions to make it lighter. Price: $0.05 USDC via x402, charged only on success. Part of GLB optimizer: Make a GLB small and fast for the web or mobile: dedup, instance, join, weld, simplify, resize and re-encode textures, meshopt or draco compression.","inputSchema":{"type":"object","properties":{"glb":{"type":"string"},"glbUrl":{"type":"string","format":"uri"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"4434f91646301a1bc972820ae2b46754f16f651e5390a46cec87f4242739cdc5","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"glb_optimizer_lod","title":null,"description":"Generate a LOD chain from a GLB (default 100/50/25/10% of triangles) with locked borders so UV seams and silhouettes hold; one GLB per level, a side-by-side render and Unity LODGroup transition heights. Price: $0.20 USDC via x402, charged only on success. Part of GLB optimizer: Make a GLB small and fast for the web or mobile: dedup, instance, join, weld, simplify, resize and re-encode textures, meshopt or draco compression.","inputSchema":{"type":"object","properties":{"glb":{"type":"string"},"glbUrl":{"type":"string","format":"uri"},"ratios":{"type":"array","items":{"type":"number","minimum":0.01,"maximum":1},"minItems":2,"maxItems":6,"default":[1,0.5,0.25,0.1]},"lockBorder":{"type":"boolean","default":true,"description":"Keep open edges and UV seams in place (recommended)."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"139da0fbd7c13422ab5d647039b815fe59c5acdf7f882c8e9daec7de189856b1","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"glb_optimizer_optimize","title":null,"description":"Shrink a GLB (up to 10 MB) for web or mobile: dedup, join draw calls, gentle simplify, textures to WebP at a max size, meshopt or Draco compression; before/after renders, size report and loader notes for three.js and Unity. Price: $0.20 USDC via x402, charged only on success. Part of GLB optimizer: Make a GLB small and fast for the web or mobile: dedup, instance, join, weld, simplify, resize and re-encode textures, meshopt or draco compression.","inputSchema":{"type":"object","properties":{"glb":{"type":"string","description":"Base64 GLB."},"glbUrl":{"type":"string","format":"uri"},"preset":{"type":"string","enum":["web","mobile","preview"],"default":"web"},"maxTextureSize":{"type":"integer","minimum":64,"maximum":8192},"simplifyRatio":{"type":"number","minimum":0,"maximum":1,"description":"Target share of triangles to keep (0 = only the error bound decides)."},"compression":{"type":"string","enum":["meshopt","draco","none"],"default":"meshopt"},"textureFormat":{"type":"string","enum":["webp","png","keep"],"default":"webp"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"3985ca1bd52d8a68ed9a26e819978ff613a783c878a0d44f17e73a717fc8ad8f","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"glb_optimizer_optimize_large","title":null,"description":"Shrink a large GLB (up to 50 MB) for web or mobile, same pipeline as optimize: dedup, join, simplify, WebP textures, meshopt or Draco. Price: $0.50 USDC via x402, charged only on success. Part of GLB optimizer: Make a GLB small and fast for the web or mobile: dedup, instance, join, weld, simplify, resize and re-encode textures, meshopt or draco compression.","inputSchema":{"type":"object","properties":{"glb":{"type":"string","description":"Base64 GLB."},"glbUrl":{"type":"string","format":"uri"},"preset":{"type":"string","enum":["web","mobile","preview"],"default":"web"},"maxTextureSize":{"type":"integer","minimum":64,"maximum":8192},"simplifyRatio":{"type":"number","minimum":0,"maximum":1,"description":"Target share of triangles to keep (0 = only the error bound decides)."},"compression":{"type":"string","enum":["meshopt","draco","none"],"default":"meshopt"},"textureFormat":{"type":"string","enum":["webp","png","keep"],"default":"webp"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"63e83b4a009edfd9e1ce5da663cf7fc54f094d32f3d63a6f7dd64fb9bb4bc8a2","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"leaderboard_boards","title":null,"description":"Create a board with 100,000 submissions and 365 days; returns keys and a ready JS snippet. Price: $1.00 USDC via x402, charged only on success. Part of Leaderboard: A leaderboard backend for a game in one paid call, no signup: buy a board (100,000 submissions, 1 year), get a board id, a submit key for the game client and an admin key.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"sort":{"type":"string","enum":["desc","asc"],"default":"desc","description":"desc: higher is better; asc: lower is better (times)"},"minScore":{"type":"number"},"maxScore":{"type":"number"},"periods":{"type":"array","items":{"type":"string","enum":["alltime","daily","weekly"]},"minItems":1,"maxItems":3,"default":["alltime"]},"signed":{"type":"boolean","default":false,"description":"Require HMAC-signed submissions (for games with a server)."}},"required":["name"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"3f5aa78d3fff5e583b2989fc8f2476134b1cb51ace5e986bd290ead286b73832","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"leaderboard_topup","title":null,"description":"Add 100,000 submissions and 365 days to a board. Price: $1.00 USDC via x402, charged only on success. Part of Leaderboard: A leaderboard backend for a game in one paid call, no signup: buy a board (100,000 submissions, 1 year), get a board id, a submit key for the game client and an admin key.","inputSchema":{"type":"object","properties":{"boardId":{"type":"string"},"adminKey":{"type":"string"}},"required":["boardId","adminKey"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"5750f91cba31fa235822f808d6e2b7f5a1a16b3c89278d8f42d01c1ae583e083","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"level_design_catalog","title":null,"description":"Ingest your prop catalog: footprint, height, pivot and category computed from each GLB. Returns a catalogId for place. Price: $0.50 USDC via x402, charged only on success. Part of Level design: Level dressing for 3D games.","inputSchema":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120,"description":"Your prefab / asset name. Placements refer to it."},"glb":{"type":"string","description":"Base64 GLB. Footprint, height and pivot are computed from the mesh."},"glbUrl":{"type":"string","format":"uri","description":"URL of a GLB, used when glb is not given."},"bounds":{"type":"object","properties":{"min":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"max":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"number"},{"type":"number"},{"type":"number"}]}},"required":["min","max"],"additionalProperties":false,"description":"Meters, model space, Y up. Used only when no mesh is given."},"category":{"type":"string","enum":["house","tree","rock","bush","fence","wall","prop","light","path","water","other"],"description":"Overrides automatic classification."},"tags":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20}},"required":["id"],"additionalProperties":false},"minItems":1,"maxItems":300},"upAxis":{"type":"string","enum":["y","z"],"default":"y"}},"required":["assets"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"accb8e3f380400c0faee30d285d8db9bd950ecf10f8b79971307798a21f901d0","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"level_design_navmesh","title":null,"description":"Bake a navmesh for your agent size from a level GLB and find unreachable areas, passages that barely fit, and walkable area per region; top-view map and the navmesh as OBJ. Price: $0.05 USDC via x402, charged only on success. Part of Level design: Level dressing for 3D games.","inputSchema":{"type":"object","properties":{"glb":{"type":"string","description":"The level as a base64 GLB."},"glbUrl":{"type":"string","format":"uri"},"agentRadius":{"type":"number","minimum":0.05,"maximum":5,"default":0.4,"description":"Metres."},"agentHeight":{"type":"number","minimum":0.2,"maximum":10,"default":1.8},"maxClimb":{"type":"number","minimum":0,"maximum":3,"default":0.4,"description":"Highest step the agent walks up, metres."},"maxSlope":{"type":"number","minimum":0,"maximum":85,"default":45,"description":"Steepest walkable slope, degrees."},"upAxis":{"type":"string","enum":["auto","y","z"],"default":"auto"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"59860cfbb487d33ca797c8325c81f1ccc46613985a868cbf8e8fb9d3dedcdef5","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"level_design_place","title":null,"description":"Dress a level: placements for every zone, previews and a 3D viewer link. Price: $1.00 USDC via x402, charged only on success. Part of Level design: Level dressing for 3D games.","inputSchema":{"type":"object","properties":{"catalogId":{"type":"string"},"catalog":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120,"description":"Your prefab / asset name. Placements refer to it."},"glb":{"type":"string","description":"Base64 GLB. Footprint, height and pivot are computed from the mesh."},"glbUrl":{"type":"string","format":"uri","description":"URL of a GLB, used when glb is not given."},"bounds":{"type":"object","properties":{"min":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"max":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"number"},{"type":"number"},{"type":"number"}]}},"required":["min","max"],"additionalProperties":false,"description":"Meters, model space, Y up. Used only when no mesh is given."},"category":{"type":"string","enum":["house","tree","rock","bush","fence","wall","prop","light","path","water","other"],"description":"Overrides automatic classification."},"tags":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20}},"required":["id"],"additionalProperties":false},"minItems":1,"maxItems":300},"upAxis":{"type":"string","enum":["y","z"],"default":"y"}},"required":["assets"],"additionalProperties":false},"layout":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"zones"},"width":{"type":"number","exclusiveMinimum":0,"maximum":400,"description":"World size along x, meters."},"depth":{"type":"number","exclusiveMinimum":0,"maximum":400,"description":"World size along z, meters."},"zones":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["road","plaza","water","forest","field","building-lot","keep-clear","spawn","open"]},"polygon":{"type":"array","items":{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"number"},{"type":"number"}]},"minItems":3,"maxItems":400,"description":"World meters (x, z). x right, z down on a top-down map."},"polyline":{"type":"array","items":{"$ref":"#/properties/layout/anyOf/0/properties/zones/items/properties/polygon/items"},"minItems":2,"maxItems":400,"description":"For roads and rivers: centerline plus width."},"width":{"type":"number","exclusiveMinimum":0,"maximum":100}},"required":["kind"],"additionalProperties":false},"maxItems":200},"requiredPoints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"x":{"type":"number"},"z":{"type":"number"}},"required":["id","x","z"],"additionalProperties":false},"maxItems":20,"default":[]}},"required":["kind","width","depth","zones"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"image"},"image":{"type":"string","description":"Base64 PNG of a top-down sketch or map."},"imageUrl":{"type":"string","format":"uri"},"width":{"type":"number","exclusiveMinimum":0,"maximum":400},"depth":{"type":"number","exclusiveMinimum":0,"maximum":400},"requiredPoints":{"type":"array","items":{"$ref":"#/properties/layout/anyOf/0/properties/requiredPoints/items"},"maxItems":20,"default":[]}},"required":["kind","width","depth"],"additionalProperties":false}]},"heightmap":{"type":"object","properties":{"image":{"type":"string","description":"Base64 grayscale PNG covering the whole map."},"imageUrl":{"type":"string","format":"uri"},"minHeight":{"type":"number","default":0},"maxHeight":{"type":"number"}},"required":["maxHeight"],"additionalProperties":false},"brief":{"type":"string","maxLength":4000,"default":""},"preset":{"type":"string","enum":["fantasy-village"],"default":"fantasy-village"},"density":{"type":"number","minimum":0,"maximum":1,"default":0.5},"seed":{"anyOf":[{"type":"integer"},{"type":"string","maxLength":64}],"default":1},"targetEngine":{"type":"string","enum":["unity","threejs"],"default":"unity"},"plan":{"type":"object","properties":{"zones":{"type":"array","items":{"type":"object","properties":{"zoneId":{"type":"string"},"rules":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"scatter"},"assets":{"type":"array","items":{"type":"string"},"description":"Asset ids."},"categories":{"type":"array","items":{"$ref":"#/properties/catalog/properties/assets/items/properties/category"},"description":"Pick from the catalog by category."},"density":{"type":"number","minimum":0,"maximum":1},"minSpacing":{"type":"number","minimum":0,"maximum":50},"falloff":{"type":"object","properties":{"from":{"type":"string","enum":["edge","point"]},"point":{"$ref":"#/properties/layout/anyOf/0/properties/zones/items/properties/polygon/items"},"strength":{"type":"number","minimum":0,"maximum":1}},"required":["from","strength"],"additionalProperties":false}},"required":["kind","density"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cluster"},"assets":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/assets"},"categories":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/categories"},"clusters":{"type":"integer","minimum":1,"maximum":30,"default":1},"count":{"type":"integer","minimum":1,"maximum":60},"radius":{"type":"number","exclusiveMinimum":0,"maximum":60},"center":{"anyOf":[{"anyOf":[{"type":"string","const":"centroid"},{"$ref":"#/properties/layout/anyOf/0/properties/zones/items/properties/polygon/items"}]},{"type":"string","const":"random"}],"default":"random"}},"required":["kind","count","radius"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"along"},"assets":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/assets"},"categories":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/categories"},"offset":{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"number","minimum":0},{"type":"number","minimum":0}],"description":"Distance inside the zone edge, meters [min, max]."},"spacing":{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}]},"facing":{"type":"string","enum":["along","toward","away","random"],"default":"along"}},"required":["kind","offset","spacing"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"ring"},"assets":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/assets"},"categories":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/categories"},"center":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/1/properties/center/anyOf/0","default":"centroid"},"radius":{"type":"number","exclusiveMinimum":0,"maximum":80},"count":{"type":"integer","minimum":1,"maximum":60},"facing":{"type":"string","enum":["inward","outward"],"default":"inward"}},"required":["kind","radius","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"lot"},"assets":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/assets"},"categories":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/categories"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"anchor"},"asset":{"type":"string"},"category":{"$ref":"#/properties/catalog/properties/assets/items/properties/category"},"at":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/1/properties/center/anyOf/0","default":"centroid"},"yawDeg":{"type":"number"}},"required":["kind"],"additionalProperties":false}]},"maxItems":12}},"required":["zoneId","rules"],"additionalProperties":false},"maxItems":200},"notes":{"type":"string","maxLength":2000}},"required":["zones"],"additionalProperties":false,"description":"Optional: skip the planner and solve this plan exactly."}},"required":["layout"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"c42e029c6b76118d8df6fe4c2407ba4ee829d4396021c2ffde82fe9b126b5fb4","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"level_design_place_2d","title":null,"description":"Fill a 2D tilemap: terrain with proper corner transitions, decorations, obstacles and multi-tile stamps; Tiled .tmj, Unity Tilemap JSON and a preview. Price: $1.00 USDC via x402, charged only on success. Part of Level design: Level dressing for 3D games.","inputSchema":{"type":"object","properties":{"tileset":{"type":"object","properties":{"image":{"type":"string"},"imageUrl":{"type":"string","format":"uri"},"tileWidth":{"type":"integer","minimum":1,"maximum":512},"tileHeight":{"type":"integer","minimum":1,"maximum":512},"margin":{"type":"integer","minimum":0,"default":0},"spacing":{"type":"integer","minimum":0,"default":0}},"required":["tileWidth","tileHeight"],"additionalProperties":false},"tileRoles":{"type":"object","properties":{"terrains":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"tiles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0},"weight":{"type":"number","exclusiveMinimum":0,"default":1}},"required":["id"],"additionalProperties":false},"minItems":1,"description":"Plain fill tiles; weighted variants keep ground from looking stamped."},"walkable":{"type":"boolean","default":true}},"required":["name","tiles"],"additionalProperties":false},"minItems":1,"maxItems":12},"sets":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"corner16"},"over":{"type":"string"},"under":{"type":"string"},"firstTile":{"type":"integer","minimum":0}},"required":["kind","over","under","firstTile"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"blob47"},"over":{"type":"string"},"under":{"type":"string"},"tiles":{"type":"array","items":{"type":"integer","minimum":0},"minItems":47,"maxItems":47}},"required":["kind","over","under","tiles"],"additionalProperties":false}]},"maxItems":40,"default":[]},"decorations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0},"name":{"type":"string","minLength":1,"maxLength":40},"layer":{"type":"string","enum":["detail","obstacle"],"description":"detail: walkable ground clutter; obstacle: blocks walking"},"on":{"type":"array","items":{"type":"string"},"description":"Terrains it may stand on (default: any walkable)."},"tags":{"type":"array","items":{"type":"string"},"maxItems":10,"default":[]}},"required":["id","name","layer"],"additionalProperties":false},"maxItems":200,"default":[]},"stamps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"width":{"type":"integer","minimum":1,"maximum":16},"height":{"type":"integer","minimum":1,"maximum":16},"tiles":{"type":"array","items":{"type":"integer","minimum":-1},"description":"Row-major tile ids, width x height; -1 leaves a cell empty."},"walkable":{"type":"boolean","default":false},"tags":{"type":"array","items":{"type":"string"},"maxItems":10,"default":[]}},"required":["name","width","height","tiles"],"additionalProperties":false},"maxItems":60,"default":[]},"terrainFor":{"type":"object","additionalProperties":{"type":"string"},"default":{}}},"required":["terrains"],"additionalProperties":false},"layout":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"zones"},"width":{"type":"integer","minimum":4,"maximum":400,"description":"Map width in tiles."},"height":{"type":"integer","minimum":4,"maximum":400,"description":"Map height in tiles."},"zones":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["road","plaza","water","forest","field","building-lot","keep-clear","spawn","open"]},"polygon":{"type":"array","items":{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"number"},{"type":"number"}]},"minItems":3,"maxItems":400,"description":"Tile units: x right, y down."},"polyline":{"type":"array","items":{"$ref":"#/properties/layout/anyOf/0/properties/zones/items/properties/polygon/items"},"minItems":2,"maxItems":400},"width":{"type":"number","exclusiveMinimum":0,"maximum":50}},"required":["kind"],"additionalProperties":false},"maxItems":200},"requiredPoints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"x":{"type":"number"},"z":{"type":"number"}},"required":["id","x","z"],"additionalProperties":false},"maxItems":20,"default":[]}},"required":["kind","width","height","zones"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"image"},"image":{"type":"string"},"imageUrl":{"type":"string","format":"uri"},"width":{"type":"integer","minimum":4,"maximum":400},"height":{"type":"integer","minimum":4,"maximum":400},"requiredPoints":{"type":"array","items":{"$ref":"#/properties/layout/anyOf/0/properties/requiredPoints/items"},"maxItems":20,"default":[]}},"required":["kind","width","height"],"additionalProperties":false}]},"brief":{"type":"string","maxLength":4000,"default":""},"preset":{"type":"string","enum":["fantasy-village","dungeon","forest"],"default":"fantasy-village"},"density":{"type":"number","minimum":0,"maximum":1,"default":0.5},"seed":{"anyOf":[{"type":"integer"},{"type":"string","maxLength":64}],"default":1},"plan":{"type":"object","properties":{"zones":{"type":"array","items":{"type":"object","properties":{"zoneId":{"type":"string"},"rules":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"scatter"},"names":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"density":{"type":"number","minimum":0,"maximum":1}},"required":["kind","density"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"along"},"names":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/names"},"tags":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/tags"},"inset":{"type":"integer","minimum":0,"maximum":10,"default":0},"spacing":{"type":"integer","minimum":1,"maximum":20,"default":1}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cluster"},"names":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/names"},"tags":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/tags"},"clusters":{"type":"integer","minimum":1,"maximum":30,"default":1},"count":{"type":"integer","minimum":1,"maximum":60},"radius":{"type":"number","exclusiveMinimum":0,"maximum":40}},"required":["kind","count","radius"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"stamp"},"names":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/names"},"tags":{"$ref":"#/properties/plan/properties/zones/items/properties/rules/items/anyOf/0/properties/tags"},"count":{"type":"integer","minimum":1,"maximum":30,"default":1,"description":"Stamps per zone; building lots usually take 1."}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"anchor"},"name":{"type":"string"},"at":{"anyOf":[{"type":"string","const":"centroid"},{"$ref":"#/properties/layout/anyOf/0/properties/zones/items/properties/polygon/items"}],"default":"centroid"}},"required":["kind","name"],"additionalProperties":false}]},"maxItems":12}},"required":["zoneId","rules"],"additionalProperties":false},"maxItems":200},"notes":{"type":"string","maxLength":2000}},"required":["zones"],"additionalProperties":false}},"required":["tileset","tileRoles","layout"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"c222da680f9c503c28ba273ab857d0d7620132c8227b2dcea19a947c2c3217ad","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"level_design_revise","title":null,"description":"Change a placed level by instruction or structured zone edits: denser or sparser, other assets, remove a kind of prop; untouched zones keep their exact transforms. It cannot cut an empty area inside a zone or move one object: for that, add a keep-clear zone to the layout and place again. Price: $0.50 USDC via x402, charged only on success. Part of Level design: Level dressing for 3D games.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string"},"instruction":{"type":"string","maxLength":2000},"edits":{"type":"array","items":{"type":"object","properties":{"zoneId":{"type":"string"},"rules":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"scatter"},"assets":{"type":"array","items":{"type":"string"},"description":"Asset ids."},"categories":{"type":"array","items":{"type":"string","enum":["house","tree","rock","bush","fence","wall","prop","light","path","water","other"]},"description":"Pick from the catalog by category."},"density":{"type":"number","minimum":0,"maximum":1},"minSpacing":{"type":"number","minimum":0,"maximum":50},"falloff":{"type":"object","properties":{"from":{"type":"string","enum":["edge","point"]},"point":{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"number"},{"type":"number"}]},"strength":{"type":"number","minimum":0,"maximum":1}},"required":["from","strength"],"additionalProperties":false}},"required":["kind","density"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cluster"},"assets":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/assets"},"categories":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/categories"},"clusters":{"type":"integer","minimum":1,"maximum":30,"default":1},"count":{"type":"integer","minimum":1,"maximum":60},"radius":{"type":"number","exclusiveMinimum":0,"maximum":60},"center":{"anyOf":[{"anyOf":[{"type":"string","const":"centroid"},{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/falloff/properties/point"}]},{"type":"string","const":"random"}],"default":"random"}},"required":["kind","count","radius"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"along"},"assets":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/assets"},"categories":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/categories"},"offset":{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"number","minimum":0},{"type":"number","minimum":0}],"description":"Distance inside the zone edge, meters [min, max]."},"spacing":{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}]},"facing":{"type":"string","enum":["along","toward","away","random"],"default":"along"}},"required":["kind","offset","spacing"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"ring"},"assets":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/assets"},"categories":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/categories"},"center":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/1/properties/center/anyOf/0","default":"centroid"},"radius":{"type":"number","exclusiveMinimum":0,"maximum":80},"count":{"type":"integer","minimum":1,"maximum":60},"facing":{"type":"string","enum":["inward","outward"],"default":"inward"}},"required":["kind","radius","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"lot"},"assets":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/assets"},"categories":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/categories"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"anchor"},"asset":{"type":"string"},"category":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/categories/items"},"at":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/1/properties/center/anyOf/0","default":"centroid"},"yawDeg":{"type":"number"}},"required":["kind"],"additionalProperties":false}]},"maxItems":12}},"required":["zoneId","rules"],"additionalProperties":false},"maxItems":50}},"required":["jobId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"90f603074988bced5a0e61dfbf49854fc32e0d9cc8b49fa99a5aafd5687abae7","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"level_design_revise_2d","title":null,"description":"Change a 2D map by instruction or zone edits; untouched zones keep their tiles. Price: $0.30 USDC via x402, charged only on success. Part of Level design: Level dressing for 3D games.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string"},"instruction":{"type":"string","maxLength":2000},"edits":{"type":"array","items":{"type":"object","properties":{"zoneId":{"type":"string"},"rules":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"scatter"},"names":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"density":{"type":"number","minimum":0,"maximum":1}},"required":["kind","density"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"along"},"names":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/names"},"tags":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/tags"},"inset":{"type":"integer","minimum":0,"maximum":10,"default":0},"spacing":{"type":"integer","minimum":1,"maximum":20,"default":1}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cluster"},"names":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/names"},"tags":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/tags"},"clusters":{"type":"integer","minimum":1,"maximum":30,"default":1},"count":{"type":"integer","minimum":1,"maximum":60},"radius":{"type":"number","exclusiveMinimum":0,"maximum":40}},"required":["kind","count","radius"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"stamp"},"names":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/names"},"tags":{"$ref":"#/properties/edits/items/properties/rules/items/anyOf/0/properties/tags"},"count":{"type":"integer","minimum":1,"maximum":30,"default":1,"description":"Stamps per zone; building lots usually take 1."}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"anchor"},"name":{"type":"string"},"at":{"anyOf":[{"type":"string","const":"centroid"},{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"number"},{"type":"number"}]}],"default":"centroid"}},"required":["kind","name"],"additionalProperties":false}]},"maxItems":12}},"required":["zoneId","rules"],"additionalProperties":false},"maxItems":50}},"required":["jobId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"8be335002bb1b856523138ad7969700a05cc67a0c877f4cad612ebcbae145b7a","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"},{"serverName":"io.github.MRRengi/rengi-forge","endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","name":"playtest_run","title":null,"description":"Play a web game (URL or ZIP build) as on a PC and as on a weak phone: errors, missing files, black or frozen screen, load time, draw calls, textures, shader stalls, memory leaks, build weight, video and screenshots. Price: $0.25 USDC via x402, charged only on success. Part of Playtest: Plays a web game in a real browser, as on a PC and as on a weak phone, and reports what an agent needs to fix: errors, missing files, a black or frozen screen, load time, draw calls, texture memory, shader stalls, memory leaks and build weight, with a video and screenshots of each pass.","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public URL of the game page."},"zip":{"type":"string","description":"ZIP of a static web build as base64, up to about 35 MB (index.html at the root or one folder down; Unity WebGL builds work). Bigger builds: zipUrl, up to 50 MB."},"zipUrl":{"type":"string","format":"uri"},"steps":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"do":{"type":"string","const":"wait"},"ms":{"type":"integer","minimum":0,"maximum":20000}},"required":["do","ms"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"key"},"key":{"type":"string","minLength":1,"maxLength":20,"description":"A key name like ArrowRight, Space, Enter, w."},"holdMs":{"type":"integer","minimum":10,"maximum":5000,"default":100}},"required":["do","key"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"click"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["do","x","y"],"additionalProperties":false,"description":"x, y: fractions of the viewport (0.5, 0.5 is the middle)."},{"type":"object","properties":{"do":{"type":"string","const":"tap"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["do","x","y"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"type"},"text":{"type":"string","maxLength":200}},"required":["do","text"],"additionalProperties":false}]},"maxItems":40,"default":[],"description":"Optional scenario played first: wait, key, click, tap, type."},"monkey":{"type":"boolean","default":true,"description":"After the steps, press random keys, clicks and taps until the pass ends."},"seconds":{"type":"integer","minimum":10,"maximum":45,"default":30,"description":"Play time per profile, not counting loading."},"profiles":{"type":"array","items":{"type":"string","enum":["desktop","phone"]},"minItems":1,"maxItems":2,"default":["desktop","phone"],"description":"desktop: 1280x720; phone: 390x844 touch screen with the CPU slowed 4x."},"seed":{"type":"integer","minimum":0,"maximum":1000000,"default":1,"description":"Random input seed, to repeat a run."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"594724998860eb24681e07c1923d4fad44b1f949246feb607d6ff603718dbbb5","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T17:47:08.040Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"967e1ee09c02d501f94bf70a563201d89340c3ddad093adac0bceff6ad32fce8","protocol":"streamable-http","status":"indexed","toolCount":43,"observedAt":"2026-11-01T17:47:08.040Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"io.github.MRRengi/rengi-forge":{"url":"https://rengi.dev/mcp"}}},"Cursor":{"mcpServers":{"io.github.MRRengi/rengi-forge":{"url":"https://rengi.dev/mcp"}}},"VS Code":{"servers":{"io.github.MRRengi/rengi-forge":{"type":"http","url":"https://rengi.dev/mcp"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://rengi.dev/mcp"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:io.github.MRRengi%2Frengi-forge","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/io.github.MRRengi%2Frengi-forge","name":"io.github.MRRengi/rengi-forge","description":"Gamedev tools for AI agents: level design, renders, sprites, GLB optimizer. Pay per call with x402.","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://rengi.dev/mcp"}],"capabilities":[],"identity":{"source":"official-registry","websiteUrl":null,"repositoryUrl":null,"version":"0.1.0"},"verification":{"state":"official","confidence":100},"operations":{"resourceType":"mcp-server","name":"io.github.MRRengi/rengi-forge","status":"online","lastCheckedAt":"2026-11-03T18:18:29.554Z","lastSuccessfulCheck":"2026-11-03T18:18:29.554Z","latencyMs":399,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T18:18:29.554Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T18:18:29.554Z"},"security":null,"timestamps":{"createdAt":"2026-10-20T10:07:30.814Z","updatedAt":"2026-10-20T10:07:30.814Z","observedAt":"2026-11-03T18:18:29.554Z"},"compatibility":{"serverVersion":"0.1.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}