Aman-Amith-Shastry-scientific_computation_mcp について
Aman-Amith-Shastry-scientific_computation_mcpは、ベクトルや行列を扱う科学計算向けのMCPサーバーです。名前付きテンソルの保存、線形代数やベクトル解析の演算、プロット機能を提供します。
主な機能
- 01テンソルの作成・表示・削除
- 02行列演算と変換
- 03固有値・QR・SVD分解
- 04ベクトル解析の演算
- 05関数とベクトル場のプロット
活用シーン
- 01計算手順間での行列の保存
- 02行列分解や行列の性質の計算
- 03勾配やベクトル場の計算
- 04関数やベクトル場の描画
MCP 対応
Streamable HTTP経由で科学計算ツールを提供します。テンソルストアはMCPセッションごとに分離されます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://server.smithery.ai/@Aman-Amith-Shastry/scientific_computation_mcp/mcpclaude mcp add --transport http ai-smithery-aman-amith-shastry-scientific-computation https://server.smithery.ai/@Aman-Amith-Shastry/scientific_computation_mcp/mcp{"mcpServers":{"ai-smithery-aman-amith-shastry-scientific-computation":{"type":"http","url":"https://server.smithery.ai/@Aman-Amith-Shastry/scientific_computation_mcp/mcp"}}}Cursor で開く{"servers":{"ai-smithery-aman-amith-shastry-scientific-computation":{"type":"http","url":"https://server.smithery.ai/@Aman-Amith-Shastry/scientific_computation_mcp/mcp"}}}VS Code で開く{"mcpServers":{"ai-smithery-aman-amith-shastry-scientific-computation":{"type":"http","url":"https://server.smithery.ai/@Aman-Amith-Shastry/scientific_computation_mcp/mcp"}}}{"mcpServers":{"ai-smithery-aman-amith-shastry-scientific-computation":{"serverUrl":"https://server.smithery.ai/@Aman-Amith-Shastry/scientific_computation_mcp/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://server.smithery.ai/@Aman-Amith-Shastry/scientific_computation_mcp/mcp認証が必要ツール
詳細
Scientific Computation MCP
インストールガイド
このサーバーはストリーム可能な HTTP を使用します。Smithery CLI(Node 20+)を使って、Smithery から追加してください。
npm install -g smithery@latest
smithery mcp add @aman-amith-shastry/scientific_computation_mcp --client claude
名前空間は小文字です。Smithery のレジストリ検索では大文字と小文字が区別され、大文字を含む表記ではエラーになるのではなく、ツールのない空のレコードが返されるため、名前を大文字で始めると、機能のないサーバーのように見えます。
Cursor の場合は --client cursor に置き換えるか、リモートの Smithery 接続として追加するには --client を省略してください。その後、クライアントを再起動してサーバーを認識させます。
ローカルでの実行
uv sync
uv run src/main.py
MCP エンドポイントは http://localhost:8081/mcp、稼働状態確認用エンドポイントは http://localhost:8081/health です。環境変数による上書き設定:PORT、HOST、MCP_PATH、ALLOWED_ORIGINS、LOG_LEVEL。
デプロイ
Smithery はコンテナのビルドやホスティングを終了しました。サーバーは、Smithery のゲートウェイがプロキシする URL、またはローカルの stdio 用 MCPB バンドルとして公開されます。このサーバーは URL で公開されるため、HTTPS を提供できるホストであればどこでもコンテナを実行できます。
docker build -t scientific-computation-mcp .
docker run -p 8081:8081 -e PORT=8081 scientific-computation-mcp
ホストが満たす必要がある条件は次の 2 つです。
- インスタンスは 1 つにしてください。 ツール呼び出しの間、テンソルはプロセスメモリ内に保持されます。そのため、レプリカを 1 つより多くするとストアが分割され、
create_tensor→view_tensorのフローが壊れます。 - セッションを維持してください。 トランスポートはステートフル(
stateless_http=False)で実行され、テンソルストアは MCP セッションごとにキー付けされます。これにより、同時に利用するユーザー同士が互いのテンソルを読み取るのを防ぎます。
Render でのホスティング
render.yaml は Dockerfile を単一の無料プランの Web サービスとしてデプロイします。Render のダッシュボードで New → Blueprint を選び、このリポジトリを選択してください。Render が PORT を設定し、TLS を終端して、/health をチェックします。ほかに必要な設定はありません。
無料インスタンスは、インバウンドトラフィックが 15 分間ないと停止し、再起動にはおよそ 1 分かかります。MCP セッションを開いたままでも停止を防げません。ストリーム可能な HTTP のストリームはサーバーからクライアントへの方向であり、アイドル状態のセッションからはインバウンド通信がないため、サービスは停止してしまいます。考慮すべき影響は 2 つあります。
- ツール呼び出しの間隔が 15 分空くと、テンソルは維持されません。 ストアはプロセスメモリ内にあるため、停止するとセッションとそのテンソルも一緒に失われます。ツール呼び出しはインバウンドトラフィックなので、利用中はサービスが起動状態を保ちますが、解析の途中で長時間中断すると停止します。
- 公開時のスキャンが、停止中のインスタンスにあたる場合があります。 Smithery は URL を
SmitheryBot/1.0としてスキャンし、コールドスタートによりタイムアウトすることがあります。事前に/healthにアクセスしてインスタンスを起動してください。
無料プランでは、ワークスペースあたり月 750 インスタンス時間が付与されます。約 730 時間の月であれば、無料サービスを 1 つ常時稼働させる分には足りますが、2 つ目には足りません。
プロセスを 1 つ常時稼働させるホストであれば、これらの問題をすべて避けられます。コンテナはプラットフォーム固有の前提条件がない、$PORT 上の通常の HTTP です。
公開
curl -sS -o /dev/null -w '%{http_code}\n' https://<your-host>/health
smithery mcp publish "https://<your-host>/mcp" -n @aman-amith-shastry/scientific_computation_mcp
このサーバーはユーザー設定を受け取らないため、設定スキーマは不要です。
サーバーのコンポーネント
ツール
テンソルのストレージ
create_tensor: 指定した名前、形状、値に基づいて新しいテンソルを作成し、テンソルストアに追加します。このサーバーでは、テンソルはベクトルと行列です。view_tensor: ストアにあるテンソルの内容を表示します。delete_tensor: テンソルストア内の名前を指定して、テンソルを削除します。
線形代数
add_matrices: 互換性がある場合、指定した名前の2つの行列を加算します。subtract_matrices: 互換性がある場合、指定した名前の2つの行列を減算します。multiply_matrices: 互換性がある場合、指定した名前の2つの行列を乗算します。scale_matrix: 指定した名前の行列を、指定した係数でスケーリングします。デフォルトではインプレースで実行します。matrix_inverse: 指定した名前の行列の逆行列を計算します。transpose: 指定した名前の行列の逆行列の転置を計算します。determinant: 指定した名前の行列の行列式を計算します。rank: 指定した名前の行列のランク(ピボット数)を計算します。compute_eigen: 指定した名前の行列の固有ベクトルと固有値を計算します。qr_decompose: 指定した名前の行列のQR分解を計算します。Qの列は行列の像の正規直交基底であり、Rは上三角行列です。svd_decompose: 指定した名前の行列の特異値分解を計算します。find_orthonormal_basis: 指定した名前の行列の正規直交基底を求めます。返されるベクトルはすべて互いに直交し、長さが1です。change_basis: 指定した名前の行列を新しい基底で表した行列を計算します。
ベクトル解析
vector_project: テンソルストア内のベクトルを、同じベクトル空間内の指定されたベクトルに射影します。vector_dot_product: 指定した名前に基づいて、テンソルストア内の2つのベクトルの内積を計算します。vector_cross_product: 指定した名前に基づいて、テンソルストア内の2つのベクトルの外積を計算します。gradient: 入力関数に基づいて、多変数関数の勾配を計算します。呼び出し例:gradient("x^2 + 2xyz + zy^3")。関数名(f(x, y, z) = ...` など)は含めないでください。curl: 入力されたベクトル場の回転を計算します。入力文字列はPythonのリスト形式である必要があります。呼び出し例:curl("[3xy, 2z^4, 2y]"")。divergence入力されたベクトル場の発散を計算します。入力文字列はPythonのリスト形式である必要があります。呼び出し例:divergence("[3xy, 2z^4, 2y]"")。laplacianスカラー関数(勾配の発散として計算)またはベクトル場(成分ごとに計算)のラプラシアンを計算します。スカラー関数を入力する場合は、gradientツールと同じ形式で入力してください。ベクトル場を入力する場合は、curl/divergenceツールと同じ形式で入力してください。directional_deriv: 指定した方向uにおける関数の方向微分を計算します。デフォルトでは、unitパラメーターの指定に従って、方向微分の計算前にuを正規化します。
可視化
plot_vector_field: ベクトル場(curl/divergence関数と同じ形式で指定)をプロットします。現在は3Dベクトル場のみサポートしています。ベクトル場の2D PNG透視画像が返されます。デフォルトでは、グラフの各軸の範囲は-1から1です。plot_function: 関数を2Dまたは3Dでプロットします(入力変数に基づきます)。gradientツールと同じ形式で指定します。使用できる変数はxとyのみです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
