mcpField
G
gmem

gmem

ローカル
github.com/yksanjoメモリ・ナレッジ11 週間前に更新

gmem について

gmemは、SolanaおよびEVMプロジェクトで作業するAIコーディングエージェント向けの永続的なプロジェクトメモリを提供するMCPサーバーです。型とバージョンを持つ情報を保存し、ワークスペースやエージェントの活動データを取り込めます。

主な機能

  1. 01型付きで追記専用のプロジェクトメモリ
  2. 02再検索性と新しさを考慮したBM25検索
  3. 03Anchorワークスペースの取り込み
  4. 04Hardhatワークスペースの取り込み
  5. 05Solana CLIコンテキストの取得
  6. 06エージェント活動の取り込みと信頼スコア

活用シーン

  1. 01セッションをまたいだプログラムID、PDAシード、決定事項の保持
  2. 02AnchorまたはHardhatワークスペース情報の記録
  3. 03日時やgit参照によるメモリ変更の確認
  4. 04Solanaエージェントウォレットの保存済み信頼スコアの評価

MCP 対応

gmemは、プロジェクトメモリの検索と書き込み、状態比較、AnchorおよびHardhatワークスペースの取り込み、Solanaコンテキストの取得、エージェント活動の記録とスコア評価を行う9つのMCPツールを公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"gmem": {
"command": "npx",
"args": [
"-y",
"@yksanjo/gmem"
],
"env": {
"GMEM_DB": "<GMEM_DB>"
}
}
}
}
起動コマンドnpx -y @yksanjo/gmem
設定が必要な環境変数
GMEM_DBOverride the auto-resolved memory database path. Defaults to ~/.gmem/<projectHash>/memory.db, with one db file per Solana project (project root resolved from Anchor.toml or workspace Cargo.toml).

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

パッケージ
npm@yksanjo/gmem1.1.0

ツール

7

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
querystringはい想起したい内容の自然言語による説明
kindsarrayいいえ任意:特定のエンティティ種別に絞り込むフィルター
limitintegerいいえ

詳細

gmem

Solana AI エージェントのための永続的なプロジェクトメモリです。

Claude Code、Cursor、その他MCPに対応するツールなど、AIコーディングエージェントにセッションをまたいで持続するSolana対応のプロジェクトメモリを提供するModel Context Protocol(MCP)サーバーです。プログラムID、IDL、PDAシード、デプロイ状態、アーキテクチャ上の決定、監査結果を記録します。エージェントが昨日構築したものを忘れなくなります。

ステータス:v1.2 — EVM対応とエージェントの信頼スコアリングを備えた安定版です。 9つのMCPツールを備え、実装済みです(スタブはありません)。ワイヤーフォーマットには後方互換性があります。

  • ストレージ:better-sqlite3経由のSQLite。プロジェクトごとに1つのdbファイルを使用します(Anchor.toml/ワークスペースのCargo.tomlから自動解決し、GMEM_DBで上書きできます)

  • ランキング:SQLite FTS5のBM25と新しさによるブースト

  • バージョン管理:追記専用です。書き込みのたびに新しい(kind, natural_id, version)行を挿入し、読み取りでは最新の内容を返します。全履歴はプロセス内のStore APIから参照できます

  • Anchorの取り込み:gmem.ingest_anchorがAnchor.tomlを解析し、IDLのsha256を取得して、各ProgramのsourceCommitとしてgit HEADを記録します

  • Solana CLIのコンテキスト:gmem.solana_contextが~/.config/solana/cli/config.ymlを読み取り、クラスターを分類し、アクティブなキーペアの公開鍵を導出します(秘密情報は漏えいしません)。Decisionへのgmem.writeでは、authorとauthorClusterが自動で設定されます

  • Git対応の差分:gmem.diffは、ISOタイムスタンプとgit参照(HEAD、HEAD~3、ブランチ名、完全なSHAおよび短縮SHA)の両方を受け付けます

  • EVM対応(v1.1):gmem.ingest_hardhatがHardhat/hardhat-deployワークスペースを解析し、ネットワークを標準のチェーンID(base-mainnet 8453、optimism-mainnet 10、polygon-mainnet 137、arbitrum-one 42161、ethereum-mainnet 1、およびテストネット)に分類し、並べ替えに依存しないABIのSHA-256を取得します。EVMスマートコントラクト向けに新しいエンティティ種別Contractを追加しました。

  • ライセンス:MIT

  • 仕様:SPEC.mdを参照してください

  • エンティティスキーマ:schema/を参照してください

理由

Solanaは、エージェントを第一に考えた開発者体験へと大きく移行しています。Foundationのawesome-solana-aiリポジトリには、エージェントに物事の「方法」を教える、優れたステートレスなリファレンススキル群が掲載されています。solana-dev-skill、magicblock-dev-skill、metaplex-skill、helius-phantom-skill、solana-game-skillなどです。Solana Developer MCPはドキュメントを提供します。欠けているのは、その上位にあるレイヤー、つまり永続的なプロジェクトメモリです。

現在、SolanaプロジェクトでのClaude Codeのセッションは毎回、何も知らない状態から始まります。エージェントは、昨日デプロイしたプログラムID、2週間前に選んだPDAシード、前回のスプリントで見つかった監査結果、特定のJupiter連携を却下した理由を覚えていません。開発者はコンテキストを貼り付けたり、NOTESファイルを手作業で管理したり、セッションのたびにプロジェクトを説明し直したりして補っています。これは、エージェントを活用するSolana開発者すべてにかかる負担です。

gmemは、汎用的なキー・バリューストアではなく、プログラム、アカウント、命令、PDA、IDL、クラスター状態、Anchor設定といったSolanaのプリミティブに特化することで、この問題を解決します。awesome-solana-aiの既存スキルすべてを補完し、競合しません。

インストール

npm install -g @yksanjo/gmem

または、グローバルにインストールせずに実行するには:

npx @yksanjo/gmem

インストールされるバイナリの名前は、引き続きgmemです。

または、ソースを使って開発するには:

git clone https://github.com/yksanjo/gmem.git ~/gmem
cd ~/gmem && npm install && npm run build

次に、MCPクライアントからこのプログラムを指定します。Claude Codeの場合:

// ~/.claude/mcp_servers.json
{
  "mcpServers": {
    "gmem": {
      "command": "node",
      "args": ["/absolute/path/to/gmem/dist/index.js"],
      "env": { "GMEM_DB": "~/.gmem/memory.db" }
    }
  }
}

公開されるツール(v0.1)

ツール目的
gmem.recall(query)自然言語のクエリに関連するメモリーエントリーを、BM25 と新しさに基づいて順位付けして取得します
gmem.write(entity)型付きメモリーエントリー(Program / Account / Instruction / Decision / Finding / Integration)を永続化します。追記のみです
gmem.diff(from, to)2 つの時点の間でメモリーの状態がどのように変化したかを表示します。ISO タイムスタンプまたは git コミット参照(HEAD、HEAD~3、ブランチ名、完全または短縮 SHA)を受け付けます
gmem.list_decisions()アクティブなプロジェクトのすべての Decision エントリーを新しい順に一覧表示します
gmem.ingest_anchor()Anchor ワークスペースを自動取り込みします。Anchor.toml を解析し、target/idl/ から IDL の sha256 を取得し、現在の git HEAD をソースコミットとして記録し、(プログラム、クラスター)の各組み合わせにつき 1 つの Program を書き込みます
gmem.solana_context()アクティブな Solana CLI 設定(~/.config/solana/cli/config.yml)を読み込み、設定済みのクラスター、RPC URL、アクティブなキーペアの公開鍵を返します。gmem.write が Decision エントリーを開発者のウォレットに自動帰属させるために使用します。秘密鍵は返しません
gmem.ingest_hardhat()v1.1 — Hardhat / EVM ワークスペースを自動取り込みします。hardhat.config.{ts,js,cjs,mjs} を解析し、deployments/<network>/<Contract>.json にあるすべてのデプロイ成果物(hardhat-deploy の規約)を読み込み、ネットワークを正規チェーン(base-mainnet、optimism-mainnet など)に分類し、順序に左右されない ABI の SHA-256 と git HEAD を sourceCommit として記録します。(チェーン、アドレス)の各組み合わせにつき 1 つの Contract エンティティを書き込みます
gmem.ingest_agent_activity(pubkey, cluster?)v1.2 — Helius RPC を使って自律型エージェントのウォレットの Solana アクティビティを取得し、集計(トランザクション数、異なるピア数、失敗率、ウォレットの経過期間、制裁対象の近隣ウォレット数)して、透明性の高い v1 ヒューリスティックでスコアを算出し、(クラスター、pubkey)ごとに 1 つの Agent エンティティを書き込みます。HELIUS_API_KEY を設定するか apiKey を渡してください。fixturePath を指定すると、スナップショットを使ってオフラインで実行できます
gmem.score_agent(pubkey, cluster?)v1.2 — 最新の保存済み Agent 信頼スコアと、各要因の影響を示すヒューリスティックの内訳を返します。読み取り専用です。RPC 呼び出しも書き込みも行いません。最初に gmem.ingest_agent_activity を実行してください

入出力の JSON スキーマ全体は SPEC.md にあります。

実際の Solana プロジェクトでの動作

このリポジトリの examples/ フォルダーでは、合成プロジェクトを使ってプロジェクトメモリーの構造を示しています。以下の関連リポジトリでは、よく知られていると思われる公開 Solana プログラムから同じ構造を構築し、すべてのエンティティにそのソースを引用しています。

  • gmem-example-squads-v4 — Squads マルチシグ。Anchor ワークスペースの自動取り込みと監査ポインター。
  • gmem-example-marginfi-v2 — Marginfi v2 レンディング。IDL に基づき、組み込みの Drift 統合を検出します (6 つの drift_* 命令を自動的に検出)。
  • gmem-example-kamino-klend — Kamino klend。V1/V2 の共存パターン、ファーストクラスのフラッシュローン、オンチェーンのリファラー状態、マイナーリリースごとに継続して行う監査サイクルを、すべて Decision エントリーとして記録します。

各リポジトリは npm install && npm run build で実行できます。生成される gmem.db は、直接確認できるようコミットされています。

v1.0 の対象外

v1 の範囲を正直に保つため、gmem v1.0 にはホスト型のマルチユーザー同期、プロジェクト横断検索、エージェントの評判、オンチェーンのメモリー固定は含まれません。これらは v1.x / v2 向けとして ROADMAP.md で管理されています。

ロードマップ

  • v0.1 — オープンな仕様+JSON スキーマ+MCP サーバーのスタブ
  • v0.2 — SQLite バックエンド、BM25 ランキング、追記専用のバージョン管理
  • v0.3 — Anchor ワークスペースの自動取り込み
  • v0.4 — Solana CLI のコンテキスト取得+Decision の自動帰属
  • v0.5 — gmem.diff での git ref 解決
  • v1.0 — 3 つの実例を含む安定版リリース(DeFi vault、 cNFT mint、AI agent)— 以下も参照 solana-foundation/awesome-solana-ai の PR #168
  • v1.1 — EVM/Hardhat サポート(Base、Optimism、Polygon、Arbitrum、Ethereum、およびテストネット)、 新しい Contract エンティティ、gmem.ingest_hardhat ツール、実例 04-evm-vault
  • v1.2 — エージェントの信頼性スコアリング:新しい Agent エンティティ、gmem.ingest_agent_activity + gmem.score_agent ツール、実例 05-agent-reputation、 MCP Registry サーフェス(server.json 1.2.0)

コントリビューション

この仕様は初期段階にあります。現時点で最も役立つのは、 SPEC.md に関するフィードバックです。エンティティモデルは、あなたの プロジェクトにとって重要な Solana プリミティブを網羅していますか?Issue または PR を作成してください。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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