Most numeric helpers make you resend the whole matrix on every call, which is exactly where multi-step work goes wrong. Here a matrix is named once and every later step points at that name, so a decomposition can feed a change of basis with nothing re-transcribed. The price of that convenience is that the store is process memory: one instance only, and if a host puts the process to sleep the tensors go with it.
An MCP server for matrix and vector work that holds tensors in a per-session store between calls. You create a tensor once under a name; every later operation refers to that name rather than re-sending the numbers. It covers matrix arithmetic and decompositions, vector calculus on written-out expressions, and PNG plots.
- Named tensors created, displayed and removed from the store — `create_tensor`, `view_tensor`, `delete_tensor`
- Matrix arithmetic and reshaping by name, with compatibility checked for you — `add_matrices`, `subtract_matrices`, `multiply_matrices`, `scale_matrix`, `transpose`
- The numbers that characterise a matrix — `determinant`, `rank`, `matrix_inverse`
- Decompositions and bases, including an orthonormal basis for the image — `compute_eigen`, `qr_decompose`, `svd_decompose`, `find_orthonormal_basis`, `change_basis`
- Vector operations between two stored vectors — `vector_project`, `vector_dot_product`, `vector_cross_product`
- Vector calculus from an expression written as text, such as `x^2 + 2xyz + zy^3` — `gradient`, `curl`, `divergence`, `laplacian`, `directional_deriv`
- A rendered picture of a function or a field, returned as an image — `plot_function`, `plot_vector_field`
No account and no key. The server speaks streamable HTTP. Adding it from Smithery needs the Smithery CLI on Node 20+ and the lowercase namespace: `smithery mcp add @aman-amith-shastry/scientific_computation_mcp --client claude`. Mixed case resolves to an empty record with no tools rather than failing, so a capitalised name looks like a server with no capabilities. To run it locally: `uv sync`, then `uv run src/main.py` — the MCP endpoint sits at `/mcp` and a liveness probe at `/health` on port 8081, with `PORT`, `HOST`, `MCP_PATH`, `ALLOWED_ORIGINS` and `LOG_LEVEL` available as overrides. The pyproject name is `numpy-mcp` (0.2.0).
One command — smithery mcp add @aman-amith-shastry/scientific_computation_mcp --client claude
