GripForge MCP
OfficialThe GripForge MCP server lets you attach 3D props (swords, guns, shields, staves, etc.) to rigged characters. It automatically detects the hand bone, scales the prop relative to body height, and positions it for melee, gun, shield, or staff grips. You can specify right or left hand, adjust fist closure, and set an output directory to save a bind JSON, engine-ready code snippets for Three.js, Unity, and Godot, and optionally an armed GLB file with textures. The gripforge_formats tool lists supported mesh formats, grip styles, and hands. Works with local file paths or remote URLs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GripForge MCPAttach a katana to my character and give me the Unity code."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@gripforgeai/mcp
Attach weapons & props to rigged characters — from Claude Code, Cursor or any MCP client. Thin client for the GripForge API.
Hosted endpoint (zero install)
No Node required — point any remote-capable MCP client at:
https://gripforge.ai/mcpAuth: x-api-key: gf_... header (or Authorization: Bearer). Assets are passed
as URLs (character_url, prop_url) — Tripo/Meshy download links work
directly.
// Cursor (.cursor/mcp.json)
{
"mcpServers": {
"gripforge": {
"url": "https://gripforge.ai/mcp",
"headers": { "x-api-key": "gf_..." }
}
}
}Related MCP server: Rodin Gen-2 MCP Server
Example
"Attach this sword to my knight, right hand, then export the armed GLB."
The agent calls gripforge_attach with the two asset URLs (or local paths with
the npm package); GripForge finds the hand bone, scales the prop to the
character's hand, closes the fist around the grip and returns the bind JSON,
ready-to-paste Three.js / Unity / Godot snippets, and optionally the armed GLB.
Install (Claude Code)
claude mcp add gripforge -e GRIPFORGE_API_KEY=gf_... -- npx -y @gripforgeai/mcpOr in .mcp.json:
{
"mcpServers": {
"gripforge": {
"command": "npx",
"args": ["-y", "@gripforgeai/mcp"],
"env": { "GRIPFORGE_API_KEY": "gf_..." }
}
}
}Get a free API key at https://gripforge.ai/login — the free plan includes 3 API/MCP attaches per month to try it out (plus 15 in the web Studio). Paid plans from €29/mo for production use.
Install (Grok)
grok mcp add gripforge --env GRIPFORGE_API_KEY=gf_... -- npx -y @gripforgeai/mcpOr in ~/.grok/config.toml:
[mcp_servers.gripforge]
command = "npx"
args = ["-y", "@gripforgeai/mcp"]
enabled = true
startup_timeout_sec = 45
[mcp_servers.gripforge.env]
GRIPFORGE_API_KEY = "gf_..."Also works with Cursor, Windsurf and any MCP-compatible client — same
command / args / env triple.
Tools
gripforge_style_kit— resolve "Devil May Cry like" / "genshin" to locker ids already tagged with that look. Call this before generating. Reuse the ids.gripforge_generate_character— new T-pose + auto-rig into Library (10 credits).kind=enemyor the word "enemy" in the prompt. Skip this if style_kit already returned a character.gripforge_concept_correct— concept image → strict T-pose sheet (1 credit).gripforge_attach— character + prop (paths or Library ids) in, bone-local bind + Three.js / Unity / Godot snippets out. Styles: melee, gun, shield, staff (scythe/polearm). Withexport_glb: true(+out_dir) it also writesattached.glb: the character with the fist closed and the prop attached, textures preserved — use this for mitten-hand rigs, whose closed fist cannot travel in a JSON bind.gripforge_formats— supported formats & options.gripforge_library_list/get/push/pull— the Library locker.pullwrites bind.json + mesh into the open repo (out_dir, default./gripforge-library). Saving a bind after attach is not a second credit.gripforge_texture_prep— local path ortexture_id→ seamless blend + faithful lanczos upscale (1×/2×/4×, max 1024 or 2048). Writes the PNG intoout_dirand returns the Library albedo URL. Not a generator. No credit.gripforge_vfx/gripforge_vfx_preview— strike VFX (admin keys).gripforge_shaders— list the authorized shader catalog ({ id, name, engines }). Searchq=slash_reveal.gripforge_shader_pull—id+engine(godot|unity|three) +out_dir→ write sources into the repo and return an assignment snippet. v1 pull is free.
Env
GRIPFORGE_API_KEY(required) — 1 credit = 1 successful attachGRIPFORGE_API_URL(optional) — defaults to https://gripforge.ai
Available Tools
2 toolsgripforge_attachA
Attach a prop (sword, shield, gun, staff/scythe…) onto a rigged character. Finds the hand bone across naming schemes, scales to body height, seats the grip, and returns a bind + ready-to-paste Three.js / Unity / Godot snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| fist | No | Fist closing amount, 0 open → 1 closed (default 1) | |
| hand | No | Hand side (default right) | |
| style | No | Grip style (default: guessed from the filename) | |
| out_dir | No | Write bind.json + engine snippets into this folder | |
| prop_path | Yes | Absolute path to the prop mesh | |
| height_ratio | No | Prop size as a fraction of body height | |
| character_path | Yes | Absolute path to the rigged character (.glb .gltf .fbx .obj) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses key behaviors: finds hand bones across naming schemes, scales to body height, seats the grip, and returns bind/snippets for multiple engines. However, it does not mention potential failure modes or file-writing side effects when out_dir is used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficiently packed sentence that leads with the purpose, gives examples, and lists the output engines. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema, the description explains the core workflow and the high-level return (bind + snippets). It does not cover error handling or exact output structure, but it is sufficient for a competent agent to understand the tool's role and major steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all 7 parameters (100% coverage), so the baseline is 3. The description adds contextual hints (e.g., scaling to body height relates to height_ratio, seating the grip relates to style/fist) but does not add significantly to the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'attach' and the resource (a prop onto a rigged character), with concrete examples (sword, shield, gun, staff/scythe). It also distinguishes itself from the sibling gripforge_formats by focusing on the attachment workflow rather than format handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is provided: this tool is for attaching props to rigged characters. While it doesn't explicitly mention alternatives or exclusions, the sibling tool gripforge_formats suggests a different purpose, and the description makes the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gripforge_formatsA
List supported mesh formats, grip styles and hands.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. The verb 'List' implies a read-only operation, which is a useful behavioral trait. However, it does not disclose any additional details such as whether the list is static/dynamic, if it requires network access, or the exact return format. It just restates what the tool does without enriching behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the action and the enumerated resources. It is front-loaded and contains no wasted words, making it economically informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (no parameters, no output schema), the description is sufficiently complete for a listing tool. It tells the agent what to expect (a list of supported formats/styles/hands) and implies the return type. However, it could be enhanced by explicitly stating that the list is static or that no side effects occur, though this is not critical for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters, so the schema is trivially covered. The description does not need to explain parameters, and the baseline for 0 params is 4. It adds no parameter-specific information, but there is nothing to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to list supported mesh formats, grip styles, and hands. The verb 'List' is specific, and the resource types are enumerated. However, it does not explicitly distinguish itself from the sibling tool gripforge_attach, though the action difference is evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus gripforge_attach. The usage is implied: it provides reference information that would be needed before attaching something. Without any exclusions or alternatives, it neither contradicts nor strongly differentiates usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
gripforge_attach - First observed
gripforge_formats
TDQS
The two tools have completely different purposes: one performs the core attach operation, and the other provides reference information about formats and hands. There is no overlap or ambiguity.
Both tools share the 'gripforge_' prefix, but one uses a verb ('attach') while the other uses a noun ('formats'). This is a minor inconsistency, but the pattern is predictable and readable.
With only 2 tools, the server feels thin, but the scope is narrow and focused on prop attachment. It is borderline but not extreme; the count is reasonable for a single-purpose utility.
The core attachment workflow is covered, including format reference. There are no obvious dead ends, though a detach or list-attached-props tool might be expected in a fuller implementation, but it may be out of scope for this server.
Maintenance
Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
An MCP server that provides asset auto generator
MCP server for Grok Imagine AI video generation
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA flexible, extensible framework for building MCP servers with API key authentication, user management, and dynamic tool sharing.1511MIT
- AlicenseAqualityDmaintenanceMCP server for integrating with Rodin Gen-2 API to generate 3D models from text descriptions or images.6MIT
- AlicenseAqualityCmaintenanceAn MCP server that converts layered PSD characters into Spine 4.2 rigs with deterministic, parametric 2D/2.5D animations (idle, walk, run, jump, attack, hit) ready for the Spine editor and Unity.4MIT
- AlicenseNot gradedqualityAmaintenanceOpen-source, engine-agnostic MCP server shared by Unity-MCP, Godot-MCP, and Unreal-MCP.9Apache 2.0
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gripforgeai/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server