MATLAB MCP クライアントがリリースされました
※この投稿は 2025 年 12 月 10 日に Artificial Intelligence へ 投稿されたものの抄訳です。
—
![]() |
ゲストライター: Shweta Pujari
Shweta Pujari は AI と生成 AI のプロダクトマネージャーです。このブログ記事では、Shweta が私と一緒に、新しい MATLAB MCP クライアントを使って MATLAB 言語でエージェント型ワークフローを構築する方法を紹介します。 |
MathWorks は GitHub 上で新しい機能「MATLAB MCP クライアント」を公開しました。これにより、ユーザーは MATLAB ベースの AI ワークフローを HTTP 経由で外部サービスやサードパーティツールに簡単に接続できるようになります。
https://github.com/matlab-deep-learning/mcpHTTPClient
Note: およそ1か月前、MathWorks は GitHub 上で MATLAB MCP コアサーバーも公開しました。これは、サードパーティの AI チャットやエージェントから MATLAB を呼び出すための MCP 実装のリファレンスを提供します。
この投稿では、MCP クライアントとは何か、どのように動作するのか、そして MATLAB で AI ソリューションを構築するエンジニアにとってなぜ重要なのかを解説します。
MATLAB MCP クライアントとは?
Model Context Protocol(MCP)は、AI モデルが外部ツールやサービスと通信する方法を定義する新しい標準です。MCP は、AI モデルとツールサーバーの両方が理解できる「言語」のようなもので、利用可能なツールの一覧取得や、特定の入力でツールを呼び出し、構造化された結果を返す方法を提供します。現在、多くの高度な LLM アプリケーションは、外部関数を呼び出せるエージェントを使用しています(例:天気 API やデータベースクエリを呼び出す AI アシスタント)。MCP は、このようなツール呼び出しを正式な枠組みで提供し、MCP に対応するツールサーバーと AI クライアントが相互に通信できるようにします。
![]()
MATLAB MCP クライアントの主な機能
- MCP サーバー経由でツールに接続:MATLAB で MCP クライアントを作成し、URL(エンドポイント)を指定することで、任意のストリーミング対応 HTTP MCP サーバーに接続できます。接続すると、クライアントはサーバーから利用可能なツール一覧を自動的に取得します。つまり、MATLAB はサーバーが実行できる機能(例:get_weather, run_simulation, query_database など)と、それぞれのツールの入力・出力の詳細を即座に把握できます。
- 外部ツールの呼び出し:MCP クライアントを使えば、外部ツールの呼び出しはローカルの MATLAB 関数を呼び出すのと同じくらい簡単です。このアドオンには、高レベル関数 callTool が用意されています。ツール名と必要なパラメータを渡すだけで、callTool がサーバーとの通信を処理し、結果を MATLAB に返します。HTTP リクエストを手動で作成したり JSON を解析する必要はありません。クライアントが裏で処理してくれるので、外部 API やサービスとの統合が劇的に簡単になります。
- LLM ワークフローとの統合:最も注目すべき機能は、エージェント型 AI ワークフローを実現できることです。このMCP クライアントと LLMs with MATLAB アドオンを組み合わせることで、MATLAB 内の大規模言語モデルが、ユーザーの要求を満たすために外部ツールを呼び出すべきかどうかを自律的に判断できます。MCP クライアントはサーバーのツールを LLM に公開します。ツール一覧をモデルが理解できる形式(OpenAI の function-calling インターフェース用の openAIFunction オブジェクト)に変換し、LLM セッションに渡します。その後、LLM にプロンプトを与えると、必要と判断した場合、ツール名と引数を含むツール呼び出しを出力できます。MATLAB はこの関数呼び出しの意図をキャプチャし、callTool(client, toolRequest) を使って実行し、結果を取得できます。要するに、MCP クライアントによって、MATLAB の AI アシスタントは外部データやアクションについて話すだけでなく、実際にサービスを呼び出してアクションを実行できるようになります。
MATLAB MCP クライアントを使ってみる
この例では、MATLAB で MCP クライアントを簡単に構築し、MCP サーバーに接続して LLM を使ってサーバーツールを呼び出す方法を示します。ここでは、prime sequence MCP サーバーを使用します。
OpenAI LLM を呼び出すためのインターフェースをセットアップ
最新バージョンの LLM-with-MATLAB リポジトリを取得してください。
.env ファイルを作成し OPENAI_API_KEY を設定します。
OPENAI_API_KEY=sk-proj-xxxxx
gitclone("https://github.com/matlab-deep-learning/llms-with-matlab")
addpath("llms-with-matlab")
loadenv '.env'
MCP クライアントを構築する
MATLAB から MCP サーバーのエンドポイントに接続する方法は次のとおりです。
endpoint = "https://production-server-demo.mathworks-workshop.com/primeSequence/mcp"; client = mcpHTTPClient(endpoint)
client =
mcpHTTPClient with properties:
Endpoint: "https://production-server-demo.mathworks-workshop.com/primeSequence/mcp"
ServerTools: {[1×1 struct]}
serverTools = client.ServerTools;
for i = 1:length(serverTools)
disp(serverTools{i}.name)
disp(serverTools{i}.description)
disp('---')
end
primeSequence Return the first N primes of the given sequence type. Four sequence types supported: Eisenstein, Balanced, Isolated and Gaussian. ---
tool1 = serverTools{1};
toolName = tool1.name;
client.ServerTools{1}.inputSchema
client.ServerTools{1}.inputSchema.properties
ans = struct with fields:
n: [1×1 struct]
type: [1×1 struct]
client.ServerTools{1}.inputSchema.properties.n
ans = struct with fields:
type: 'number'
description: 'Length of the generated sequence'
client.ServerTools{1}.inputSchema.properties.type
ans = struct with fields:
type: 'string'
description: 'Name of the sequence to generate'
client.ServerTools{1}.inputSchema.required
ans = 2×1 cell array 'n' 'type'
MCP クライアントをモデルに統合する
次の関数は LLMs with MATLAB リポジトリで提供されています。この例では、OpenAI サービスを使用して大規模言語モデル(LLM)を提供します。
f = openAIFunction(serverTools)
f =
openAIFunction with properties:
FunctionName: "primeSequence"
Description: "Return the first N primes of the given sequence type. Four sequence types supported: Eisenstein, Balanced, Isolated and Gaussian."
Parameters: [1×1 struct]
model = openAIChat(Model="gpt-5-mini",Tools=f)
model =
openAIChat with properties:
ModelName: "gpt-5-mini"
Temperature: 1
TopP: 1
StopSequences: [0×0 string]
TimeOut: 10
SystemPrompt: []
ResponseFormat: "text"
PresencePenalty: 0
FrequencyPenalty: 0
FunctionNames: "primeSequence"
モデルにどのツールを呼び出すか選ばせてみましょう。ここでは、選択できるツールは1つだけです。
[~,completeOutput] = generate(model,"generate a sequence of 10 prime numbers")
completeOutput = struct with fields:
role: 'assistant'
content: []
tool_calls: [1×1 struct]
refusal: []
annotations: []
completeOutput.tool_calls
ans = struct with fields:
id: 'call_5TOPVJ5zftW3WWydHQ0fmpyR'
type: 'function'
function: [1×1 struct]
toolRequest = completeOutput.tool_calls(1).function
toolRequest = struct with fields:
name: 'primeSequence'
arguments: '{"n":10,"type":"Eisenstein"}'
output = callTool(client,toolRequest)
output = "[2,5,11,17,23,29,41,47,53,59]"
コードはこちらで確認できます: https://github.com/mathworks/MATLAB-AI-Blog/tree/main/matlab-mcp-client-on-github



コメント
コメントを残すには、ここ をクリックして MathWorks アカウントにサインインするか新しい MathWorks アカウントを作成します。