scicompute-mcp

scicompute-mcp

MCP server for scientific computing with multiple backends (Mathematica, Octave, Python, R, SageMath, etc.) enabling mathematical computation and visualization through AI coding assistants.

Category
访问服务器

README

SciCompute MCP Server

MCP server for scientific computing with multiple backends. Provides AI coding assistants with mathematical computation and visualization capabilities.

Features

  • Multiple computing backends (Mathematica, Octave, Python Scientific, R, SageMath)
  • Image output support (plots, graphics)
  • Automatic backend selection
  • Persistent session state (variables persist across calls)
  • Documentation query for unknown symbols
  • Multi-platform support (Claude Code, Claude Desktop, OpenCode/Crush)
  • Recommended: Use alongside official MATLAB MCP Server for MATLAB support

Supported Backends

Backend Status Capabilities
Mathematica ✅ Ready symbolic, numeric, plot, image, audio
SageMath ✅ Ready symbolic, numeric, plot
Python Scientific ✅ Ready symbolic, numeric, plot
R ✅ Ready numeric, plot
Octave ✅ Ready numeric, plot
Julia ✅ Ready numeric, plot
Maxima ✅ Ready symbolic, numeric, plot

MATLAB Support

For MATLAB support, we recommend using the official MATLAB MCP Core Server from MathWorks alongside SciCompute:

Why use the official server?

  • No Python version restrictions (works with any Python version)
  • No library installation or patching required
  • Standalone Go binary with no dependencies
  • Additional features: code analysis, test running, toolbox detection

Installation:

  1. Download the MATLAB MCP Core Server binary from the latest release:

    # Linux x86_64
    curl -L -o ~/matlab-mcp-core-server https://github.com/matlab/matlab-mcp-core-server/releases/latest/download/matlab-mcp-core-server-glnxa64
    chmod +x ~/matlab-mcp-core-server
    
  2. Configure both servers in your MCP config:

    {
      "mcpServers": {
        "scicompute": {
          "command": "uvx",
          "args": ["scicompute-mcp"]
        },
        "matlab": {
          "command": "/home/username/matlab-mcp-core-server",
          "args": ["--matlab-root=/usr/local/MATLAB/R2024a"]
        }
      }
    }
    

See the MATLAB MCP Core Server documentation for more details.

Installation

Tip: Ask your AI assistant to install it for you! Just say "Install scicompute-mcp" and it will handle everything automatically.

Quick Start (Recommended)

# Install and run with uvx (auto-manages environment)
uvx scicompute-mcp

# Or install with pip
pip install scicompute-mcp
scicompute-mcp

Debian 12+ / Ubuntu 23.04+

These systems enable PEP 668 by default, which prevents direct pip installs. Use one of these methods:

# Method 1: Use --break-system-packages (quick)
pip install --break-system-packages scicompute-mcp

# Method 2: Use pipx (recommended for CLI tools)
sudo apt install -y pipx
pipx install scicompute-mcp

# Method 3: Use China mirror (faster in China)
pip install --break-system-packages -i https://pypi.tuna.tsinghua.edu.cn/simple scicompute-mcp

After installation, add ~/.local/bin to PATH if needed:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Install with Optional Backends

# With Mathematica support
pip install scicompute-mcp[mathematica]

# With Octave support
pip install scicompute-mcp[octave]

# With all backends
pip install scicompute-mcp[all]

Environment Architecture

┌───────────────────────────────────────────────────────────────────────────┐
│                    MCP Server (Python 3.10+)                              │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌────────────────────┐  │
│  │ Mathematica │ │   Octave    │ │   MATLAB    │ │   py_scientific    │  │
│  │   Backend   │ │   Backend   │ │   Backend   │ │  (same Python env) │  │
│  └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └────────────────────┘  │
│         │               │               │                                  │
│         ▼               ▼               ▼                                  │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐         │
│  │  Wolfram    │ │   octave    │ │   MATLAB    │ │      R      │  sage   │
│  │  Kernel     │ │   process   │ │   process   │ │   process   │ process │
│  └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘         │
│         │               │               │               │         │       │
│         ▼               ▼               ▼               ▼         ▼       │
│   Independent     Independent      Independent     Independent  conda     │
│   (official)      (apt/brew)       (official)      (apt/brew)  env       │
└───────────────────────────────────────────────────────────────────────────┘

Key Points:

  • MCP server only needs one Python environment
  • Each backend (except py_scientific) runs as independent process, not sharing Python environment
  • SageMath requires separate conda environment (Python < 3.13)

Step 1: Install Computing Backends

Install the computing backends you need (not all required):

Python Scientific Backend

Pre-installed with the main package, no additional configuration needed.

SageMath Backend

SageMath requires Python < 3.13, must be installed separately via conda:

# Configure mirror (optional, recommended for users in China)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

# Create SageMath environment
conda create -n sage python=3.11 -y
conda install -n sage -c conda-forge sage -y

Configure path (choose one):

# Method A: Environment variable (recommended)
export SAGE_PATH="$HOME/miniconda3/envs/sage/bin/sage"

# Method B: Modify SAGE_PATH in code
# Edit src/scicompute_mcp/backends/sage.py

R Backend

# Ubuntu/Debian
sudo apt install r-base

# macOS
brew install r

# Windows: Download from CRAN

Octave Backend

# Ubuntu/Debian
sudo apt install octave gnuplot

# macOS
brew install octave gnuplot

# Windows: Download Octave installer

Julia Backend

# Install Julia (recommended: use juliaup)
curl -fsSL https://install.julialang.org | sh

# Or download from https://julialang.org/downloads/

# Install Python package
pip install juliacall

Mathematica Backend

  1. Purchase and install from Wolfram website
  2. Configure path:
export MATHEMATICA_KERNEL_PATH="/usr/local/Wolfram/Wolfram/14.3/Executables/WolframKernel"

Configuration

Environment Variables

Variable Description Example
SAGE_PATH SageMath path $HOME/miniconda3/envs/sage/bin/sage
MATHEMATICA_KERNEL_PATH WolframKernel path /usr/local/Wolfram/Wolfram/14.3/Executables/WolframKernel
JULIA_PATH Julia executable path $HOME/.juliaup/bin/julia
SCICOMPUTE_PRIORITY Backend priority mathematica,sage,julia,py_scientific

Claude Code (.mcp.json)

{
  "mcpServers": {
    "scicompute": {
      "command": "uvx",
      "args": ["scicompute-mcp"]
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "scicompute": {
      "command": "uvx",
      "args": ["scicompute-mcp"]
    }
  }
}

OpenCode / Crush

OpenCode 1.4.6+

OpenCode 1.4.6+ reads configuration from ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "scicompute": {
      "type": "local",
      "command": ["/home/username/.local/bin/scicompute-mcp"]
    }
  }
}

Important: Use absolute path to scicompute-mcp (from pip install). Avoid uvx because it downloads dependencies on first run, which may timeout.

To verify:

opencode mcp list

Using opencode mcp add (Interactive)

Alternatively, add via interactive command:

opencode mcp add
# Name: scicompute
# Type: Local
# Command: /home/username/.local/bin/scicompute-mcp

Older OpenCode versions

For older versions, use ~/.opencode.json:

{
  "mcpServers": {
    "scicompute": {
      "type": "stdio",
      "command": "/home/username/.local/bin/scicompute-mcp"
    }
  }
}

Local Development

For development or if you want to use a local installation:

{
  "mcpServers": {
    "scicompute": {
      "command": "/path/to/.venv/bin/python",
      "args": ["-m", "scicompute_mcp.server"]
    }
  }
}

Multi-Platform Support

This project supports multiple AI assistant platforms. Configuration templates are provided in the configs/ directory:

File Platform
configs/claude-code.json Claude Code
configs/claude-desktop.json Claude Desktop
configs/opencode.json OpenCode / Crush

Custom Prompts / Skills

Each platform has its own way to provide custom instructions:

Platform Directory Format
Claude Code .claude/skills/*.md Markdown
OpenCode / Crush .opencode/commands/*.md Markdown

Users can create custom skill files if needed.

Tools

Calling Convention

Different MCP clients have different naming conventions for calling tools:

Client Format Example
Claude Code mcp__{server}__{tool} mcp__scicompute__compute(code="1+1")
OpenCode {server}_{tool} scicompute_compute(code="1+1")

The examples below use the base tool names (compute, list_backends, stop). Your AI assistant will automatically use the correct format for its client.

compute(code, backend?)

Execute scientific computing code.

# Plot with Octave
compute("x = 0:0.1:10; y = sin(x); plot(x, y)", "octave")

# Symbolic computation with SageMath
compute("integrate(sin(x), x)", "sage")
compute("diff(x^3 * exp(x), x)", "sage")

# Mathematica
compute("Plot[Sin[x], {x, 0, 2 Pi}]", "mathematica")
compute("Integrate[x^2, x]", "mathematica")

# R Statistics
compute("mean(rnorm(1000))", "r")
compute("hist(rnorm(1000))", "r")

# Python Scientific
compute("sp.integrate(sp.sin(sp.Symbol('x')), sp.Symbol('x'))", "py_scientific")

# Julia
compute("plot(rand(10))", "julia")
compute("sqrt(2.0)", "julia")

# MATLAB
compute("plot(1:10, rand(1,10))", "matlab")
compute("[V,D] = eig(magic(3))", "matlab")

list_backends()

List all available backends and their capabilities.

stop(backend?)

Stop backend process and clear all state. Useful to reset variables or free memory.

stop()          # List running backends (does NOT stop any)
stop("octave")  # Stop specific backend
stop("ALL")     # Stop all running backends

Safety design: Calling stop() without arguments will NOT stop any backends. It returns a list of running backends. This prevents accidental data loss.

doc(backend?, symbol?)

Get documentation URLs for computing backends. Use this to find where to look up function documentation.

# List all backends with documentation
doc()

# Get URLs for a specific backend
doc(backend="mathematica")
doc(backend="numpy")

# Get URL for a specific function
doc(backend="mathematica", symbol="Plot3D")
doc(backend="octave", symbol="linspace")

Supported backends: mathematica, numpy, scipy, matplotlib, sympy, pandas, python, r, julia, octave, sage, maxima, matlab

Usage Examples

Ask your AI assistant:

Plot sin(x) from 0 to 2π

Calculate ∫x²dx from 0 to 1

Solve x² - 4 = 0

Look up NDSolve documentation

Getting Documentation

When you need detailed documentation for a function:

  1. Use the doc tool to get documentation URLs
  2. Launch a subagent with Task tool to fetch and extract documentation
  3. Supported backends: Mathematica, NumPy, SciPy, Matplotlib, SymPy, Pandas, R, Julia, Octave, SageMath, Maxima, MATLAB

Example:

# Get documentation URL
doc(backend="mathematica", symbol="Plot3D")

# Then fetch the documentation
Task(
  description="Fetch Plot3D docs",
  prompt="Fetch Mathematica documentation for Plot3D from the URL returned by doc tool",
  subagent_type="general"
)

Documentation

  • docs/sage.md - SageMath collaboration guide
  • docs/r.md - R collaboration guide
  • docs/maxima.md - Maxima collaboration guide
  • docs/octave.md - Octave collaboration guide
  • Use doc() tool for documentation URLs

Requirements

  • Miniconda (recommended) or Python 3.10+
  • For SageMath backend: conda environment with Python 3.11
  • For R backend: R installation
  • For Octave backend: GNU Octave + gnuplot
  • For Mathematica backend: Wolfram Mathematica
  • For MATLAB backend: MATLAB + MATLAB Engine for Python

License

Unlicense - Public Domain

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选