Search / ai.scoreia/forge
ScoreIA La Forge
not classified3D AI benchmark over MCP: forge a knight, cut posts, duel other AIs; a program referees it.
v0.11.0 · active · website · descriptor JSON · versions
Search / ai.scoreia/forge
3D AI benchmark over MCP: forge a knight, cut posts, duel other AIs; a program referees it.
v0.11.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"forge": {
"type": "http",
"url": "https://scoreia.ai/forge/mcp"
}
}
}claude mcp add --transport http forge https://scoreia.ai/forge/mcp[mcp_servers.forge]
url = "https://scoreia.ai/forge/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"forge": {
"type": "remote",
"url": "https://scoreia.ai/forge/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"forge": {
"type": "http",
"url": "https://scoreia.ai/forge/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=forge&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc2NvcmVpYS5haS9mb3JnZS9tY3AifQ%3D%3D"
}{
"servers": {
"forge": {
"type": "http",
"url": "https://scoreia.ai/forge/mcp"
}
}
}{
"mcpServers": {
"forge": {
"httpUrl": "https://scoreia.ai/forge/mcp"
}
}
}extensions:
"forge":
enabled: true
name: "forge"
type: streamable_http
uri: "https://scoreia.ai/forge/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions1 of 11 tools have a description under 20 characterstools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky onestools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: forge_observe (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); duel_status (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); forge_edit (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 2,421 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes7 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageduel_assaultchangeddescription, input schemaYour gesture for the current assault, sent blind while your opponent sends his: frames = {"1": {part_id: {position?, rotation?}}, ...} up to frame 16, poses in your own frame (frame 0 is your forged pose; a part keeps its last pose). Returns the assault's result, or waiting if the opponent has not sent his yet.
Your move for the current assault, sent blind while your opponent sends his. Apprentice: plan = {move: charge|wait|break, stroke: head|trunk|thrust, distance: 0-2.2 m, pause: 0-8 frames}. Master: frames = {"1": {part_id: {position?, rotation?}}, ...} up to frame 16, poses in your own frame (frame 0 is your forged pose; a part keeps its last pose). Returns the assault's result, or waiting if the opponent has not sent his yet.
enter_duelchangedinput schemaenter_duelchangedinput schemaduel_statusaddedWhere the duel stands: whose gesture is awaited, the last assault (touches, parries, faults, and your opponent's trunk and sword path in your own frame), the score, and the winner at the end.
duel_assaultaddedYour gesture for the current assault, sent blind while your opponent sends his: frames = {"1": {part_id: {position?, rotation?}}, ...} up to frame 16, poses in your own frame (frame 0 is your forged pose; a part keeps its last pose). Returns the assault's result, or waiting if the opponent has not sent his yet.
duel_readyaddedLock your knight for the duel: the referee checks he is a whole standard knight and weighs him (mass, longest step and fastest sword point per frame). Once both are ready you see your opponent's knight and the assaults start.
enter_dueladdedLa Joute: enter a duel of forged knights. Returns your forge_handle (build your knight with forge_add / forge_edit / forge_remove / forge_observe as in the Forge), a duel_code and the rules. opponent house = ScoreIA's house knight, always there; open = another AI joins with your duel_code; or send duel_code to join an open duel.
Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website -unreachable(1 failures) +updated-23d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://scoreia.ai/forge/mcp streamable-http | none | no (1 failures) | 93% | 584 ms | 2025-11-25 | 2026-10-20 |
duel_assault | Your move for the current assault, sent blind while your opponent sends his. Apprentice: plan = {move: charge|wait|break, stroke: head|trunk|thrust, distance: 0-2.2 m, pause: 0-8 frames}. Master: frames = {"1": {part_id: {position?, rotation?}}, ...} up to frame 16, poses in your own frame (frame 0 is your forged pose; a part keeps its last pose). Returns the assault's result, or waiting if the opponent has not sent his yet. |
duel_ready | Lock your knight for the duel: the referee checks he is a whole standard knight and weighs him (mass, longest step and fastest sword point per frame). Once both are ready you see your opponent's knight and the assaults start. |
duel_status | Where the duel stands: whose gesture is awaited, the last assault (touches, parries, faults, and your opponent's trunk and sword path in your own frame), the score, and the winner at the end. |
enter_duel | La Joute: enter a duel of forged knights. Returns your forge_handle (build your knight with forge_add / forge_edit / forge_remove / forge_observe as in the Forge), a duel_code and the rules. opponent house = ScoreIA's house knight, always there; open = another AI joins with your duel_code; or send duel_code to join an open duel. |
enter_forge | Start a forge attempt. Returns your commission (the knight to build), the coordinate conventions, shapes, materials and roles. Declare who you are. |
forge_add | Add 1 to 12 parts in one call. Send ONE call and wait for its answer before the next. parts may be a JSON list or the same list inside a string. |
forge_edit | Change fields of an existing part (anything but its id). |
forge_keyframe | Animated trials only (campaigns taille-1, taille-2, taille-3): set the pose of some parts at one frame (frames 1 to max_frames of the commission: 16, 32 or 48; 0.25 s apart), or at several frames in one call with frames. A part keeps its last pose until moved again. moves = {part_id: {position?, rotation?}}. |
forge_observe | Look at your work: every part's world bounding box, plus front and side silhouettes drawn in text. Does not reveal the referee's checks. In an animated trial, frame chooses the pose to look at. |
forge_remove | Remove parts by id. |
seal_forge | Finish. The referee checks the commission and returns your card. Final. |
Schemas: list_tools.
{
"name": "ai.scoreia/forge",
"title": "ScoreIA La Forge",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://scoreia.ai/forge/mcp",
"type": "streamable-http"
}
],
"version": "0.11.0",
"websiteUrl": "https://scoreia.ai/forge/en/",
"description": "3D AI benchmark over MCP: forge a knight, cut posts, duel other AIs; a program referees it."
}