Fermatmcp について
Fermat MCP は FastMCP で構築された MCP サーバーで、数値計算、記号計算、グラフ描画を提供します。NumPy、SymPy、Matplotlib を基盤としており、AI アシスタントから数学演算や図の生成を行いたいユーザーに適しています。
主な機能
- 01NumPy による数値計算
- 02SymPy による記号代数と微積分
- 03Matplotlib によるグラフと方程式の描画
- 04固有値、求解、SVD などの線形代数演算
- 05微分、積分、極限などの微積分演算
活用シーン
- 01AI アシスタントから行列の固有値を計算する
- 02x**2 と sin(x) を同一グラフに描画する
- 03式の簡約や方程式の記号的な求解を行う
MCP 対応
本プロジェクトは数学計算と描画機能をツールとして MCP クライアントに提供する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Fermat MCP
このプロジェクトは、数値計算や記号計算、プロット作成に対応した数学計算用の FastMCP サーバーを提供します。
モジュール
1. mpl_mcp - Matplotlib 連携
| 機能 | 説明 |
|---|---|
plot_barchart | 指定したデータ値の棒グラフをプロットします |
plot_scatter | データポイントから散布図を作成します |
plot_chart | 折れ線グラフ、散布図、棒グラフをプロットします |
plot_stem | 離散データのステムプロットを作成します |
plot_stack | 積み上げ面グラフ/棒グラフを生成します |
eqn_chart | 数学の方程式をプロットします |
2. numpy_mcp - NumPy 連携
| カテゴリ | 操作 |
|---|---|
| 基本的な数学 | add, sub, mul, div, power, abs, exp, log, sqrt |
| 三角関数 | sin, cos, tan |
| 統計 | mean, median, std, var, min, max, argmin, argmax, percentile |
| 線形代数 | dot, matmul, inv, det, eig, solve, svd |
| 行列操作 | create, zeros, ones, full, arange, linspace |
| 配列操作 | reshape, flatten, concatenate, transpose, stack |
3. sympy_mcp - SymPy 連携
| カテゴリ | 操作 |
|---|---|
| 代数 | simplify, expand, factor, collect |
| 微積分 | diff, integrate, limit, series |
| 方程式 | solve, solveset, linsolve, nonlinsolve |
| 行列操作 | create, det, inv, rref, eigenvals |
セットアップ
要件
-
Python 3.12 以上(Python3.12 のインストール方法については、Python のダウンロードを参照してください)
-
uv(uv のインストール方法については、uv のインストールを参照してください)
リポジトリをクローンする
git clone https://github.com/abhiphile/fermat-mcp
Visual Studio Code、Windsurf
mcp.json ファイルは、以下から確認できます。
MCP: Open User Configuration または MCP: Open Workspace Configuration

以下を 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)
Claude または Anthropic MCP クライアントを使用する場合は、この MCP 設定を mcp.json に追加してください(ディレクトリパスはローカルのクローン先に更新してください)。
{
"mcpServers": {
"fmcp": {
"command": "uv",
"args": [
"--directory",
"/home/ty/Repositories/fermat-mcp",
"run",
"server.py"
]
}
}
}
Gemini CLI
-
~がホームディレクトリを表す~/.gemini/settings.jsonにある Gemini の設定 JSON を開きます。 -
以下を
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."
}
}
}
Smithery 経由でインストールする
Smithery 経由で Fermat MCP をローカル環境に自動インストールするには、以下を実行します。
npx -y @smithery/cli install @abhiphile/fermat-mcp --client gemini
使用例
- 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
- Visual Studio Code、Windsurf を使用する場合
ここでは、x**2 と sin(x) の両方を同じプロットに描画するように指示しました。

コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。