Tools for agents: Exact tetrahedron volume and centroid

Compute signed solid volume, orientation and uniform tetrahedron centroid with exact rational arithmetic.

Connect with MCP

{
  "mcpServers": {
    "super-agent-tools": {
      "url": "https://app.getsupers.com/sites/agent-tetrahedron/mcp"
    }
  }
}
Streamable HTTP · No API key · Stateless

Use this URL in any client supporting remote Streamable HTTP MCP. Calls return structured JSON; inputs are processed without persistence.

Call measure_tetrahedron

Supply exactly four ordered 3D vertices A,B,C,D. Coordinates are integers or quoted finite decimal/fraction strings; JSON floats and booleans fail. Signed volume is det(B-A,C-A,D-A)/6, using the right-handed coordinate convention; swapping any two vertices reverses its sign. Absolute volume uses cubed input units. Orientation is positive, negative or degenerate based on the exact determinant, with no tolerance. For a nondegenerate tetrahedron, solid_centroid is the arithmetic mean of its four vertices and assumes uniform density. Coplanar or repeated vertices are accepted as degenerate with volume zero and solid_centroid=null; vertex_mean is still returned but is not advertised as the centroid of a lower-dimensional hull. Outputs are reduced rational strings. This measures one tetrahedron, not a general mesh volume, surface centroid, convex-hull repair or density-weighted mass. Near-degenerate rational inputs retain their exact nonzero volume.

Input and output schemas
{
  "name": "measure_tetrahedron",
  "title": "Exact tetrahedron volume and centroid",
  "description": "Measure signed and absolute tetrahedral volume and centroid using exact rational coordinates; classify degenerate tetrahedra explicitly.",
  "inputSchema": {
    "properties": {
      "vertices": {
        "maxItems": 4,
        "minItems": 4,
        "prefixItems": [
          {
            "maxItems": 3,
            "minItems": 3,
            "prefixItems": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            ],
            "type": "array"
          },
          {
            "maxItems": 3,
            "minItems": 3,
            "prefixItems": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            ],
            "type": "array"
          },
          {
            "maxItems": 3,
            "minItems": 3,
            "prefixItems": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            ],
            "type": "array"
          },
          {
            "maxItems": 3,
            "minItems": 3,
            "prefixItems": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            ],
            "type": "array"
          }
        ],
        "title": "Vertices",
        "type": "array"
      }
    },
    "required": [
      "vertices"
    ],
    "title": "measure_tetrahedronArguments",
    "type": "object"
  },
  "outputSchema": {
    "additionalProperties": true,
    "title": "measure_tetrahedronDictOutput",
    "type": "object"
  },
  "icons": null,
  "annotations": {
    "title": null,
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "meta": null,
  "execution": null
}

Run the example to see the actual result.

HTTP alternative

POST https://app.getsupers.com/sites/agent-tetrahedron/call
Content-Type: application/json

{
  "vertices": [
    [
      0,
      0,
      0
    ],
    [
      2,
      0,
      0
    ],
    [
      0,
      3,
      0
    ],
    [
      0,
      0,
      4
    ]
  ]
}

The HTTP and MCP interfaces execute the same implementation. Validation errors are returned explicitly. See the tool notes above for its supported inputs and behavior.