プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。プロトタイプ · 30分ごとに更新
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Graphkeeper

作者:RudrenduPaulバージョン 0.1.5i★ 0iパソコンで動く
レジストリ名io.github.RudrenduPaul/graphkeeper

インストール方法

What it does

Mines git history for file co-change patterns into a queryable knowledge graph via MCP.

  • Connects パソコンで動く
  • Account or key No key needed
  • Category 検索・AIの記憶

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 3/3 合格 · あなたのパソコンで動きます

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. パソコン版 Claude アプリの設定ファイルを開く

    SettingsDeveloperEdit Config

  3. この設定を貼り付けて保存

    コマンドを確認中 · 確認が通るとコピーボタンが出ます

  4. Claude を終了してもう一度開く

  5. 試してみる

    Graphkeeper を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が Graphkeeper を使っていると言うか、回答に Graphkeeper のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT はまだ Graphkeeper につなげません

Graphkeeper はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません

代わりにできること

A · Graphkeeper につなげるアプリを使う

  • 先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
  • 先にパソコンへ Python (uv) を入れてください(1 回だけ)
  • 先にパソコンへ Python (uv) を入れてください(1 回だけ)
  • 先にパソコンへ Python (uv) を入れてください(1 回だけ)

B · 検索・AIの記憶 の中で ChatGPT につなげる別のサーバー

同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました

Claude Code につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ)

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  3. このコマンドを貼り付けて Enter

    コマンドを確認中 · 確認が通るとコピーボタンが出ます

  4. Claude Code で /mcp と入力

    Graphkeeper が一覧にあり、接続済みと表示されれば OK です

  5. 試してみる

    Graphkeeper を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が Graphkeeper を使っていると言うか、回答に Graphkeeper のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ)

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. このボタンで Cursor を開く

    コマンドを確認中 · 確認が通るとコピーボタンが出ます

  3. Cursor の AI チャットを Agent モードで開く

  4. 試してみる

    Graphkeeper を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が Graphkeeper を使っていると言うか、回答に Graphkeeper のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ)

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. このボタンで VS Code を開く

    コマンドを確認中 · 確認が通るとコピーボタンが出ます

  3. VS Code の AI チャットを Agent モードで開く

  4. 試してみる

    Graphkeeper を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が Graphkeeper を使っていると言うか、回答に Graphkeeper のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

JSON 設定は下の「開発者向け」にあります

つまずいたら?Graphkeeper を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

パソコンにインストール

Claude Code

コマンドを確認中 · 確認が通るとコピーボタンが出ます

Claude Desktop (claude_desktop_config.json)

コマンドを確認中 · 確認が通るとコピーボタンが出ます

Cursor (~/.cursor/mcp.json)

コマンドを確認中 · 確認が通るとコピーボタンが出ます

VS Code (mcp.json)

コマンドを確認中 · 確認が通るとコピーボタンが出ます

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

ひと目でわかる

週あたりのダウンロードi
20/週
接続方法
パソコンで動く
最新バージョンi
0.1.5
レジストリ公開日i
2026年8月11日
コードの最終更新i
2026年10月21日
作者
RudrenduPaul
パッケージ
pypi: graphkeeper-cli
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月13日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント RudrenduPaul で確認済みです

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:23 日前

  • ✓ 合格

    ライセンスがある

    Apache-2.0を使用

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

Google でログインして投稿

ユーザーレビュー

まだレビューはありません

Google でログインしてレビューを書く

検索・AIの記憶のほかのサーバーとの比較i

  • このカテゴリのほかの6042件のうち0%よりスターが多い
  • このカテゴリのほかの6042件のうち27%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの6042件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Graphkeeperは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は23 日前、最新バージョン(0.1.5)がレジストリに届いたのは3 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。

代わりに使えるものは?

同じカテゴリには:Context7, Codebase Memory, Ruflo

同じカテゴリのほかの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Context7

Up-to-date docs for AI agents

作者:upstash広く使われている↓ 125万/週★ 6.5万昨日更新

パソコンでもクラウドでも

Codebase Memory

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

作者:DeusData広く使われている↓ 1.7万/週★ 4.9万27 日前更新

パソコンで動く

Ruflo

Agent teams, swarms, memory and hooks for Claude Code and Codex, served over MCP.

作者:ruvnet広く使われている↓ 7.4万/週★ 8.2万 リポジトリ全体のスター今日更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

GraphKeeper

Install • Quickstart • CLI Reference • Comparison • FAQ

A local-only CLI that mines your git log for which files actually change together, then hands an AI coding agent a queryable answer instead of a grep across the whole history.

npx graphkeeper-cli build

npx graphkeeper-cli query co-change src/git.ts

Files that historically change alongside "src/git.ts":

1 src/store.ts 1 src/types.ts 1 test/git.test.ts 1 test/store.test.ts 1 test/test-helpers.ts

(Real output from running GraphKeeper against its own repo, this early in its history. Co-change counts grow as a codebase accumulates more commits.)

No server, no account, no embeddings API. Every byte of output comes from git log on the repo you already have checked out.

Install

GraphKeeper ships two independent, equally first-class packages. Pick whichever fits your toolchain, or install both. Both mine the same git log co-change signal and share one on-disk .graphkeeper/graph.json schema, so a store built by either can be read back by the other.

# npm -- JavaScript/TypeScript CLI + library

npm install -g graphkeeper-cli

or run it once with no install

npx graphkeeper-cli build

PyPI -- Python CLI + library (genuine port, not a wrapper around the Node binary)

pip install graphkeeper-cli

The npm package requires Node.js 18 or later; the Python package requires Python 3.9 or later. Both require git on your PATH. The Python package's CLI entry point is also graphkeeper (e.g. graphkeeper build). See python/README.md for the Python-specific walkthrough, and CHANGELOG.md for each distribution's version history.

Quickstart

Run it against any git repo, including this one:

git clone https://github.com/RudrenduPaul/GraphKeeper.git

cd GraphKeeper graphkeeper build

GraphKeeper build complete: /path/to/GraphKeeper

Co-change graph: 4 commit(s) analyzed, 80 file pair(s) found graphify enrichment: skipped -- graphify was not found on PATH. Install it with uv tool install graphifyy (or pipx install graphifyy) for symbol/call-graph enrichment; GraphKeeper works fine without it, in co-change-only mode.

Wrote /path/to/GraphKeeper/.graphkeeper/graph.json

Now query it:

graphkeeper query co-change src/git.ts
Files that historically change alongside "src/git.ts":

1 src/store.ts 1 src/types.ts 1 test/git.test.ts 1 test/store.test.ts 1 test/test-helpers.ts

If graphify is installed (uv tool install graphifyy), graphkeeper build automatically shells out to its local, no-API-key graphify extract --code-only and merges its symbol/call-graph into the same store, unlocking call-graph queries:

graphkeeper query calls mineCoChange
mineCoChange() (src/git.ts)

Calls (2): --> assertIsGitRepo() --> runGit()

Called by (1): <-- build()

(Also real output, from running graphkeeper build against this repo with graphify installed.)

Without graphify installed, that same command explains exactly why the answer isn't available instead of crashing or returning an empty result:

Call-graph query for "mineCoChange" is not available.

graphify was not found on PATH. Install it with uv tool install graphifyy (or pipx install graphifyy) for symbol/call-graph enrichment; GraphKeeper works fine without it, in co-change-only mode.

Every command also supports --json for scripts and agents:

graphkeeper query co-change src/git.ts --json
{

"file": "src/git.ts", "results": [ { "file": "src/store.ts", "count": 1 }, { "file": "src/types.ts", "count": 1 }, { "file": "test/git.test.ts", "count": 1 }, { "file": "test/store.test.ts", "count": 1 }, { "file": "test/test-helpers.ts", "count": 1 } ] }

Features

  • Mines real commit history, not a static snapshot. graphkeeper build runs git log --no-merges --name-only across the full history of the repo and counts every file pair that changed together in the same commit. There's no guessing at coupling from folder structure or import statements alone; the answer comes from how the codebase actually got edited over time.
  • `--max-files-per-commit` protects the signal. A single vendoring commit or mass reformat that touches 400 files would otherwise pollute every pair in that commit. The default cap (100 files) skips commits above that threshold so real coupling doesn't drown in noise.
  • Optional call-graph enrichment, never required. When graphify is on PATH, graphkeeper build shells out to its local graphify extract --code-only --no-cluster and merges the resulting symbol/call edges into the same store, unlocking graphkeeper query calls. Without graphify, GraphKeeper still works in co-change-only mode and says so plainly instead of failing.
  • Every command has a `--json` mode. graphkeeper query co-change --json and the equivalents return machine-readable output, so an agent's calling code parses a real data structure instead of scraping text.
  • Two from-scratch implementations, one schema. The npm package (src/, TypeScript) and the PyPI package (python/src/graphkeeper/, Python) are independent ports, not a wrapper of one around the other. Both read and write the same .graphkeeper/graph.json, so a store built with one CLI is queryable from the other.
  • Every subprocess call uses an argv array, never a shell string. Git and graphify are both invoked through spawnSync/subprocess.run with a list of arguments, so a crafted commit message or filename in the repo being analyzed can't be interpreted as shell syntax.

CLI Reference

Usage: graphkeeper [options] [command]

Options: -V, --version output the version number -h, --help display help for command

Commands: build [options] [path] Mine git history for co-change and (if available) merge in graphify's symbol/call graph query Query the GraphKeeper store built by graphkeeper build help [command] display help for command

graphkeeper build [path]

Walks path (default: current directory), runs git log --no-merges --name-only across the whole history, and counts how often each pair of files was touched in the same commit. Writes the result to .graphkeeper/graph.json.

OptionDescription
--jsonemit machine-readable JSON instead of human-readable text
--max-files-per-commit skip commits touching more than this many files (default: 100), keeping a single mass-reformat or vendoring commit from drowning out real co-change signal
--no-graphifyskip graphify enrichment even if graphify is installed

If graphify is detected on PATH, build also runs graphify extract --code-only --no-cluster (graphify's own headless, local, no-API-key AST extraction path) into a directory inside .graphkeeper/, and merges its nodes/edges into the same store. The build output always states plainly whether that enrichment was included, and why it was skipped if not.

graphkeeper query co-change

Lists files that historically changed alongside , ranked by how many commits touched both.

OptionDescription
--jsonemit machine-readable JSON instead of human-readable text
--limit cap the number of results
--graph path to a specific graph.json (default: /.graphkeeper/graph.json)

Exit code 0 when results are found, 1 when there's no co-change data for that file yet, 2 on a usage or filesystem error.

graphkeeper query calls

Shows callers and callees of , using graphify's calls edges from the most recent build. Only meaningful when that build included graphify enrichment; if it didn't, this prints a clear explanation of why instead of a crash or a silent empty result.

OptionDescription
--jsonemit machine-readable JSON instead of human-readable text
--graph path to a specific graph.json (default: /.graphkeeper/graph.json)

Exit code 0 when the symbol is found, 1 when it isn't (or enrichment wasn't available), 2 on a usage or filesystem error.

MCP Server

GraphKeeper ships a Model Context Protocol server so an AI coding agent (Claude, Cursor, or any MCP-compatible client) can mine co-change history and query the graph directly, without a human invoking the CLI by hand.

Install the extra:

pip install "graphkeeper-cli[mcp]"

Add it to your MCP client's config (for Claude Desktop, claude_desktop_config.json):

{

"mcpServers": { "graphkeeper": { "command": "uvx", "args": ["--from", "graphkeeper-cli", "graphkeeper-mcp"] } } }

The server exposes one tool, run, that shells out to the published graphkeeper-cli npm package (via npx graphkeeper-cli) with the given subcommand and arguments plus --json, and returns the parsed JSON result:

run(["build", "."])

run(["query", "co-change", "src/git.ts"])

Transport is stdio, so there is nothing to host: the MCP client spawns the server as a local subprocess. Source: python/src/graphkeeper/mcp_server.py.

Library API Reference

Both packages expose a real importable surface, listed below. The command line is a thin wrapper over the same functions.

TypeScript / JavaScript (graphkeeper-cli on npm)
import { build, queryCoChange } from "graphkeeper-cli";

const result = build("."); console.log(${result.store.commitsAnalyzed} commit(s) analyzed);

const coChange = queryCoChange(result.store, "src/git.ts"); for (const row of coChange.results) { console.log(row.count, row.file); }

ExportSignature
buildbuild(targetPath: string, options?: BuildOptions): BuildResult
queryCoChangequeryCoChange(store: GraphKeeperStore, file: string, options?: { limit?: number }): CoChangeQueryResult
queryCallsqueryCalls(store: GraphKeeperStore, symbol: string): CallsQueryResult
findGraphifyNode`findGraphifyNode(nodes: GraphifyNode[], symbol: string): GraphifyNode \null`
normalizeFileArgnormalizeFileArg(store: GraphKeeperStore, file: string): string

| detectGraphify | `detectGr

冒頭だけを表示しています。続きはリポジトリで読めます