Skip to content

refactor(mcp): usagi-session を usagi サーバに統合#177

Merged
kkyosuke merged 1 commit into
mainfrom
refactor/unify-mcp-servers
Jun 17, 2026
Merged

refactor(mcp): usagi-session を usagi サーバに統合#177
kkyosuke merged 1 commit into
mainfrom
refactor/unify-mcp-servers

Conversation

@kkyosuke

Copy link
Copy Markdown
Owner

目的

MCP サーバが usagi(issue・memory)と usagi-session(session)の 2 つに分かれており、エージェント側で 2 サーバの登録が必要だった。これを単一の usagi サーバに統合し、usagi mcp の 1 登録だけで issue・memory・session の全 tool を使えるようにする。

変更内容

  • presentation/mcp/usagi.rs を新設: UsagiMcpServer が issue/memory サーバ(mcp/issue/)と session サーバ(mcp/session.rs)を合成。tools/list で 15 tool(issue 6 + memory 6 + session 3)を 1 サーバで公開し、tools/call を tool 名で各サーバへ振り分ける。
    • issue/memory(純粋なリポジトリ操作)と session(session_prompt で実エージェントを起動する AgentBackend が必要)は依存が異なるため、独立サーバ・独立テストのまま合成する設計。
  • エントリポイント: usagi mcpcli/mcp.rs)が UsagiMcpServer を起動。session_prompt 用の本番 AgentBackend(旧 session_mcp.rs のシェルアウト)もここへ集約。usagi session-mcp コマンドと cli/session_mcp.rs を削除。
  • エージェント起動設定(domain/settings.rs: 自動 wire する --mcp-configusagi 1 エントリに変更(usagi-session を削除)。
  • ドキュメント / カバレッジ設定: 03-mcp.md を統合サーバの正本として再構成(session tool・session_prompt の挙動・アーキテクチャを追記)、05-session-mcp.md を削除。01-cli.md / 01-overview.md / 02-architecture.md / 04-orchestration.md / 各 README の参照を更新。scripts/coverage.sh の除外リストから session_mcp.rs を削除。

テスト・確認方法

  • cargo fmt / cargo clippy --all-targets -- -D warnings クリーン
  • cargo test 全テスト合格(失敗 0)
  • カバレッジ 100%(lines / functions)維持
  • 動作確認: usagi mcptools/listusagi 名で 15 tool を返す/usagi session-mcpunrecognized subcommand

補足

エージェント起動時に usagi が自動生成する MCP 設定は本 PR で usagi 1 エントリになる。手動で usagi_session を登録している環境では、そのエントリを削除すれば session tool も usagi から使える。

🤖 Generated with Claude Code

issue/memory を公開する usagi サーバとセッション操作を公開する
usagi-session サーバを、単一の usagi サーバ(usagi mcp)に統合する。
エージェントは MCP サーバを 1 つ登録するだけで issue・memory・session の
全 tool を使えるようになる。

- presentation/mcp/usagi.rs を新設。UsagiMcpServer が issue/memory サーバと
  session サーバを合成し、tool のマージと振り分けを担う。
- usagi mcp が UsagiMcpServer を起動。session_prompt 用の本番 AgentBackend
  も cli/mcp.rs へ集約。
- usagi session-mcp コマンドと cli/session_mcp.rs を削除。
- エージェント起動の --mcp-config を usagi 1 エントリに変更。
- ドキュメント(03-mcp.md ほか)を統合後の構成に更新し、05-session-mcp.md を削除。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

📊 Test Coverage

🚀 いまのカバレッジ (Lines): 100.00% — この調子でいこう!

🎉✨ パーフェクト!全ファイル Lines カバレッジ 100% を達成しました 🏆🐰

@kkyosuke kkyosuke merged commit 43d03d2 into main Jun 17, 2026
4 checks passed
@kkyosuke kkyosuke deleted the refactor/unify-mcp-servers branch June 17, 2026 23:08
kkyosuke added a commit that referenced this pull request Jun 18, 2026
## 目的

`Cargo.toml` の version を `0.0.2` → `0.0.3`
に上げ、リリース自動化(`auto-release.yml`)を起動する。

## 変更内容

- `Cargo.toml` / `Cargo.lock` の version を `0.0.3` に更新。

## v0.0.2 以降の主な変更

### 機能追加 (feat)
- メモリ機能を追加(CLI / MCP / 永続化)(#169)
- 在席モードに close コマンドを追加 / close 後は切替モードへ移る (#173, #180)
- 統括の入力欄で行内カーソル移動を可能にする (#174)
- ルート行とセッション群の間に区切り線を常設 (#176)
- 処理中に右上へローディングうさぎを表示 (#179)
- ready のアイコンを月(☾)に変更 (#166)

### 修正 (fix)
- ターミナルのリサイズで終了するのを防ぐ (#168)
- コンパクション後の SessionStart で Ready のまま固まるのを修正 (#171)
- Session Action UI の反映漏れを修正 (#170)

### パフォーマンス (perf)
- 検索バグ・ホットループ最適化(High 項目)(#165)
- 一時ファイル競合・git 起動削減(Medium 項目)(#167)
- inspect_worktree の git プロセス起動を削減 (#178)

### リファクタ / その他
- usagi-session を usagi サーバに統合 (#177)
- エージェント向けコマンドを CLI ヘルプから隠す (#172)

## テスト・確認方法

- `cargo update -p usagi` で Cargo.lock を更新済み。
- マージ後、`auto-release.yml` が version 変更を検知し `v0.0.3` タグとリリースを自動生成する。

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant