Home/Tools/matrix_multiply

Matrix multiply

Matrix product A · B; column count of A must equal row count of B.

Endpoint: POST /api/v1/matrix_multiply

When to use

Matrix product `A · B`. Column count of `A` must equal row count of `B`.

Input schema

Validated server-side with Zod. The same schema feeds OpenAPI and the MCP tool list.

{
  "type": "object",
  "properties": {
    "a": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "minItems": 1
      },
      "minItems": 1,
      "description": "Row-major matrix; entries may be numbers or expression strings"
    },
    "b": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "minItems": 1
      },
      "minItems": 1,
      "description": "Row-major matrix; entries may be numbers or expression strings"
    }
  },
  "required": [
    "a",
    "b"
  ],
  "additionalProperties": false
}

Response shape

All tools return { ok: true, result } on success and { ok: false, error } on failure. The result object contains:

FieldTypeDescription
matrixstring[][]Product matrix, row-major.

Example

Request

{
  "a": [
    [
      1,
      2
    ],
    [
      3,
      4
    ]
  ],
  "b": [
    [
      5,
      6
    ],
    [
      7,
      8
    ]
  ]
}

Response

{
  "ok": true,
  "result": {
    "matrix": [
      [
        "19",
        "22"
      ],
      [
        "43",
        "50"
      ]
    ]
  }
}

curl

curl -X POST https://tools.aieo.se/api/v1/matrix_multiply \
  -H 'Content-Type: application/json' \
  -d '{"a":[[1,2],[3,4]],"b":[[5,6],[7,8]]}'

MCP call (JSON-RPC)

MCP clients call this tool as tools/call against /api/mcp:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "matrix_multiply",
    "arguments": {
      "a": [
        [
          1,
          2
        ],
        [
          3,
          4
        ]
      ],
      "b": [
        [
          5,
          6
        ],
        [
          7,
          8
        ]
      ]
    }
  }
}

Common errors

  • Incompatible shapes.
    Nerdamer throws a dimension-mismatch error.
    {
      "a": [
        [
          1,
          2
        ]
      ],
      "b": [
        [
          3,
          4
        ]
      ]
    }
  • A required field is missing or has the wrong type.
    Zod validation error, e.g. `Required` or `Expected string, received number`.
  • Nerdamer cannot parse the expression (unbalanced parens, unknown function, stray characters).
    `Unexpected token …` or `… is not a valid expression`.