Scientific Computation MCP Server

Scientific Computation MCP Server считает линейную алгебру и векторный анализ на естественном языке

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноТолько чтение

Что умеет

  • Создавать и хранить матрицы и тензоры
  • Выполнять операции над матрицами: обращение, транспонирование, разложения
  • Вычислять собственные значения, ранг и определитель
  • Считать градиент, дивергенцию, ротор и лапласиан
  • Строить график векторного поля

Какие данные видит

Сервер работает с данными, которые пользователь передаёт напрямую в запросе, хранит их временно в памяти сессии.

Нужен ли аккаунт

Не нужен: сервер работает без входа

Scientific Computation MCP Server соединяет ассистента с NumPy и SymPy для вычислений линейной алгебры и векторного анализа. Пользователь описывает задачу словами, а сервер создаёт матрицы и тензоры, выполняет операции над ними и строит векторные поля. Цель — сделать научные вычисления доступнее без написания кода.

Как подключить

Как подключить Scientific Computation MCP Server к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://scientific_computation_mcp--aman-amith-shastry.run.tools

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить Scientific Computation MCP Server к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://scientific_computation_mcp--aman-amith-shastry.run.tools

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить Scientific Computation MCP Server к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://scientific_computation_mcp--aman-amith-shastry.run.tools

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (26)

Технические названия из tools/list. Нужны только разработчикам.

create_tensor Creates a NumPy array (matrix) with a specified shape and values. Args: shape (list[int]): The shape of the resulting array as a tuple(e.g., (2, 3)). values (list[float]): A flat list of values to populate the array. name (str): The name of the tensor to be stored. Returns: Tensor: The stored tensor as nested lists. Raises: ValueError: If the number of values does not match the product of the shape.
view_tensor Returns an immutable view of a previously stored NumPy tensor from the in-memory tensor store. Args: name (str): The name of the tensor as stored in the in-store dictionary Returns: Tensor: The stored tensor as nested lists. Raises: ValueError: If the tensor name is not found in the store.
delete_tensor Deletes a tensor from the in-memory tensor store. Args: name (str): The name of the tensor to delete. Returns: str: Confirmation that the tensor was removed. Raises: ValueError: If the tensor name is not found in the store or if an error occurs during deletion.
add_matrices Adds two stored tensors element-wise, computing name_a + name_b. Args: name_a (str): The name of the first tensor. name_b (str): The name of the second tensor. Returns: Tensor: The result of element-wise addition. Raises: ValueError: If the tensor names are not found or shapes are incompatible.
subtract_matrices Subtracts one stored tensor from another element-wise, computing name_a - name_b. Args: name_a (str): The name of the tensor to subtract from (the minuend). name_b (str): The name of the tensor to subtract (the subtrahend). Returns: Tensor: The result of element-wise subtraction. Raises: ValueError: If the tensor names are not found or shapes are incompatible.
multiply_matrices Performs matrix multiplication between two stored tensors, computing name_a @ name_b. Args: name_a (str): The name of the first tensor. name_b (str): The name of the second tensor. Returns: Tensor: The result of matrix multiplication. Raises: ValueError: If either tensor is not found or their shapes are incompatible.
scale_matrix Scales a stored tensor by a scalar factor. Args: name (str): The name of the tensor to scale. scale_factor (float): The scalar value to multiply the tensor by. in_place (bool): If True, updates the stored tensor; otherwise, returns a new scaled tensor. Returns: Tensor: The scaled tensor. Raises: ValueError: If the tensor name is not found in the store.
matrix_inverse Computes the inverse of a stored square matrix. Args: name (str): The name of the tensor to invert. Returns: Tensor: The inverse of the matrix. Raises: ValueError: If the matrix is not found, is not square, or is singular (non-invertible).
transpose Computes the transpose of a stored tensor. Args: name (str): The name of the tensor to transpose. Returns: Tensor: The transposed tensor. Raises: ValueError: If the tensor name is not found in the store.
determinant Computes the determinant of a stored square matrix. Args: name (str): The name of the matrix. Returns: float: The determinant of the matrix. Raises: ValueError: If the matrix is not found or is not square.
rank Computes the rank of a stored tensor. Args: name (str): The name of the tensor. Returns: int | list[int]: The rank of the matrix. Raises: ValueError: If the tensor name is not found in the store.
compute_eigen Computes the eigenvalues and right eigenvectors of a stored square matrix. Args: name (str): The name of the tensor to analyze. Returns: dict: A dictionary with keys: - 'eigenvalues': list of eigenvalues - 'eigenvectors': list of right eigenvectors, one per column of the result Raises: ValueError: If the tensor is not found or is not a square matrix.
qr_decompose Computes the QR decomposition of a stored matrix. Decomposes the matrix A into A = Q @ R, where Q is an orthogonal matrix and R is an upper triangular matrix. Args: name (str): The name of the matrix to decompose. Returns: dict: A dictionary with keys: - 'q': the orthogonal matrix Q, as nested lists - 'r': the upper triangular matrix R, as nested lists Raises: ValueError: If the matrix is not found or decomposition fails.
svd_decompose Computes the Singular Value Decomposition (SVD) of a stored matrix. Decomposes the matrix A into A = U @ S @ V^T, where U and V^T are orthogonal matrices, and S is a diagonal matrix of singular values. Args: name (str): The name of the matrix to decompose. Returns: dict: A dictionary with keys: - 'u': the left singular vectors, as nested lists - 's': the singular values, as a flat list - 'v_t': the right singular vectors transposed, as nested lists Raises: ValueError: If the matrix is not found or decomposition fails.
find_orthonormal_basis Finds an orthonormal basis for the column space of a stored matrix using QR decomposition. Args: name (str): The name of the matrix. Returns: list[list[float]]: A list of orthonormal basis vectors. Raises: ValueError: If the matrix is not found or decomposition fails.
change_basis Changes the basis of a stored square matrix. Args: name (str): Name of the matrix in the tensor store. new_basis (list[list[float]]): Columns are new basis vectors. Returns: Tensor: Representation of the matrix in the new basis. Raises: ValueError: If the matrix name is not found or non-invertible.
vector_project Projects a stored vector onto another vector. Args: name (str): Name of the stored vector to project. new_vector (list[float]): The vector to project onto. Returns: Tensor: The projection result vector. Raises: ValueError: If the vector name is not found or projection fails.
vector_dot_product Computes the dot product between two stored vectors. Args: name_a (str): Name of the first vector in the tensor store. name_b (str): Name of the second vector in the tensor store. Returns: float: Scalar result of the dot product. Raises: ValueError: If either vector is not found or if the dot product computation fails.
vector_cross_product Computes the cross product of two stored vectors. Args: name_a (str): Name of the first vector in the tensor store. name_b (str): Name of the second vector in the tensor store. Returns: Tensor: Vector result of the cross product. Raises: ValueError: If either vector is not found or if the cross product computation fails.
gradient Computes the symbolic gradient of a scalar function. Args: f_str (str): A string representing a scalar function (e.g., "x**2 + y*z"). Returns: str: A string representation of the symbolic gradient as a vector.
curl Computes the symbolic curl of a vector field, optionally evaluated at a point. Args: f_str (str): A string representing the vector field in list format (e.g., "[x+y, x, 2*z]"). point (list[float], optional): A list of coordinates [x, y, z] to evaluate the curl numerically. Returns: dict: A dictionary with the symbolic curl as a string, and optionally the evaluated vector.
divergence Computes the symbolic divergence of a vector field, optionally evaluated at a point. Args: f_str (str): A string representing the vector field in list format (e.g., "[x+y, x, 2*z]"). point (list[float], optional): A list of coordinates [x, y, z] to evaluate the divergence numerically. Returns: dict: A dictionary with the symbolic divergence as a string, and optionally the evaluated scalar.
laplacian Computes the Laplacian of a scalar or vector field symbolically. Args: f_str (str): Scalar function as "x**2 + y*z" or vector "[Fx, Fy, Fz]". is_vector (bool): Set True to compute vector Laplacian. Returns: str: Symbolic result of the Laplacian—scalar or list of 3 components.
directional_deriv Computes symbolic directional derivative of scalar field along a vector direction. Args: f_str (str): Expression like "x*y*z". u (list[float]): Direction vector [vx, vy, vz]. unit (bool): True if u should be normalized before calculating directional derivative. Set to True by default. Returns: str: Symbolic result as string.
plot_vector_field Plots a 3D vector field from a string "[u(x,y,z), v(x,y,z), w(x,y,z)]" Args: f_str: string representation of 3D field, e.g. "[z, -y, x]". bounds: (xmin, xmax, ymin, ymax, zmin, zmax) n: grid resolution per axis Returns: Displayed Matplotlib 3D quiver plot (no image return needed)
plot_function Plots a 2D or 3D mathematical function from a symbolic expression string. Args: expr_str: string representation of a function in x or x and y, e.g. "x**2" or "sin(sqrt(x**2 + y**2))" xlim: (xmin, xmax) range for x-axis ylim: (ymin, ymax) range for y-axis (used in 2D or 3D) grid: resolution of the plot grid Returns: A rendered Image of the function using Matplotlib. - 2D plot if the expression contains only x - 3D surface plot if the expression contains both x and y