# Rengi Forge (io.github.MRRengi/rengi-forge): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.MRRengi%2Frengi-forge/versions/latest)
- Connected to: https://rengi.dev/mcp
- Scoring rules: v2
- Tools: 43
- Average: 33.0 / 100 (Rain)
- Near-identical pairs: 36

This page shows how Rengi Forge (io.github.MRRengi/rengi-forge)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 43 tools. Above 40, models choose less accurately.
- Minor: 36 pairs with nearly the same description in all; the top 12 are shown.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `asset_render_sprites`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: glbUrl, upAxis, directions, cellSize, elevationDeg, pixelArt.
  - Minor: String arguments with no constraint or example: glb.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument pixelArt is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `glb_optimizer_inspect`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: glb, glbUrl.
  - Minor: String arguments with no constraint or example: glb.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `level_design_revise_2d`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: jobId, instruction, edits, edits[].zoneId, edits[].rules, edits[].rules[].kind, edits[].rules[].names, edits[].rules[].tags, edits[].rules[].density, edits[].rules[].kind, edits[].rules[].names, edits[].rules[].tags, edits[].rules[].inset, edits[].rules[].spacing, edits[].rules[].kind, edits[].rules[].names, edits[].rules[].tags, edits[].rules[].clusters, edits[].rules[].count, edits[].rules[].radius, edits[].rules[].kind, edits[].rules[].names, edits[].rules[].tags, edits[].rules[].kind, edits[].rules[].name, edits[].rules[].at.
  - Minor: String arguments with no constraint or example: jobId, edits[].zoneId, edits[].rules[].kind, edits[].rules[].kind, edits[].rules[].kind, edits[].rules[].kind, edits[].rules[].kind, edits[].rules[].name.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `leaderboard_topup`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: boardId, adminKey.
  - Minor: String arguments with no constraint or example: boardId, adminKey.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: boardId. Name the tool or the place that returns it, or models look it up first.
- `level_design_place_2d`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: tileset, tileset.image, tileset.imageUrl, tileset.tileWidth, tileset.tileHeight, tileset.margin, tileset.spacing, tileRoles, tileRoles.terrains, tileRoles.terrains[].name, tileRoles.terrains[].tiles[].id, tileRoles.terrains[].tiles[].weight, tileRoles.terrains[].walkable, tileRoles.sets, tileRoles.sets[].kind, tileRoles.sets[].over, tileRoles.sets[].under, tileRoles.sets[].firstTile, tileRoles.sets[].kind, tileRoles.sets[].over, tileRoles.sets[].under, tileRoles.sets[].tiles, tileRoles.decorations, tileRoles.decorations[].id, tileRoles.decorations[].name, tileRoles.decorations[].tags, tileRoles.stamps, tileRoles.stamps[].name, tileRoles.stamps[].width, tileRoles.stamps[].height, tileRoles.stamps[].walkable, tileRoles.stamps[].tags, tileRoles.terrainFor, layout, brief, preset, density, seed, plan, plan.zones, plan.zones[].zoneId, plan.zones[].rules, plan.zones[].rules[].kind, plan.zones[].rules[].names, plan.zones[].rules[].tags, plan.zones[].rules[].density, plan.zones[].rules[].kind, plan.zones[].rules[].names, plan.zones[].rules[].tags, plan.zones[].rules[].inset, plan.zones[].rules[].spacing, plan.zones[].rules[].kind, plan.zones[].rules[].names, plan.zones[].rules[].tags, plan.zones[].rules[].clusters, plan.zones[].rules[].count, plan.zones[].rules[].radius, plan.zones[].rules[].kind, plan.zones[].rules[].names, plan.zones[].rules[].tags, plan.zones[].rules[].kind, plan.zones[].rules[].name, plan.zones[].rules[].at, plan.notes.
  - Minor: String arguments with no constraint or example: tileset.image, tileRoles.sets[].kind, tileRoles.sets[].over, tileRoles.sets[].under, tileRoles.sets[].kind, tileRoles.sets[].over, tileRoles.sets[].under, plan.zones[].zoneId, plan.zones[].rules[].kind, plan.zones[].rules[].kind, plan.zones[].rules[].kind, plan.zones[].rules[].kind, plan.zones[].rules[].kind, plan.zones[].rules[].name.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument tileRoles.terrains[].walkable is unclear.
  - Minor: The meaning of the boolean argument tileRoles.stamps[].walkable is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `level_design_revise`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: jobId, instruction, edits, edits[].zoneId, edits[].rules, edits[].rules[].kind, edits[].rules[].density, edits[].rules[].minSpacing, edits[].rules[].falloff, edits[].rules[].falloff.from, edits[].rules[].falloff.point, edits[].rules[].falloff.strength, edits[].rules[].kind, edits[].rules[].assets, edits[].rules[].categories, edits[].rules[].clusters, edits[].rules[].count, edits[].rules[].radius, edits[].rules[].center, edits[].rules[].kind, edits[].rules[].assets, edits[].rules[].categories, edits[].rules[].spacing, edits[].rules[].facing, edits[].rules[].kind, edits[].rules[].assets, edits[].rules[].categories, edits[].rules[].center, edits[].rules[].radius, edits[].rules[].count, edits[].rules[].facing, edits[].rules[].kind, edits[].rules[].assets, edits[].rules[].categories, edits[].rules[].kind, edits[].rules[].asset, edits[].rules[].category, edits[].rules[].at, edits[].rules[].yawDeg.
  - Minor: String arguments with no constraint or example: jobId, edits[].zoneId, edits[].rules[].kind, edits[].rules[].kind, edits[].rules[].kind, edits[].rules[].kind, edits[].rules[].kind, edits[].rules[].kind, edits[].rules[].asset.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `sprite_tools_pack`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: frames, frames[].name, frames[].image, frames[].imageUrl, maxSize, padding, extrude, trim, powerOfTwo.
  - Minor: String arguments with no constraint or example: frames[].image.
  - Minor: The meaning of the boolean argument trim is unclear.
  - Minor: The meaning of the boolean argument powerOfTwo is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `glb_optimizer_optimize_large`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: glbUrl, preset, maxTextureSize, compression, textureFormat.
  - Minor: String arguments with no constraint or example: glb.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `level_design_place`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: catalogId, catalog, catalog.assets, catalog.assets[].bounds.min, catalog.assets[].bounds.max, catalog.assets[].tags, catalog.upAxis, layout, heightmap, heightmap.imageUrl, heightmap.minHeight, heightmap.maxHeight, brief, preset, density, seed, targetEngine, plan.zones, plan.zones[].zoneId, plan.zones[].rules, plan.zones[].rules[].kind, plan.zones[].rules[].density, plan.zones[].rules[].minSpacing, plan.zones[].rules[].falloff, plan.zones[].rules[].falloff.from, plan.zones[].rules[].falloff.point, plan.zones[].rules[].falloff.strength, plan.zones[].rules[].kind, plan.zones[].rules[].assets, plan.zones[].rules[].categories, plan.zones[].rules[].clusters, plan.zones[].rules[].count, plan.zones[].rules[].radius, plan.zones[].rules[].center, plan.zones[].rules[].kind, plan.zones[].rules[].assets, plan.zones[].rules[].categories, plan.zones[].rules[].spacing, plan.zones[].rules[].facing, plan.zones[].rules[].kind, plan.zones[].rules[].assets, plan.zones[].rules[].categories, plan.zones[].rules[].center, plan.zones[].rules[].radius, plan.zones[].rules[].count, plan.zones[].rules[].facing, plan.zones[].rules[].kind, plan.zones[].rules[].assets, plan.zones[].rules[].categories, plan.zones[].rules[].kind, plan.zones[].rules[].asset, plan.zones[].rules[].category, plan.zones[].rules[].at, plan.zones[].rules[].yawDeg, plan.notes.
  - Minor: String arguments with no constraint or example: catalogId, plan.zones[].zoneId, plan.zones[].rules[].kind, plan.zones[].rules[].kind, plan.zones[].rules[].kind, plan.zones[].rules[].kind, plan.zones[].rules[].kind, plan.zones[].rules[].kind, plan.zones[].rules[].asset.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `texture_tools_pack`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: preset, ao, ao.image, ao.imageUrl, roughness, roughness.image, roughness.imageUrl, smoothness.image, smoothness.imageUrl, metallic, metallic.image, metallic.imageUrl, detail, detail.image, detail.imageUrl.
  - Minor: String arguments with no constraint or example: ao.image, roughness.image, smoothness.image, metallic.image, detail.image.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `asset_render_turntable`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: glbUrl, upAxis, size, frames.
  - Minor: String arguments with no constraint or example: glb.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `glb_optimizer_lod`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: glb, glbUrl, ratios.
  - Minor: String arguments with no constraint or example: glb.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sprite_tools_video_to_sheet`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: videoUrl, fps, start, end, maxFrames, columns.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sprite_tools_slice`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: imageUrl, mode, cols, rows, cellWidth, cellHeight, margin, spacing, trim.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument trim is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `font_tools_bitmap`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: fontUrl, charset, outline, outlineColor, padding, sample.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `glb_optimizer_colliders`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: glb, glbUrl, engine.
  - Minor: String arguments with no constraint or example: glb.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `asset_render_views`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: glbUrl, upAxis, size, background.
  - Minor: String arguments with no constraint or example: glb.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `audio_tools_beats`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: audioUrl.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `level_design_navmesh`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: glbUrl, agentHeight, upAxis.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sprite_tools_autotile`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: baseUrl, topUrl, tileSize, seed.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `playtest_run`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: zipUrl, steps[].do, steps[].ms, steps[].do, steps[].holdMs, steps[].do, steps[].x, steps[].y, steps[].do, steps[].x, steps[].y, steps[].do, steps[].text.
  - Minor: String arguments with no constraint or example: steps[].do, steps[].do, steps[].do, steps[].do, steps[].do.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sprite_tools_normal_map`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: imageUrl, strength.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sprite_tools_pixelate`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: imageUrl, colors, alphaThreshold.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sprite_tools_remove_bg`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: imageUrl, trim, padding, pivot.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument trim is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `texture_tools_atlas`: 32 / 100
  - Major: Arguments without a description: textures, textures[].name, textures[].image, textures[].imageUrl, powerOfTwo, maxSize.
  - Minor: String arguments with no constraint or example: textures[].image.
  - Minor: The meaning of the boolean argument powerOfTwo is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `audio_tools_loop`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: format, startSec, endSec, crossfadeMs, mono.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument mono is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `texture_tools_pbr`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: height.image, height.imageUrl, delight, normalStrength, roughness.
  - Minor: String arguments with no constraint or example: height.image.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument delight is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `audio_tools_clean`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: format, targetLufs, trimSilence, silenceThresholdDb, mono, sampleRate.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument trimSilence is unclear.
  - Minor: The meaning of the boolean argument mono is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `audio_tools_voice`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: format.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `forge_help`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `glb_optimizer_optimize`: 35 / 100
  - Major: Arguments without a description: glbUrl, preset, maxTextureSize, compression, textureFormat.
  - Minor: String arguments with no constraint or example: glb.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `sprite_tools_inbetween`: 37 / 100
  - Minor: Arguments without a description: frames[].imageUrl, sheet.imageUrl, cols, rows.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `store_assets_icons`: 39 / 100
  - Minor: Arguments without a description: art.imageUrl, foreground.imageUrl, name.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `store_assets_steam`: 39 / 100
  - Minor: Arguments without a description: keyArt.imageUrl, logo.imageUrl, heroArt.imageUrl.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `level_design_catalog`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: assets, assets[].bounds.min, assets[].bounds.max, assets[].tags, upAxis.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `audio_tools_variations`: 42 / 100
  - Minor: Arguments without a description: format, count, seed, mono.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument mono is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `leaderboard_boards`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, minScore, maxScore, periods.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `store_assets_stores`: 43 / 100
  - Minor: Arguments without a description: keyArt.imageUrl, logo.imageUrl, screenshots[].imageUrl, stores.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `store_assets_trailer`: 43 / 100
  - Minor: Arguments without a description: musicUrl, logoUrl, trailerSeconds, shortSeconds.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `texture_tools_seamless`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `glb_optimizer_convert`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: fileUrl.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `store_assets_steam_audit`: 45 / 100
  - Minor: Arguments without a description: appId.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `vfx_review`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: clipUrl, referenceUrl.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
