ガイド

エージェントメモリのためのMCPサーバー:Claude CodeをHotKVに接続する

MCPサーバーを使うと、28個の固定ツールを通じてClaude CodeやCursorがHotKVのメモリを利用できます。導入、接続、読み取り専用モードと名前空間による制限を解説します。

Claude CodeなどのアシスタントとHotKVの間に置かれたMCPサーバー。28個の固定ツールを備えています。

MCPサーバーは、AIアシスタントに1回のチャットより長く続くメモリを持たせる、最も簡単な方法です。Claude CodeやCursorなどのクライアントは、チャットが終わるとそのコンテキストを失います。それを解決するために生のデータベースアクセスを渡すのは危険です。hotkv-mcpは、HotKV向けの私たちのオープンソースMCPサーバーです。アシスタントに、ノート、会話履歴、イベントログ、プロンプトテンプレート、ドキュメント検索のための固定のツールセットを提供します。それ以外は一切提供しません。

要点。 hotkv-mcpはApache-2.0のMCPサーバーで、Claude Code、Cursor、VS Code、または独自のエージェントを、28個の固定ツールを通じてHotKVサーバーに接続します。任意のコマンドを実行するツールはないので、アシスタントがデータをフラッシュしたり設定を変更したりすることはできません。読み取り専用モードではすべての書き込みツールが取り除かれ、名前空間によってエージェントは1つのキープレフィックスに閉じ込められます。インストールはpip install hotkv-mcpで、uvxで実行することもできます。

Model Context Protocolとは

Model Context Protocol(MCP)は、AIアプリケーションをデータソース、ツール、ワークフローなどの外部システムに接続するためのオープンな標準です。プロジェクトの紹介ページは、これをAIアプリケーションのUSB-Cポートにたとえています。MCPの用語では、アプリケーションがクライアントで、接続先の各システムはサーバーとして公開されます。

メモリの場合、アシスタントはノートを保存するツールのように、名前の付いたツールを呼び出します。そのツールに何を許すかは、サーバーが決めます。モデルが自分専用のデータベース接続を得ることはありません。

HotKVのMCPサーバーが公開するもの

このサーバーは、HotKVのエージェントメモリ、プロンプトレジストリ、ドキュメント検索を28個のツールで包んでいます。各ツールは、読み取りのみか、書き込みか、削除かを、MCPのアノテーションで宣言します。そのため、クライアントは破壊的なツールの前に承認を求めることができます。

グループツール
サーバーserver_info
キーget, set, delete, key_info, scan
ハッシュとリストhash_get, hash_set, list_range, list_push
会話メモリmemory_append_message, memory_get_messages, memory_clear_messages
作業メモmemory_set_note, memory_get_note, memory_list_notes
イベントログと要約memory_log_event, memory_query_events, memory_set_summary, memory_get_summary
プロンプトレジストリprompt_save, prompt_get, prompt_versions, prompt_list
ドキュメント検索rag_create, rag_ingest, rag_search, rag_list

メモリのツールは、AIエージェントのメモリで説明したストアのうち、会話履歴、作業メモ、イベントログに対応します。埋め込みによるセマンティックな呼び出しは公開していません。rag_searchはキーワードの関連度で順位付けするので、埋め込みは不要です。

キー、ハッシュ、リストのツールは、どのHotKVサーバーでも動作します。メモリ、プロンプト、ドキュメント検索のツールはHotKVのAIエンジンを使うため、それを含むライセンスが必要です。ライセンスがない場合、これらのツールは、サーバーがその機能のライセンスを持っていないというメッセージを返します。キーのツールは引き続き動作します。HotKV CloudのPerformanceプランとScaleプランのインスタンスにはAIエンジンが含まれています(AIページで説明しています)。

インストールと接続

サーバーにはPython 3.10以降が必要です。HotKVサーバー0.3.0と公式のhotkv-clientパッケージに対して作成されており、バージョン1.0.0がPyPIで公開されています。pipでインストールするか、uvを使ってインストールせずに実行できます。

pip install hotkv-mcp
uvx hotkv-mcp --url hotkv://localhost:6379

Claude Code

1つのコマンドで追加できます。Claude CodeのMCPドキュメントにあるとおり、--は、Claude Code自身のオプションと、サーバーを起動するコマンドを区切ります。

claude mcp add hotkv -- uvx hotkv-mcp --url hotkv://localhost:6379

CursorとClaude Desktop

mcpServersファイルを読み込むクライアントでは、同じサーバーをJSONのエントリとして指定します。パスワードはHOTKV_URL環境変数かクライアントのシークレットストアに置いてください。コマンドラインは、マシンの他のユーザーから見えるためです。TLS接続にはhotkvs://を使います。

{
  "mcpServers": {
    "hotkv": {
      "command": "uvx",
      "args": ["hotkv-mcp", "--read-only"],
      "env": { "HOTKV_URL": "hotkv://:your-password@localhost:6379" }
    }
  }
}

動作の確認

claude mcp listを実行して、サーバーが登録されていることを確認します。次に、アシスタントにserver_infoツールを呼び出すよう依頼します。これはHotKVのバージョンとメモリ使用量を返し、名前空間が未設定の場合はキーの数も返します。また、サーバーが読み取り専用かどうかと、どの名前空間に制限されているかも報告します。これで、セーフガードが有効になったことを確認できます。

エージェントを安全な範囲に収める

ツールを呼び出せるモデルは、ツールを悪用するよう言いくるめられる可能性もあります。そのため、機能より制限の方が重要です。

アシスタントがhotkv-mcpのツールを呼び出します。リクエストがHotKVに届く前に4つの制御が適用されます。28個の固定ツール、任意の読み取り専用モード、任意の名前空間、値のサイズと項目数の上限です。
アシスタントとHotKVの間にある4つの制御。読み取り専用モードと名前空間は、ご自身で有効にするオプションです。

任意のコマンドは実行できない

生のコマンドを実行するツールはありません。28個のツールのどれもそれを行わないので、アシスタントがデータベースをフラッシュしたり、サーバーの設定を変更したりすることはできません。ただし、ツールが届くキーはどれでも読み取れます。そのため、次に説明する名前空間が重要になります。

読み取り専用モード

--read-onlyは、書き込みを行うすべてのツールを取り除きます。set、delete、hash_set、list_push、追加や消去を行うメモリのツール、prompt_save、rag_create、rag_ingestが含まれます。エージェントにはそれらが見えもしません。メモリを参照するだけで、変更はさせないアシスタントに使ってください。

名前空間とサイズの上限

--namespace PREFIXは、すべてをそのプレフィックスの下に保存します。エージェントにはプレフィックスが見えず、ほかの名前に到達することもできません。エージェントごとに、ほかのプレフィックスの先頭にならないプレフィックスを割り当ててください。agentとagent:bではなく、agent-aとagent-bを使います。そうしないと、短い方が長い方の名前に到達できてしまいます。

結果にも上限があります。--max-value-bytesは長い値を切り詰めて、切り詰めたことを示すフラグを付けます。デフォルトは65,536バイトです。--max-itemsは、1回の呼び出しが返すキー、リスト項目、ヒットの数を制限し、デフォルトは200です。そのため、巨大な値が1つあっても、モデルのコンテキストがあふれることはありません。ハッシュ全体の読み取りには項目数の上限が適用されないので、大きなハッシュはエージェントの名前空間に置かないでください。

HTTPトランスポートにはログインがない

デフォルトのstdioトランスポートは、クライアントがサブプロセスとして起動します。共有利用のために、hotkv-mcp --transport streamable-httpを実行すると、127.0.0.1:8000の/mcpで待ち受けます。呼び出し元の認証は行いません。localhostに留めるか、認証を行うリバースプロキシの背後に置き、専用の名前空間を与えてください。

チーム向けの構成の選び方

適切なフラグは、各エージェントの用途によって異なります。以下のオプションはすべてコマンドラインのフラグです。--read-onlyと--namespaceには、環境変数のHOTKV_MCP_READ_ONLYとHOTKV_MCP_NAMESPACEもあります。

構成フラグ使う場面
1人での試用--namespace trialローカルのサーバーでツールを試すとき
共有ノートの閲覧--read-only --namespace team-docsアシスタントがプロンプトやノートを参照するだけで、変更はさせないとき
エージェントごとに書き込み先を分ける各エージェントに--namespace agent-a複数のエージェントがそれぞれ自分のメモリを持ち、互いに見えてはいけないとき
共有サービス認証を行うプロキシの背後で--transport streamable-httpチームが1つのサーバーを共有し、誰が到達できるかを管理できるとき

目的を満たす中で最も制限の厳しい行から始めてください。アクセスを後から広げるのは簡単ですが、エージェントがすでに書き込んだものを取り戻すのは困難です。

最初のセッションを順に試す

短い試用で、実際のノートを任せる前に、セーフガードの働きを確認できます。使い捨ての名前空間と、AIエンジンのライセンスがあるローカルのHotKVサーバーを使ってください。ライセンスがないと、メモリのツールは動作しません。

  1. 名前空間を付けて接続する。 claude mcp add hotkv -- uvx hotkv-mcp --url hotkv://localhost:6379 --namespace trialを実行します。
  2. 制限を確認する。 アシスタントにserver_infoを呼び出して、名前空間と読み取り専用かどうかを報告するよう依頼します。trialで、読み取り専用ではないと答えるはずです。
  3. ノートを保存する。 ステージングサイトが特定のアドレスにあることを、サイト名にちなんだ名前のノートとして覚えておくよう依頼します。アシスタントはmemory_set_noteを呼び出し、セッションは初回利用時に作成されます。
  4. 新しいチャットで読み戻す。 新しい会話を始めて、そのセッションにどんなノートがあるかを尋ねます。memory_list_notesとmemory_get_noteが呼び出され、ノートは残っています。
  5. 判断を記録する。 イベントログに判断を記録するよう依頼します。memory_log_eventが呼び出され、後でmemory_query_eventsでそれを取り出せます。
  6. 書き込みアクセスを外す。 古いエントリを削除し、--read-onlyを付けて再接続して、手順4を繰り返します。読み取りは引き続き動作し、書き込みを行うツールは提示されなくなります。

手順6が説明どおりに動作すれば、最も重要な2つの制御、名前空間と読み取り専用モードの働きを確認できたことになります。

アシスタントが保存したものは、読み戻すときには信頼できないテキストとして扱ってください。メモリの記事の保存されたテキストを信頼しないで説明しているとおりです。Webページから書き込まれたノートには、指示が含まれていることがあります。

トラブルシューティング

  • "This HotKV server is not licensed for that feature." メモリ、プロンプト、ドキュメント検索のツールには、AIエンジンを含むHotKVライセンスが必要です。キー、ハッシュ、リストのツールは、ライセンスなしでも動作します。
  • 接続に失敗する。 URLのスキームを確認してください。hotkv://、hotkvs://(TLS)、redis://、rediss://のすべてが使え、パスワードはhotkv://:password@host:6379のようにURLに含めます。
  • 値が途中で切れて返る。 結果が--max-value-bytesを超えると、切り詰められたことを示すフラグが付きます。上限を上げるか、より小さい値を保存してください。
  • 書き込みツールがない。 サーバーの引数に--read-onlyがないか、環境にHOTKV_MCP_READ_ONLYがないかを確認してください。
  • 以前に保存した名前をアシスタントが見つけられない。 同じセッション名またはエージェント名を使ったか、サーバーが以前と同じ名前空間で動作しているかを確認してください。
  • uvxが見つからない。 uvをインストールするか、パッケージをpipでインストールしてhotkv-mcpを直接起動してください。

よくある質問

MCPサーバーとは何ですか?

MCPサーバーは、Model Context Protocolを通じて、ツール、データ、ワークフローをAIアプリケーションに公開するプログラムです。クライアントと呼ばれるアプリケーションがツールを一覧し、名前で呼び出します。各ツールに何ができるかは、サーバーが正確に制御します。

Claude CodeにMCPサーバーを追加するにはどうすればよいですか?

claude mcp add <name> -- <command>を実行します。HotKVの場合はclaude mcp add hotkv -- uvx hotkv-mcp --url hotkv://localhost:6379です。その後、claude mcp listで登録されたことを確認してください。

HotKVのMCPサーバーをAIアシスタントに渡しても安全ですか?

アシスタントにできることを制限します。28個の固定ツールを提供し、任意のコマンドはなく、読み取り専用にすることも、1つの名前空間に閉じ込めることもでき、結果のサイズにも上限があります。保存されたテキストを信頼できるものにすることはできず、HTTPトランスポートには認証がないので、localhostに留めてください。

HotKVのMCPサーバーはCursorやVS Codeで動作しますか?

READMEは、想定するクライアントとしてCursorとVS Codeを挙げています。stdio経由でMCPサーバーを起動できるクライアントなら、どれでも実行できます。CursorとClaude Desktopは、上で示したようにmcpServersファイルを読み込みます。ほかのクライアントではその設定の名前が異なるため、お使いのクライアントのドキュメントをご確認ください。すべてのクライアントでテストしたわけではありません。

hotkv-mcpを使うにはHotKVのライセンスが必要ですか?

サーバー自体はApache-2.0で、キー、ハッシュ、リストのツールはライセンスなしで動作します。メモリ、プロンプトレジストリ、ドキュメント検索のツールには、AIエンジンを含むHotKVライセンスが必要です。

アシスタントは意味で検索できますか?

このサーバーを通じてはできません。ドキュメント検索はキーワードの関連度で順位付けするので、埋め込みモデルは不要で、セマンティックメモリはツールとして公開されていません。意味による呼び出しには、ご自身の埋め込みとあわせてHotKVのクライアントライブラリを使ってください。

アシスタントを1つのプロジェクトのメモリに限定できますか?

はい。そのプロジェクト用のプレフィックスを付けて、たとえば--namespace project-xのようにサーバーを起動します。アシスタントにはプレフィックスが見えず、その外の名前には到達できません。プロジェクトごとに異なるプレフィックスを使い、ほかのプレフィックスの先頭になるものは避けてください。

hotkv-mcpをHTTPで実行するにはどうすればよいですか?

hotkv-mcp --transport streamable-http --host 127.0.0.1 --port 8000で起動します。/mcpを提供し、呼び出し元を認証しないので、localhostに留めるか、認証を行うリバースプロキシの背後に置いてください。専用の名前空間を与え、クライアントが読み取るだけで足りる場合は--read-onlyを使います。

MCPサーバーではなくクライアントライブラリを使うべきなのはどんなときですか?

MCPにすでに対応しているアシスタントには、MCPサーバーを使います。独自のアプリケーションコードからは、クライアントライブラリでHotKVを呼び出してください。クライアントライブラリは、28個のツールにない、埋め込みによるセマンティックな呼び出しも提供します。

お役に立ちましたか?

記事を共有

会話を続けましょう

コメント

手法について質問がありますか?お使いのハードウェアで異なる結果が出ましたか?わかったことをぜひ共有してください。コメントは審査後に表示されます。

コメントを書く

表示名とコメントは承認後に公開されます。メールアドレスは上記の通知にのみ使用され、公開されることはありません。入力を始めると、Cloudflare Turnstileがスパムをチェックします。 プライバシーの詳細.