返回 MCP 目录
public公开dns本地运行

fermat-mcp

Fermat MCP是一个提供数学计算服务的FastMCP服务器,支持数值计算、符号计算和绘图功能,集成了Matplotlib、NumPy和SymPy等库。

article

README

🚀 Fermat MCP

本项目提供了一个用于数学计算的FastMCP服务器,支持数值计算、符号计算以及绘图功能。

smithery徽章

✨ 主要特性

1. mpl_mcp - Matplotlib集成

| 特性 | 描述 | |------|------| | plot_barchart | 绘制给定数据值的柱状图 | | plot_scatter | 根据数据点创建散点图 | | plot_chart | 绘制折线图、散点图或柱状图 | | plot_stem | 为离散数据创建杆状图 | | plot_stack | 生成堆叠面积图或堆叠柱状图 | | eqn_chart | 绘制数学方程的图形 |

2. numpy_mcp - NumPy集成

| 类别 | 操作 | |------|------| | 基础数学 | 加法、减法、乘法、除法、幂运算、绝对值、指数、对数、平方根 | | 三角函数 | 正弦、余弦、正切 | | 统计 | 均值、中位数、标准差、方差、最小值、最大值、最小值索引、最大值索引、百分位数 | | 线性代数 | 点积、矩阵乘法、逆矩阵、行列式、特征值、求解线性方程组、奇异值分解 | | 矩阵操作 | 创建矩阵、全零矩阵、全一矩阵、填充矩阵、等差数列、等间距数列 | | 数组操作 | 重塑形状、扁平化、拼接、转置、堆叠 |

3. sympy_mcp - SymPy集成

| 类别 | 操作 | |------|------| | 代数 | 化简、展开、因式分解、合并同类项 | | 微积分 | 求导、积分、极限、级数展开 | | 方程求解 | 求解方程、解集求解、线性方程组求解、非线性方程组求解 | | 矩阵操作 | 创建矩阵、行列式、逆矩阵、行最简形、特征值 |

📦 安装指南

要求

  • Python 3.12 或更高版本(要安装Python 3.12,请参考Python下载
  • uv(要安装uv,请参考uv安装

克隆仓库

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

Visual Studio Code、Windsurf

你可以在“MCP: 打开用户配置”或“MCP: 打开工作区配置”中找到 mcp.json 文件。

vs-code-1

将以下内容添加到你的 mcp.json 中:

{
  "mcpServers": {
    "fmcp": {
      "command": "bash",
      "args": ["MCP_SERVER_ABSOLUTE_PATH/setup.sh"],
      "description": "fmcp服务器用于数学计算,包括数值计算、符号计算以及绘图。"
    }
  }
}

Gemini CLI

  • 打开位于 ~/.gemini/settings.json 的Gemini设置JSON文件,其中 ~ 是你的主目录。
  • 将以下内容添加到你的 settings.json 中:
{
  "mcpServers": {
    "fmcp": {
      "command": "bash",
      "args": ["MCP_SERVER_ABSOLUTE_PATH/setup.sh"],
      "description": "fmcp服务器用于数学计算,包括数值计算、符号计算以及绘图。"
    }
  }
}

通过Smithery安装

要通过Smithery自动为本地使用安装Fermat MCP,请执行以下命令:

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

💻 使用示例

基础用法

使用Gemini CLI

╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│  > 能否使用fmcp服务器并使用numpy方法求这个8*8矩阵的特征值:                  |
│    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             │
 │    2513793616385556+0.11670182367986544j","-0.18590228871569267-0.2479130526139182j","-0.18590228871569267+0.247913052613918             │
 │    2j","-0.03374593856285834+0j"]]}                                                                                                     │
 ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ 当然可以。以下是给定矩阵的特征值:

  32.077244457548815
  -11.531090644775198
  -6.6653982146786195
  0.6715984762411508 + 3.3702485010270413j
  0.6715984762411508 - 3.3702485010270413j
  4.541270555490195 + 2.776364664923869j
  4.541270555490195 - 2.776364664923869j
  3.6935063384423428

使用Visual Studio Code、Windsurf

这里的任务是在同一图中绘制 x**2sin(x) 的图形。 GUI演示1-2 GUI演示2-2

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端