Skip to main content

MCP Server for mathematical computation and plotting.

Project description

Fermat MCP

smithery badge

Verified on MseeP

This project provides a FastMCP server for mathematical computations, including numerical and symbolic calculations, as well as plotting.

Modules

1. mpl_mcp - Matplotlib Integration

Feature Description
plot_barchart Plots bar charts of given data values
plot_scatter Creates scatter plots from data points
plot_chart Plots line, scatter, or bar charts
plot_stem Creates stem plots for discrete data
plot_stack Generates stacked area/bar charts
eqn_chart Plots mathematical equations

2. numpy_mcp - NumPy Integration

Category Operations
Basic Math add, sub, mul, div, power, abs, exp, log, sqrt
Trigonometric sin, cos, tan
Statistics mean, median, std, var, min, max, argmin, argmax, percentile
Linear Algebra dot, matmul, inv, det, eig, solve, svd
Matrix Operations create, zeros, ones, full, arange, linspace
Array Manipulation reshape, flatten, concatenate, transpose, stack

3. sympy_mcp - SymPy Integration

Category Operations
Algebra simplify, expand, factor, collect
Calculus diff, integrate, limit, series
Equations solve, solveset, linsolve, nonlinsolve
Matrix Operations create, det, inv, rref, eigenvals

Setup

Requirements

Clone the repository

git clone https://github.com/abhiphile/fermat-mcp

Visual Studio Code, Windsurf

You can find the mcp.json file in the MCP: Open User Configuration or MCP: Open Workspace Configuration

vs-code-1

Add the following to your mcp.json:

{
  "mcpServers": {
    "fmcp": {
      "command": "bash",
      "args": ["MCP_SERVER_ABSOLUTE_PATH/setup.sh"],
      "description": "fmcp server is for mathematical computations, including numerical and symbolic calculations, as well as plotting."
    }
  }
}

Claude (Anthropic)

If you're using Claude or the Anthropic MCP client, add this working MCP configuration to your mcp.json (update the directory path to your local clone):

{
  "mcpServers": {
    "fmcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/home/ty/Repositories/fermat-mcp",
        "run",
        "server.py"
      ]
    }
  }
}

Gemini CLI

  • Open your Gemini settings JSON located in ~/.gemini/settings.json where ~ is your home directory.

  • Add the following to your settings.json:

{
  "mcpServers": {
    "fmcp": {
      "command": "bash",
      "args": ["MCP_SERVER_ABSOLUTE_PATH/setup.sh"],
      "description": "fmcp server is for mathematical computations, including numerical and symbolic calculations, as well as plotting."
    }
  }
}

Installing via Smithery

To install Fermat MCP for local usage automatically via Smithery:

npx -y @smithery/cli install @abhiphile/fermat-mcp --client gemini

Example Usage

  • Using Gemini CLI
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│  > Can you use fmcp server and using numpy method find the eigen values of this 8*8 matrix,                  |
│    2 1 3 1 1 8 4 2                                                                                           |
│    6 6 0 7 1 4 6 1                                                                                           │
│    9 2 1 8 7 9 9 0                                                                                           │
│    2 5 6 6 9 8 0 1                                                                                           │
│    1 3 6 2 3 8 8 1                                                                                           │
│    9 4 2 2 1 2 2 9                                                                                           │
│    8 6 4 4 2 0 2 8                                                                                           │
│    0 0 0 6 6 7 5 6                                                                                           │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

 ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
 │ ✔  numpy_mcp_numerical_operation (fmcp MCP Server) {"a":[[2,1,3,1,1,8,4,2],[6,6,0,7,1,4,6,1],[9,2,1,8,7,9,9,0],[2,5,6,6,9,8,0,1],[1,3,… │
 │                                                                                                                                         │
 │    {"eigenvalues":["32.077244457548815+0j","-11.531090644775198+0j","-6.6653982146786195+0j","0.6715984762411508+3.37024850             │
 │    10270413j","0.6715984762411508-3.3702485010270413j","4.541270555490195+2.776364664923869j","4.541270555490195-2.77636466             │
 │    4923869j","3.6935063384423428+0j"],"eigenvectors":[["-0.23263835483680192+0j","-0.2264723575289234+0j","-0.4308391916391             │
 │    0195+0j","-0.012346573390129022+0.17748655663058255j","-0.012346573390129022-0.17748655663058255j","-0.21221572277027187             │
 │    +0.3524396218277479j","-0.21221572277027187-0.3524396218277479j","0.3451499664861578+0j"],["-0.31955742545335186+0j","-0             │
 │    .2569860493445581+0j","0.05691886770041556+0j","-0.35591013681869693-0.2242364092694275j","-0.35591013681869693+0.224236             │
 │    4092694275j","0.1932161673963751-0.39527849111641133j","0.1932161673963751+0.39527849111641133j","-0.7979681696063214+0j             │
 │    "],["-0.46626263247473404+0j","-0.4684914620112376+0j","0.5469400556350749+0j","0.34325164099973565+0.06607019711949293j             │
 │    ","0.34325164099973565-0.06607019711949293j","0.21312270185159682+0.28822307710358636j","0.21312270185159682-0.288223077             │
 │    10358636j","0.42707422750984786+0j"],["-0.41589316441674523+0j","0.2291771012892302+0j","0.09410792992600435+0j","0.6375             │
 │    92441360358+0j","0.637592441360358+-0j","0.46446646137729414+0j","0.46446646137729414+-0j","0.08171661775583623+0j"],["-             │
 │    0.35812884189789035+0j","-0.26551071423139044+0j","-0.649979374400915+0j","-0.2999153430497845+0.20110182336747695j","-0             │
 │    .2999153430497845-0.20110182336747695j","0.04424367733961273-0.020400357434930304j","0.04424367733961273+0.0204003574349             │
 │    30304j","-0.037276545325188024+0j"],["-0.3042416233100104+0j","0.4027405071320744+0j","0.2343447346668298+0j","-0.119224             │
 │    87219398595+0.10317726668781271j","-0.11922487219398595-0.10317726668781271j","-0.3387759141362585+0.15790241128043445j"             │
 │    ,"-0.3387759141362585-0.15790241128043445j","0.11473144194899779+0j"],["-0.35389732755448017+0j","0.5359362131480812+0j"             │
 │    ,"0.13989902586074168+0j","-0.16008513226461316-0.26111873108374495j","-0.16008513226461316+0.26111873108374495j","0.055             │
 │    729749650881726-0.22748184206919145j","0.055729749650881726+0.22748184206919145j","-0.19838514696566653+0j"],["-0.327615             │
 │    5213691367+0j","-0.30122843153433887+0j","0.07858579556736099+0j","0.00042251379361638556-0.11670182367986544j","0.00042             │
 │    251379361638556+0.11670182367986544j","-0.18590228871569267-0.2479130526139182j","-0.18590228871569267+0.247913052613918             │
 │    2j","-0.03374593856285834+0j"]]}                                                                                                     │
 ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ Of course, I can do that. Here are the eigenvalues for the given matrix:

  32.077244457548815
  -11.531090644775198
  -6.6653982146786195
  0.6715984762411508 + 3.3702485010270413j
  0.6715984762411508 - 3.3702485010270413j
  4.541270555490195 + 2.776364664923869j
  4.541270555490195 - 2.776364664923869j
  3.6935063384423428
  • Using Visual Studio Code, Windsurf Here the task was to plot both x**2 and sin(x) in the same plot. GUI Demo 1-2 GUI Demo 2-2

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

iflow_mcp_abhiphile_fermat_mcp-0.1.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file iflow_mcp_abhiphile_fermat_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_abhiphile_fermat_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_abhiphile_fermat_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c68e433c817c03ec774ae52c5247645dc0fc8ffffe3d9fe00041286214bd53fe
MD5 5616371b5c9cafc2d5aeb7c2626a2fd7
BLAKE2b-256 d954049badb716c1acec7bc6ea1f9b580103a2494ddda7b02b8565a7271c79ad

See more details on using hashes here.

File details

Details for the file iflow_mcp_abhiphile_fermat_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_abhiphile_fermat_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_abhiphile_fermat_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2cf6711178d5efe4f512ef52178ba9d57bdf6ba9ac4c27e62c7f1371b0142c95
MD5 5952dfa75dcb7dba207bcc7cef1f3fb4
BLAKE2b-256 db21d1ce3fed31c4c3f9834584d40fc7a9f9a5d38f3ee82dea4fcf1d20f2718c

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