Skip to main content
Glama
README.md
# MCP Brain Server

AIエージェントに「統合的な知識」を提供するMCPサーバー

## コンセプト

**人間が仕事を覚えるように、AIも知識を学習する**

人間が仕事を習得するプロセス:

1. **観察**: 先輩のやり方を見る
2. **実践**: 自分でやってみる
3. **失敗**: うまくいかない
4. **修正**: フィードバックを受けて調整
5. **定着**: 繰り返して身につく

このサーバーは、AIエージェントに同様の学習サイクルを提供する。

## 機能

### 知識の参照

- タスクに関連する知識を検索
- 知識の詳細を取得

### 知識の学習

- 実行結果の記録(成功/失敗)
- 失敗からの改善点を知識に反映
- 新しい知識の自動生成

### 将来実装

- **自動削除(忘却)**: 使用頻度の低い知識を自動でアーカイブ・削除

## 知識の構造

```
mcp-brain-storage/          # Gitリポジトリ(Obsidianで開ける)
├── .index_cache.pkl        # キャッシュ
├── .index_hash
├── README.md
└── knowledge/              # 知識ファイルはここに配置
    ├── create-pr.md        # フラット形式(Obsidian互換)
    ├── deploy-staging.md
    └── git-commit.md
```

```yaml
---
name: create-pr
description: PRを作成したいとき
version: 1
created: 2025-12-01
---
```

```markdown
PRを作成する方法。

1. 変更をコミット
2. gh pr create --fill
3. レビュアーをアサイン
```

## Tools

| Tool     | 説明                                   |
| -------- | -------------------------------------- |
| `search` | タスクに関連する知識を検索             |
| `get`    | 知識の詳細を取得(関連知識も自動展開) |
| `create` | 新しい知識を作成                       |
| `update` | 既存の知識を更新                       |

### 関連知識の自動連想

`get` で知識を取得すると、**Embeddingベースの類似度**で関連する知識が自動的に展開されます。
手動でリンクを張る必要はありません。脳のように、意味的に近い知識が自動で連想されます。

`hops` パラメータで連想の深さを指定可能(デフォルト: 2)。

```python
# 2ホップ先まで関連知識を取得
get(name="create-pr", hops=2)
```

```json
{
  "name": "create-pr",
  "description": "PRを作成したいとき",
  "content": "## 手順...",
  "related": [
    {
      "name": "git-commit",
      "description": "変更をコミットしたいとき",
      "related": [
        {"name": "git-push", "description": "リモートにプッシュしたいとき", "related": []}
      ]
    }
  ]
}
```

## Git連携

### 自動バージョン管理

知識の作成・更新・削除は**自動的にGitにコミット**されます。

```bash
# 知識ディレクトリをGitリポジトリとして初期化
cd ~/.mcp-brain
git init
git remote add origin git@github.com:your-name/mcp-brain-knowledge.git

# 以降、知識の変更は自動でコミット・プッシュされる
```

### コミットメッセージ

操作に応じて自動生成されます:

- `create: {knowledge-name}` - 新しい知識を作成
- `update: {knowledge-name}` - 既存の知識を更新
- `forget: {knowledge-name}` - 知識を削除

### メリット

- 📝 **履歴管理**: 知識の変更履歴を追跡
- 🔄 **同期**: 複数デバイス間で知識を同期
- 👥 **共有**: チームで知識を共有
- 🔙 **復元**: 削除した知識を復元可能

## インストール

```bash
uv tool install . --force
```

## 開発コマンド

```bash
make help
make doctor
make deps
make lint
make fmt
make test
make dev ARGS="--help"
```

## 設定

### 共通知識(全プロジェクトで共有)

```json
{
  "mcpServers": {
    "brain": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/tomoharu-hayashi/mcp-server-brain.git", "mcp-brain"],
      "env": {
        "MCP_BRAIN_DIR": "~/pj/my/mcp-brain-storage"
      }
    }
  }
}
```

### プロジェクト独立の知識

プロジェクトごとに完全に独立した知識空間を持たせる場合。

#### 1. プロジェクト内に知識ディレクトリを作成

```bash
cd /path/to/your-project
mkdir .brain
cd .brain
git init
git remote add origin git@github.com:your-name/your-project-brain.git
```

#### 2. MCP設定(プロジェクトごと)

VS Code / Cursor の場合、`.vscode/mcp.json` を作成:

```json
{
  "mcpServers": {
    "brain": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/tomoharu-hayashi/mcp-server-brain.git", "mcp-brain"],
      "env": {
        "MCP_BRAIN_DIR": "${workspaceFolder}/.brain"
      }
    }
  }
}
```

#### 3. .gitignore に追加

親リポジトリで `.brain/` が検知されないように:

```gitignore
.brain/
```

### 構成パターン

| パターン         | MCP_BRAIN_DIR               | 用途                                |
| ---------------- | --------------------------- | ----------------------------------- |
| 共通             | `~/pj/my/mcp-brain-storage` | 汎用ワークフロー(Git、PR作成など) |
| プロジェクト独立 | `${workspaceFolder}/.brain` | プロジェクト固有の知識              |
| チーム共有       | リポジトリ内 `.brain/`      | チームで知識を共有                  |