0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

memory-bankを一括で読み込むMCP serverを作った

Last updated at Posted at 2025-04-02

これです
https://www.npmjs.com/package/memory-bank-loader-mcp

screenshot.png

{
  "mcpServers": {
    "memory-bank-loader": {
      "command": "npx",
      "args": [
        "-y",
        "memory-bank-loader-mcp@latest",
      ],
    }
  }
}

作った経緯

工夫したところ

このdescriptionのテキストを工夫した。
AI agentはこのdescriptionを読んでtoolを使用するかどうかを判断している。

最初用意していたdescriptionだとAI agentは自動ではこのtoolを使ってくれず、従来のやり方でmemory-bankを読んでしまっていた。
「このtool使って」と指示すれば使ってくれるのだが、毎回それだとめんどくさい...
Instructionsとかrulesにそこまで書いておけば毎回指示しなくて済むのだろうが、そんなこと書きたくないし...

これについては直接AI agentに「どうしてタスク開始時にmemory-bankを読むときにこのtoolを使わなかったんですか?」みたいなことを聞いて試行錯誤した。

スクリーンショット 2025-04-03 1.52.39.png
(AI agentはこちらの記事を参考にギャル化されている ギャルとのペアプロが想像以上に楽しかった(VSCodeのカスタム指示))

このdescriptionは例えばclineでは直接システムプロンプトに組み込まれるので、contextを抑えるためにあまり文面が長くない方が良いなとは思いながら作った。
https://github.com/cline/cline/blob/8cd50e7/src/core/prompts/system.ts#L410

(cursorでMCPサーバーをいくつか入れているとtoolが合計で40個までしか登録できないというメッセージが出てくるが、context節約のための制限なのかなと思った。)

課題

感想

AI agentにやってほしいことを事前に見越して、あらかじめそれ用のtoolを用意しておいて使ってもらうという挙動は結構面白いなと思った。
今回はmemory-bankの読み込みがそれだったが、他にも活用の道がいろいろあるように感じた。

実質 MCP を作業フローの Custom Instructions として活用したような気がしてます。こういう手法もアリかも

開発のきっかけとなったヘブンさんの記事にこのような言及があったが、同じことを感じた。
例えばgit commit時の文面のフォーマットを指定したい場合、今だとInstructionsとかrulesに記述すると思う。代わりにリポジトリ専用のローカルなMCPサーバー等を作成して、そのフォーマットを実現するためだけの git-commit toolを作るのもナシではないなと思った。
そうするとフォーマットの詳細はtoolの実装の中に隠蔽することができ、AI agentに対しては「git commit時にはこのtool使ってね」という指示だけしておけば良くなる。
具体的なメリットとして、Instructionsとかrulesにフォーマットの詳細を書かなくてよくなりcontext windowを節約できる。

他の案だと開発環境のセットアップとかもできそう。AI agentに動作確認させるために開発サーバーの起動方法とかをrulesに書いたりしていた場合、そういった指示もtoolに移行して隠蔽することができる。

もっと抽象的な話だとMCPサーバーである必要もあんまりなくて、上記のようなことを実現するscriptを書いておいて、「git commitする場合は./scripts/git-commit.shを使ってください。引数はxxxです。」みたいな指示を書いておけば良い。
今回作ったMCPサーバーもこの方式に置き換えできそう。

なのでこういう用途ならMCPサーバーじゃなくてscript書く方式で全然いいじゃんという気はしつつ、どれくらい安定してscript呼び出ししてくれるのかはちょっと気になるところ。

clineのシステムプロンプトを眺めているとMCPサーバーにはそれなりに手厚い説明が用意されており、script方式に比べると特権的な扱いを受ける可能性はある。
MCPサーバーのtoolとして提供していると安定して呼び出ししてくれるけど、script書いて指示するだけだとあんまり指示守ってくれないみたいなことは起きるのかもしれない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?