Skip to main content

Full GUI control of Mathematica notebooks and kernel via Model Context Protocol

Project description

Mathematica MCP

Give your AI Agent the power of Wolfram Language.

License: MIT Python 3.10+ Mathematica 14+ CI Repo Published


Who This Is For

Audience Use Case
Researchers using LLM coding assistants Run Mathematica from Claude/Cursor/VS Code without leaving your editor
Data scientists Import, transform, and visualize data through natural language
Educators Create interactive Mathematica notebooks through AI conversation
Not for Production web services, untrusted multi-tenant environments

What is this?

An MCP Server that gives AI agents a direct interface to your local Wolfram Engine. 79 tools across configurable profiles for symbolic reasoning, visualization, and notebook control.

Watch it in action

Mathematica MCP Demo


Quick Start

Prerequisites

Before installing, you need:

  1. Mathematica 14.0+ with wolframscript in your PATH

    • Download Mathematica
    • macOS: Add to ~/.zshrc: export PATH="/Applications/Mathematica.app/Contents/MacOS:$PATH"
  2. uv package manager

    curl -LsSf https://astral.sh/uv/install.sh | sh
    

One-Command Setup (Recommended)

# For Claude Desktop
uvx mathematica-mcp-full setup claude-desktop

# For Cursor
uvx mathematica-mcp-full setup cursor

# For VS Code (requires GitHub Copilot Chat extension)
uvx mathematica-mcp-full setup vscode

# For OpenAI Codex CLI
uvx mathematica-mcp-full setup codex

# For Google Gemini CLI
uvx mathematica-mcp-full setup gemini

# For Claude Code CLI
uvx mathematica-mcp-full setup claude-code

# Optional: select a tool profile (default is "full")
uvx mathematica-mcp-full setup claude-desktop --profile notebook

Then restart Mathematica and your editor. Done!

VS Code: Alternative setup via Command Palette

Prerequisite: GitHub Copilot Chat extension must be installed - MCP support is built into Copilot.

  1. Press Cmd+Shift+P (Mac) / Ctrl+Shift+P (Windows)
  2. Type "MCP" → Select "MCP: Add Server"
  3. Choose "Command (stdio)"not "pip"
  4. Enter command: uvx
  5. Enter args: mathematica-mcp-full
  6. Name it: mathematica
  7. Choose scope: Workspace or User

Alternative: Interactive Installer

bash <(curl -sSL https://raw.githubusercontent.com/AbhiRawat4841/mathematica-mcp/main/install.sh)

Verify Installation

uvx mathematica-mcp-full doctor

Tip: If you encounter errors after updating, clear the cache:

uv cache clean mathematica-mcp-full && uvx mathematica-mcp-full setup <client>

Tool Profiles

Choose how many tools to expose: math (~25 tools), notebook (~44), or full (~79, default). Pass --profile during setup or set MATHEMATICA_PROFILE env var. See the Technical Reference for details.


Manual Installation

Click to expand manual setup instructions
  1. Clone & Install:

    git clone https://github.com/AbhiRawat4841/mathematica-mcp.git
    cd mathematica-mcp
    uv sync
    
  2. Install Mathematica Addon:

    wolframscript -file addon/install.wl
    

    Restart Mathematica after this step.

  3. Configure your editor (replace path with your actual path):

    Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

    {
      "mcpServers": {
        "mathematica": {
          "command": "uv",
          "args": ["--directory", "/path/to/mathematica-mcp", "run", "mathematica-mcp-full"]
        }
      }
    }
    

    Cursor (~/.cursor/mcp.json):

    {
      "mcpServers": {
        "mathematica": {
          "command": "uv",
          "args": ["--directory", "/path/to/mathematica-mcp", "run", "mathematica-mcp-full"]
        }
      }
    }
    

    VS Code (~/.vscode/mcp.json):

    Note: VS Code MCP requires GitHub Copilot Chat extension.

    {
      "servers": {
        "mathematica": {
          "type": "stdio",
          "command": "uv",
          "args": ["--directory", "/path/to/mathematica-mcp", "run", "mathematica-mcp-full"]
        }
      }
    }
    

📖 See the Installation Guide for troubleshooting and advanced setup.


What You Can Do

1. Solve and Verify a Calculus Problem

"Integrate x^2 sin(x) from 0 to pi, then verify by differentiating."

Agent calls: execute_code("Integrate[x^2 Sin[x], {x, 0, Pi}]")
=> -4 + Pi^2

Agent calls: verify_derivation(
  steps=["Integrate[x^2 Sin[x], {x, 0, Pi}]", "-4 + Pi^2"]
)
=> {"success": true, "report": "Step 1 → 2: ✓ VALID\n...\n**Summary**: All steps are valid!", "raw_data": {...}, "format": "text"}

2. Generate a 3D Plot

"Plot the sombrero function and export it."

Agent calls: execute_code("Plot3D[Sinc[Sqrt[x^2 + y^2]], {x, -4, 4}, {y, -4, 4}]")
=> [3D surface plot rendered as image]

Agent calls: export_graphics("Plot3D[Sinc[Sqrt[x^2+y^2]], {x,-4,4}, {y,-4,4}]", "/tmp/sombrero.png", "PNG")

3. Read and Analyze a Notebook

"Show me the outline of SinPlot.nb, then extract the code cells."

Agent calls: read_notebook("SinPlot.nb", output_format="outline")
=> {"success": true, "format": "outline", "section_count": 0, "sections": []}

Agent calls: read_notebook("SinPlot.nb", output_format="json")
=> {"success": true, "cell_count": 2, "code_cells": 1, "cells": [{"style": "Input", "content": "Plot[Sin[x], {x, 0, 2 Pi}]"}, ...]}

Beyond these workflows: symbolic computation, 2D/3D visualization, notebook operations, Wolfram Alpha queries, data import/export (250+ formats), and debugging tools. See the Technical Reference for the full tool list.


Execution Modes

Control where and how your results appear by using these keywords in your prompt:

Keyword Mode What happens
"calculate", "compute", "what is" Inline Result appears as text in chat
"plot", "show", "in notebook" Notebook Executes in the current Mathematica notebook
"new notebook", "fresh notebook" New notebook Creates a fresh notebook, then executes there
"interactive", "manipulate", "dynamic" Interactive Notebook with frontend mode (sliders, animations)

Examples

"Calculate the integral of x^3 from 0 to 1"
  → Result appears inline in chat

"Plot Sin[x] from 0 to 2π"
  → Plot appears in current Mathematica notebook

"In new notebook: integrate 1/x^5 + x^7 and plot the integration region"
  → Fresh notebook is created with the work

"Interactive: Manipulate a slider for Plot[Sin[n x], {x, 0, 2π}]"
  → Dynamic UI with sliders in notebook

If you don't include a keyword, the default mode depends on your tool profile: notebook profiles default to notebook output, math profile defaults to inline.

Tip: These modes are also available as MCP prompts (calculate, notebook, new_notebook, interactive) in clients that support prompt selection. Use the quickstart prompt to see this reference at any time.


Documentation


License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mathematica_mcp_full-0.7.7.tar.gz (93.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mathematica_mcp_full-0.7.7-py3-none-any.whl (105.7 kB view details)

Uploaded Python 3

File details

Details for the file mathematica_mcp_full-0.7.7.tar.gz.

File metadata

  • Download URL: mathematica_mcp_full-0.7.7.tar.gz
  • Upload date:
  • Size: 93.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mathematica_mcp_full-0.7.7.tar.gz
Algorithm Hash digest
SHA256 e9449e2d1ed1a3c0a8a4ee8acd7b62f4a01c90f80e2f425b64ec7d9103f7b317
MD5 80c90a472280524f045675486d8b6414
BLAKE2b-256 d2d7dd28be3e74227b1655904fe9e25c9939e0bee30f21e15333ba2a5438f0a2

See more details on using hashes here.

File details

Details for the file mathematica_mcp_full-0.7.7-py3-none-any.whl.

File metadata

  • Download URL: mathematica_mcp_full-0.7.7-py3-none-any.whl
  • Upload date:
  • Size: 105.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mathematica_mcp_full-0.7.7-py3-none-any.whl
Algorithm Hash digest
SHA256 9d3a1bd515c5fd71d5511f3852dce55b65c9195ef0e92707c527cce3c7b253ce
MD5 4f91255e2f1c720f4ea61a450f1ccfe7
BLAKE2b-256 37022980f5b2e779f84984e7d00b3a2b15b54a3592248a49c3b665d676da086d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page