mcpField
G
getMe MCP Server

getMe MCP Server

ローカル
github.com/AatirNadimデータベース020 週間前に更新

getMe MCP Server について

getMe MCP Serverは、永続化Go製キーバリューストアをMCPツールとしてLLMクライアントに公開します。追記型ログとメモリ内ハッシュインデックスを備え、Unix Domain Socketでローカル通信します。

主な機能

  1. 01永続化キーバリューストア
  2. 02追記型ログとメモリ内インデックス
  3. 03容量を回収するバックグラウンド圧縮
  4. 04Unix Domain Socket通信
  5. 05CLI、HTTPプロキシ、多言語SDK

活用シーン

  1. 01LLMクライアントによるキー値データの読み書き
  2. 02CLIを使ったローカルストアのデバッグ
  3. 03HTTPルート経由でのストレージエンジン利用

MCP 対応

MCPサーバーはgetMeのデータベース操作をツールとして公開し、LLMクライアントから呼び出せます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"aatirnadim-getme": {
"command": "uvx",
"args": [
"getme-mcp-server"
],
"env": {
"GETME_SOCKET_PATH": "<GETME_SOCKET_PATH>",
"GETME_READ_ONLY": "<GETME_READ_ONLY>",
"GETME_ALLOW_CLEAR": "<GETME_ALLOW_CLEAR>",
"GETME_KEY_PREFIX": "<GETME_KEY_PREFIX>"
}
}
}
}
起動コマンドuvx getme-mcp-server
設定が必要な環境変数
GETME_SOCKET_PATHPath to the UNIX socket for getMe core server
GETME_READ_ONLYIf true, only get and get_json tools are registered
GETME_ALLOW_CLEARIf true, enables the dangerous clear tool
GETME_KEY_PREFIXシークレットString prefix prepended to all keys (e.g. agent1:)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypigetme-mcp-server1.1.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

getMe ロゴ
高性能キー・バリューストア

Docker Image Go SDK Java SDK JS SDK Python SDK MCP Server License: AGPL v3

📑 目次

📖 概要

getMe は、Go で書かれた永続的で組み込み可能なキー・バリューストアです。Bitcask の設計に着想を得ており、高い書き込みスループットと低レイテンシの読み取りに最適化されています。

ログ構造型のストレージ方式を採用し、すべてのデータを順次追記することで、データの整合性を確保します。非常に高速なローカルプロセス間通信には Unix ドメインソケット(UDS)を使用し、HTTP プロキシ、CLI、LLM 向けの Model Context Protocol(MCP)サーバーなど、複数のインターフェースも提供しています。

🏗 プロジェクト構成

このプロジェクトは、コアストレージサーバー、複数のクライアントインターフェース、各種ツールを含むモノレポです。

  • server/:コアストレージデーモンとエンジンです。永続ストレージ用のログ構造型ハッシュテーブルを実装しています。アーキテクチャの詳細については、server/README.md を参照してください。
  • cli/:テストやデバッグに使用する、getMe サーバーとやり取りするためのコマンドラインインターフェースです。
  • sdks/:アプリケーションに getMe を統合するためのクライアントライブラリ(goSdk、javaSdk、jsSdk、pythonSdk)です。
  • http-proxy-go/:goSdk を使用して構築された HTTP サーバーです。コアエンジンの Unix ドメインソケット接続を標準の HTTP ルート経由で公開します。
  • mcp-server/:getMe データベースを LLM(Claude や Cursor など)向けのツールとして公開する Model Context Protocol(MCP)サーバーです。
  • commons/:モノレポ全体で使用する共有コード、ソケットパス、型、定数です。一貫性を保つために使用されます。
  • utils/:ログスタックの構成(Loki + Alloy + Grafana)などを含む、共有ユーティリティパッケージです。

注目ポイント: 厳選された各モジュールのドキュメントは、システム全体を理解するための最短ルートです。まず server/README.md でアーキテクチャの基礎を確認し、次に統合について cli と mcp-server の各モジュールを参照してください。

🧠 コアアーキテクチャ

ストレージエンジンは、いくつかの基本原則に基づいています。

  • ログ構造化ストレージ:すべてのデータは追記専用のログファイルに書き込まれます。遅いランダムディスク I/O を避けるため、書き込みが非常に高速です。
  • メモリ内ハッシュインデックス:ハッシュテーブルをメモリ内に保持し、各キーとディスク上の値の正確な位置を対応付けます。これにより、読み取り処理を非常に高速に行えます(通常、ディスクシークは 1 回です)。
  • コンパクション:ログファイル内の古くなったデータを定期的に整理し、ディスク容量を再利用するバックグラウンドプロセスです。
  • 高速なローカルトランスポート:通信の大部分に Unix ドメインソケットを使用することで、ローカル環境で標準的な TCP のオーバーヘッドを回避します。

🚀 はじめに

サーバーの実行

このリポジトリには、環境をセットアップするためのヘルパースクリプトが含まれています。

オプション A:ローカルバイナリ+ロギングスタック

サーバーモジュールに移動し、ローカル初期化スクリプトを実行します。

cd server
./init-server-local.sh

このスクリプトは、Go バイナリを server/dist/ にビルドし、データ、ログ、ソケット用のディレクトリを準備します。また、Docker Compose で Loki + Alloy + Grafana のロギングスタックを起動してから、サーバーをフォアグラウンドで起動します。

警告: このスクリプトに sudo を付けて実行しないでください。必要な場合は、スクリプト内で昇格した権限を使用します。先頭に sudo を付けると、ローカル開発で権限エラーが発生します。

オプション B:Docker Compose のフルスタック

同じ server ディレクトリから、次を実行します。

cd server
./init-server-docker.sh

これにより、ホスト側のディレクトリが存在することを確認し、UID/GID をエクスポートして、docker compose up --build を実行し、すべてをコンテナ内で起動します。

CLI の使用

ローカルサーバーを直接操作します。

cd cli
go run . put mykey "hello world"
go run . get mykey
go run . delete mykey
HTTP プロキシ

Unix ソケットではなく、標準的な HTTP REST エンドポイントを使用する場合は、Go HTTP プロキシを実行します。

cd http-proxy-go
go run main.go -port 8080

これにより、curl http://localhost:8080/get?key=mykey を実行できるようになります。

MCP サーバー

getMe は、Model Context Protocol を通じて LLM クライアント(Claude Desktop など)から利用できます。

cd mcp-server
uv run getme-mcp-server

(設定および統合の手順については、mcp-server/README.md を参照してください。)

📊 ベンチマークとテストの実行

パフォーマンスの低下がないことを確認したり、データベースに負荷をかけてテストしたりするには:

  1. 対象のモジュール(例:server)に移動します。
  2. 標準テストを実行します。
    go test ./...
    
  3. ベンチマークを実行します。
    go test -bench . ./...
    
    (注:より負荷の高いストレステストや正確性テストについては、server/tests/ を確認してください。)

📦 SDK

複数の言語向け SDK を利用できます。sdks/ ディレクトリにあります。

すべての SDK は Unix ドメインソケットと直接やり取りし、最適なレイテンシを実現します。

⚠️ SDK のリリースに関する注意: SDK のバージョン管理と公開は、一時的なリリース構造を通じて自動的に管理されます。CI/CD パイプラインは、切り離されたコミットの作成とタグ付けから、変更履歴の生成、公開レジストリへのビルドのプッシュまで、リリースのライフサイクル全体を単一のバンプ種別のトリガーから自動的に調整します。これにより、main ブランチに意味のないバージョン更新コミットが一切含まれない状態を保ちます。 コードを確認したり、コントリビュートしたりする場合は、PR で バージョンを手動で更新しないでください。この高度なアーキテクチャの詳細については、SDK の README をご覧ください。

📄 ライセンス

このプロジェクトは GNU Affero General Public License v3.0(AGPLv3)の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。