Labsco
MCP SERVER

Scientific Computation MCP

by Aman-Amith-Shastry

Keep matrices and vectors in a named store, then run the algebra on them by name — decompositions, eigenvalues, gradients, curl, and plots come back without you re-typing the numbers.

Physical Sciences & Scientific Computing
Summary
Tensors live between calls, so a long chain of steps stays readable.

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.

What it is

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.

What you get
  • 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`
Requirements

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).

Setup effort

One command — smithery mcp add @aman-amith-shastry/scientific_computation_mcp --client claude