MCPサーバーを自作し、ツールにAI機能を付ける

昨年AnthropicMCP(Model Context Protocol)を発表しましたが、弊社内でもMCPの話題が増え、Backlog MCPの活用の検討もされていました。

MCPについてMicrosoft公式のVSCode用のMCPまとめ等を参照したりし、社内で活用できそうなシチュエーションを考えていたのですが、率直に言うとあまり思いつかず、チュートリアルがてら何かしら作ってみることにしました。

作ったもの

昨年作成したコミットログ雛形作成ツールの「変更理由」の項目をAIで出力するMCPサーバー

※内容については記事の通りなため割愛

方針・設定

・既存の機能(Gitでステージングされているファイルに対するコミットログの雛形を作成する)をnpxで実行できるようにする

・手動で設定するコミットログの変更理由の項目をAIが生成できるようにする

・コマンドではなくtool呼び出しで実行する

下記をインストールします

Node.js: ランタイム

TypeScript

MCP TypeScript SDK: Model Context Protocolの公式SDKです。MCPサーバーの実装に必須となります。

リンク

(今回はCursor使用) MCPクライアント(Cursor)の設定ファイル(mcp.jsonに下記を追加)

“commit-log-generator”: {
“command”: “node”,
“args”: [
“/path/to/original-mcp-tool/build/index.js”
],
“env”: {}
}

構成&処理の流れ

ファイル構成

詳細な実装については割愛しますが、下記のような感じになっています

使い方&実行結果

①ローカルサーバーを起動しておきます。

②CursorのChatから呼び出します(Copilot Chat等でも可能です)

プロンプト例 下記を入力(path/toにはGit管理下のディレクトリを指定)

③AIがツールを実行します

④許可すると下記のようなテキストをワンクリックコピー可能な形式で出力してくれます

問題点や課題

出力が安定しない

特定のモデルでツール呼び出ししない、ツール呼び出しできても固定のフォーマット部分が出てこない等の事象を確認しました。自然言語で指示しているのでこのあたりのランダム性を下げるためにチューニングする必要がありそうです。

実用的ではない

現状だとgitのdiffを見て事実を書いているに過ぎず、プロジェクトの背景や実装の目的みたいな部分はコンテキストとして大量に与えないと的確なコメントは書けないです。

コミットログで上記のようなことを記録する目的であればAIで生成する意味があまりなく、背景情報を色々追加する手間を考えると、手書きとそこまで変わらないので効率化にはなっていないと感じました。

今後について

というわけで、AIの精度向上だけでなくサーバー側の実装やチューニングも重要だと感じました。MCPについては、実用的な用途を今後色々探っていきたいと思います。

参考にした記事

MCPサーバー自作入門

上部へスクロール