[ 前へ | 目次 | 次へ ]
2025/11/15
Japanese English

Exevalator の Ver.2.4 をリリース — MCPをサポートし、AI用の計算ツールとしても使用可能に

オープンソースの式計算ライブラリ「 Exevalator(エグゼバレータ)」の最新版、Ver.2.4.0 をリリースしました!

Exevalator は、つい先日も Ver.2.3 へのメジャーアップデートを行ったばかりで、その際は Python で使用可能になりました:

今回の Ver.2.4 では、上記で追加された Python 移植版をベースに、新たに「MCP」というプロトコルをサポートする事で、AI用の計算ツールとしても活用できるようになりました!

今回はその詳細や、実際の使用例をご紹介します。

Exevalator とは?

本来の Exevalator は、プログラム内に組み込んで、「文字列として与えられた計算式」の値を計算する機能を担うライブラリです。例えば、以下のような式の値を求められます:

(1 + 2) * 3
sqrt( sin(1.2) / (cos(3.4) + 1) )

こういった式が、プログラムの実行中に、ユーザー入力などによって(動的に)与えられる場合、それを計算するのは意外と難しい処理が必要です。

そこで Exevalator は、多種多様なプログラミング言語向けに、そういった処理をライブラリとして提供する事で、手軽に行えるようにしたものです。 現時点で Java, Rust, C++, C#, VB.NET, TypeScript, Python の7言語で利用可能で、今後もサポート言語が増えていく予定です。

そして今回は言語ではなく、AIとやり取りするためのプロトコルである「MCP」 を新たにサポートしました。

MCP (Model Context Protocol: モデル・コンテキスト・プロトコル) とは?

MCP は最近登場した新種のプロトコルなので、まだご存じでない方も多いと思います。

というか、そもそも一般には「プロトコルって何?」っていう感じかもしれませんね。そのあたりから少し補足しておきましょう。

そもそもプロトコルとは

プロトコルとは、ざっくり言うと、何らかのシステム同士が「やり取り」するための、あらかじめ決められた枠組み(ルールや前提など)の事です。

例えば一般論として、システム同士が情報をやり取りしたり、互いを制御したりする場合を考えると、以下のような事が言えますよね:

  • まず何らかの「会話ルール」みたいなものが無いと、マトモなやり取り自体が成立しない
  • さらに、「相手がどういう存在で、こちらがどういうアクションを行ったら、どういう対応をするのか・どういう状態に変化するのか」といった 色々な前提も共有しておく必要がある
  • 他にも、「相手が突然居なくなった場合はどうするのか」とか、「無理な事を依頼されて失敗したらどうするのか」とか、そういった細かい取り決めも必要

このような諸々の枠組みを取り決めたものを、プロトコルと呼びます。それに従って、システム同士はやり取りして、通信や連携などをしているわけです。

代表的な例としては、Webで情報を「送信する側」と「受信する側」がやり取りするためのプロトコルの一種である「TCP」や、その上に乗っかるプロトコルの「HTTP」などが非常に有名ですね。

いまこのページを読んでいる皆さんのPCやスマホにも、RINEARNのサイトを配信しているWebサーバーから、HTTP や TCP のルールに則ってページ内容の情報が送られています。

そういった共通化された枠組み(プロトコル)があるからこそ、皆さんのPCやスマホで、様々なWebサーバーとやり取りし、世界中のWebサイトを見れるわけです。

MCPは、AIを備えたシステムが、外部のツールや情報等とやり取りするためのプロトコル

さて、ここからが本題です。

ここ数年でAIがめちゃくちゃ進化して、最近はついにAI自身がツール等を使い、自律的に作業をこなしてくれる ようになりつつありますよね。 いわゆる「AIエージェント」とか呼ばれているシステムです。

ラフに図にすると、以下みたいな雰囲気のシステムですね:

なんかSFみたいな世界観ですが、こういうシステムが最近一気に実用水準に入りつつあり、あちこちで流行し始めてます。いやAIの進化の波は本当に速いですね…

で、こういう場面では、「AIエージェント的なシステム」と、「AI用のツール」(とか情報提供システムとか色々)がやり取りをするわけです:

そう、ここで「やり取り」が発生するわけです。そういった「やり取り」を、AIにとって効率的かつ確実に行えるようにするためには、やはり共通化されたプロトコル的なものが欲しいところですよね。

その有力な選択肢の一つが、MCP (Model Contexit Protocol: モデル・コンテキスト・プロトコル) です。米国の Anthropic というAI企業が2024年に提唱したもので、登場したてホヤホヤのプロトコルですね。

なお、この種のプロトコルは他にも出てきているんですが(OpenAI の Function Calling 等)、今の所は MCP が、スタートダッシュでだいぶ優位に立った印象です。 このままデファクトを握るかどうかまでは不透明ですが、各種のAIシステムが続々とMCPをサポートし始めたり、サポート予定を発表したりしている状況です(2025年11月現在)。

MCPのサポートにより、Exevalator を AI 用の計算ツールとして利用可能に!

Exevalator が MCP をサポート

さて、やや前置きの説明が長くなってしまいましたが、今回から Exevalator も、MCP による制御をサポートしました。

これにより、まさに先程の図の通り、Exevalator を AI 用の計算ツールとしても使えるようになります:

どういう状況で有用なの?

といっても、

今時のAIは普通に Python とかでスクリプトを書いて計算できるのでは?

という疑問も沸きますよね。

これは実際そうで、「AI に任意のスクリプトの実行を許せるような状況」であれば、わざわざ Exevalator を使う必要は全くないと言えます。

それじゃあ一体どういう場面で役立つの? というと、そう、逆に

AI に任意のスクリプトの実行権限を与えたくない状況

です。

「任意のスクリプトの実行」って、AIがその気になれば何でもできてしまうので、例えば以下のようなケースなど、そういう権限を与えたくない or 与えられない場合が普通にあり得ます:

  • アクセスを許してはいけない機密情報が入っている環境
  • システム内に誤って改変を加えると壊滅的なダメージになる環境
  • AIの中身(LLMモデル)の性能が低く、ちょくちょく混乱して謎のミスをやらかす状況
  • AIに第三者からのリクエストが投げられる状況

で、そういう場合に、

でも、式の計算や、値のメモ(変数の読み書き)程度の事は行いたい

みたいなケースはあり得ます。そういった場合に Exevalator が有効です。

Exevalator だと、以下のような特徴があるので、安全に計算を行えます:

  • 式の計算以外の事をやろうと思っても、そもそも仕組み的にできない
  • 式の中で呼べる関数も、あらかじめ実装 or ラップして登録したものに限られる
  • Exevalator でのみアクセス可能な変数を宣言して使える → 外に影響は一切もたらさない

なので、仮に機密情報を読んだりシステムを壊そうと思っても、そもそもできないので安心、というわけです。

留意点

ただし、

  • 値は全て、倍精度の浮動小数点数(Python における float 型、C系言語における double 型に相当)として扱われる
  • 変数も同様に、倍精度の浮動小数点数型のみ

という点には留意が必要です。従って、「flaot 以外の型の値やインスタンスを作って、それを引数として特定関数を呼び出す」みたいな事はできません。あくまでも数値の計算用です。

使ってみよう!

それでは最後に、実際に Exevalator をAIエージェントに接続して使ってみましょう!

サンプル環境と Exevalator の導入手順など

ここからのサンプル実行例は、以下の環境を用いています:

  • OS: Ubuntu Linux 24.04 LTS
  • AIエージェント利用環境: Visual Studio Code + Cline
  • AIの中身(LLM)と利用モデル: OpenAI GPT-5 nano (※)
※ OpenAI に対して有料のAPI契約が必要ですが、GPT-5 nano は利用料がかなり安く、百万トークンあたり入力 0.05 ドル、出力 0.4 ドルとかです。 なので、「 とりあえずMCPツールを呼べているかどうかだけ確かめたい 」といった場面では安心です。が、性能も低いので、用途によってはより賢い(高コストな)モデルの選択が適切です。

上記の環境における、Exevalator の導入・接続方法については、公式 README で解説していますので、そちらをご参照ください。

数学関数を使った計算をやってみる

まずは、適当な数学関数を使った式を計算してみてもらいましょう:

きちんと理論上正しい値を算出できていますね。

なお、 Exevalator のMCP版は、何の関数も登録されていない「 exevalator_mcp.py 」と、数学関数があらかじめ登録された「 exevalator_mcp_math_preset.py 」の2通りが存在します。 ここでは後者を接続して用いています。

どちらも、中身を編集して、使える関数を増やす事ができます。もちろん独自関数を作る事も可能です。

変数を使った手続き計算をやってみる

続いて、変数を宣言・読み書きして、ちょっとした手続き計算のようなものをやってもらいましょう:

こんな感じで、値をメモって後で使う、みたいな事ができます。

※ モデルが GPT-5 nano だと、最終回答としては合っているものの、途中の手順がやや混乱したり、計算結果を変数に格納するのをサボってしまったり、といった問題がしばしば見られました。これくらいの課題になると、GPT-5 mini かそれ以上のモデルの方が適していそうです。mini ではサボらずきちんと動いていました。

ちなみに上記を試してて思ったんですが、なんか「ザ・自然言語プログラミング」って感じですよね。こういう方向の、プログラミング入門用の言語処理系を作ってみるのも面白いかな?とか思いました。完全に余談ですが。

さてさて、今回のお知らせは以上です。今回のアプデの実装は、個人的にかなりワクワクしました。どんどんSF的な未来が近づいていますよね!

Exevalator は今後も対応言語を増やしていく予定で、恐らく次のメジャーアプデの Ver.2.5 では、 Go を新規サポートしようかなと思っています。が、正式には一応まだ未定です。

Exevalator に関する情報は、今後もこのコーナーにてお知らせしていきます。お楽しみに!

参考文献, 謝辞


なお、今回の機能実装は、以下の書籍でMCPを学ぶ所からスタートしましたが、かなり実践的な良書で、この場をお借りして厚く御礼申し上げます:

既に Python で何らかのコマンドラインツールやライブラリ等を書かれている方なら、上記書籍などで学んでちょっと手を動かすだけで、すぐにAI用ツールに昇格させる事ができるのでは? と感じました。今後、色々なツールやライブラリがAI対応していくと面白そうですよね。一緒にAI時代の波を盛り上げましょう!


この記事の著者

松井 文宏
[ RINEARN代表, 博士(理学), 応用情報技術者 ]
VCSSLやリニアングラフ3D、その他諸々を開発しています。ガイド類や記事も書いています。

Japanese English
[ 前へ | 目次 | 次へ ]

Exevalator の Ver.2.4 をリリース — MCPをサポートし、AI用の計算ツールとしても使用可能に
2025-11-15 - 式計算ライブラリ Exevalator の Ver.2.4 をリリースしました。今回から、AIとやり取りするためのプロトコルである「MCP」をサポートし、AI用の計算ツールとしても使用可能になりました!

Exevalator の最新版 Ver.2.3 をリリース、新たに Python で使用可能に
2025-11-04 - 式計算ライブラリ Exevalator の Ver.2.3 をリリースしました。今回から、新たに Python 製のプログラムでも使用可能になりました! AI用ツール開発需要などの背景も踏まえて、詳細をお知らせします。

Exevalator をアップデート、エラーメッセージの日本語化が手軽に
2025-10-31 - 式計算ライブラリ Exevalator の Ver.2.2.2 をリリースしました。今回から、エラーメッセージを手軽に日本語化できるようになりました。数件のバグ修正&微調整も作んでいます。詳細をお知らせします。

関数電卓 RINPn(りんぷん) オンライン版の内部構造を解説
2025-10-22 - 先日登場した、関数電卓ソフト RINPn(りんぷん)のオンライン版の内部構造を解説します。オープンソースなので、自由に改造・流用して、自分だけのWeb電卓を作る事も可能!(かもしれない)

関数電卓 RINPn(りんぷん)、どこでもすぐ使えるオンライン版が登場!
2025-10-21 - フリー関数電卓ソフト RINPn(りんぷん)に、Web上でどこでもすぐ使える「オンライン版」が新登場しました! PCだけでなく、スマホでも利用可能です。詳細をお知らせします!

VCSSLのサポートAIが登場! ただし実用品質には ChatGPT 有料アカウント(Plus)での利用推奨
2025-08-19 - プログラミング言語VCSSLについての質問対応や、コーディング作業を手伝ってくれるAIさんが登場しました! 使用までの流れや推奨事項を解説し、実際の回答例や生成コード例などもたくさん紹介します!

各ソフトやVCSSLの英語版ドキュメント整備がほぼ完了
2025-06-30 - RINEARNでは2年前から、AIの補助による英語版ドキュメントの大幅拡充計画を進めてきました。今回、主要ドキュメント&コンテンツの英訳がほぼ完了し、一応の目標水準に達しました。詳細をお知らせします。

VCSSLの最新版をリリース: 外部プログラムとの連携機能を少し強化、他
2025-05-25 - VCSSL 3.4.52をリリースしました。外部プログラム(C言語製の実行ファイル等)との連携機能を少し強化し、文字化け対策やOS判別などを可能にしました。他にも細かい機能追加があります。詳細をお知らせします。

VCSSLの最新版をリリース、Java 24上での非互換な挙動を対処
2025-04-22 - VCSSL 3.4.50をリリースしました。Java 24環境上でのネットワークドライブ関連のファイルパス解決で、従来環境とは異なる挙動が生じていたのを解消しました。詳細をお知らせします。

この階層の目次
[ 前へ | 目次 | 次へ ]
新しいお知らせ

ExevalatorのVer.2.4をリリース—MCPをサポートし、AI用の計算ツールとしても使用可能に
2025-11-15 - 式計算ライブラリExevalatorのVer.2.4をリリースしました。今回から、AIとやり取りするためのプロトコルである「MCP」をサポートし、AI用の計算ツールとしても使用可能になりました!

Exevalatorの最新版Ver.2.3をリリース、新たにPythonで使用可能に
2025-11-04 - 式計算ライブラリExevalatorのVer.2.3をリリースしました。今回から、新たにPython製のプログラムでも使用可能になりました!AI用ツール開発需要などの背景も踏まえて、詳細をお知らせします。

Exevalatorをアップデート、エラーメッセージの日本語化が手軽に
2025-10-31 - 式計算ライブラリExevalatorのVer.2.2.2をリリースしました。今回から、エラーメッセージを手軽に日本語化できるようになりました。数件のバグ修正&微調整も作んでいます。詳細をお知らせします。

関数電卓RINPn(りんぷん)オンライン版の内部構造を解説
2025-10-22 - 先日登場した、関数電卓ソフトRINPn(りんぷん)のオンライン版の内部構造を解説します。オープンソースなので、自由に改造・流用して、自分だけのWeb電卓を作る事も可能!(かもしれない)

関数電卓RINPn(りんぷん)、どこでもすぐ使えるオンライン版が登場!
2025-10-21 - フリー関数電卓ソフトRINPn(りんぷん)に、Web上でどこでもすぐ使える「オンライン版」が新登場しました!PCだけでなく、スマホでも利用可能です。詳細をお知らせします!

VCSSLのサポートAIが登場!ただし実用品質にはChatGPT有料アカウント(Plus)での利用推奨
2025-08-19 - プログラミング言語VCSSLについての質問対応や、コーディング作業を手伝ってくれるAIさんが登場しました!使用までの流れや推奨事項を解説し、実際の回答例や生成コード例などもたくさん紹介します!

各ソフトやVCSSLの英語版ドキュメント整備がほぼ完了
2025-06-30 - RINEARNでは2年前から、AIの補助による英語版ドキュメントの大幅拡充計画を進めてきました。今回、主要ドキュメント&コンテンツの英訳がほぼ完了し、一応の目標水準に達しました。詳細をお知らせします。

VCSSLの最新版をリリース:外部プログラムとの連携機能を少し強化、他
2025-05-25 - VCSSL3.4.52をリリースしました。外部プログラム(C言語製の実行ファイル等)との連携機能を少し強化し、文字化け対策やOS判別などを可能にしました。他にも細かい機能追加があります。詳細をお知らせします。

VCSSLの最新版をリリース、Java24上での非互換な挙動を対処
2025-04-22 - VCSSL3.4.50をリリースしました。Java24環境上でのネットワークドライブ関連のファイルパス解決で、従来環境とは異なる挙動が生じていたのを解消しました。詳細をお知らせします。

リニアングラフやVCSSLの最新版をリリース、目盛りの位置や内容を自由に指定可能に!
2024-11-24 - リニアングラフ3D/2Dを更新し、自由な位置に、自由な表記内容の目盛りを描けるようになりました!併せて、Java言語やVCSSLでの、プログラム制御用APIも拡張しています。詳細をお知らせします。