Skip to main content
Glama
aac6fef

Mathematica MCP Server

by aac6fef
README.md
# Mathematica MCP Server

This project provides a Model Context Protocol (MCP) server for interacting with a Wolfram Mathematica kernel. It allows Large Language Models (LLMs) to execute Wolfram Language code in a secure, session-based environment.

The `animalid` folder contains a simple tool for generating unique, animal-based identifiers. Since LLMs often fail to copy UUIDs correctly, this tool replaces them with animal-themed IDs that are more likely to be transcribed accurately.


## Tools Provided

1.  `create_mathematica_session`: Initializes a new Wolfram Language session and returns a unique session ID.
2.  `execute_mathematica_code`: Executes Wolfram Language code within a specified session.
3.  `close_mathematica_session`: Terminates a session and releases its resources.

## Prerequisites

- Python 3.10 or higher.
- `uv` Python package manager. ([Installation guide](https://astral.sh/uv/install.sh))
- A local installation of the Wolfram Engine or Mathematica. The `wolframclient` library requires this to function.

## Installation & Setup


1.  **Set the Security Key:**
    
    This server uses a secret key to generate secure session IDs. You **must** set this as an environment variable.
    
    ```bash
    export ANIMALID_SECRET_KEY='your-super-secret-and-long-key-here'
    ```
    
    **Note:** Do not use a weak key or hardcode it in the script.

## Usage

To use this server, you need to connect it to an MCP-compatible client, such as Claude for Desktop.

1.  **Configure the MCP Client:**
    
    Open your client's MCP configuration file (e.g., `claude_desktop_config.json` for Claude for Desktop) and add the following server configuration.
    
    **Important:** Replace `/path/to/your/project/my_mcp` with the absolute path to this project's directory on your system.
    
    ```json
    {
      "mcpServers": {
        "mathematica": {
          "command": "uv",
          "args": [
            "--directory",
            "/path/to/your/project/my_mcp",
            "run",
            "wolfram_mathematica.py"
          ],
           "env": {
                "ANIMALID_SECRET_KEY": "default-secret-key-for-dev"
              }
        }
      }
    }
    ```
    
    You may need to use the full path to the `uv` executable in the `command` field if it's not in your system's PATH. You can find it by running `which uv` (macOS/Linux) or `where uv` (Windows).


## screenshot
![screenshot](screenshot/1.png)

TDQS

A4.8/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: create_mathematica_session initiates sessions, execute_mathematica_code runs code within them, and close_mathematica_session terminates them. The descriptions reinforce these distinct roles, making misselection unlikely.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with 'mathematica' as a prefix (create_mathematica_session, execute_mathematica_code, close_mathematica_session). The naming is predictable and enhances readability across the set.

Tool Count5/5

With 3 tools, this server is well-scoped for its purpose of managing Mathematica sessions and code execution. Each tool earns its place by covering the essential lifecycle: create, execute, and close, without unnecessary bloat or gaps.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for the domain of Wolfram Language sessions: creation, execution, and termination. There are no obvious gaps, as agents can manage sessions end-to-end without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues