Flutter Deprecations MCP Server について
Flutter Deprecations MCP Serverは、Flutterコード内の非推奨APIを検出し、置き換え候補を提示するMCPサーバーです。既知の非推奨API一覧や、Flutterのバージョンとツールの利用状況も確認できます。
主な機能
- 01Flutterソースの非推奨アノテーションをスキャン
- 02コード内の非推奨APIを解析
- 03新しいAPIへの置き換え候補を提示
- 04非推奨情報をキャッシュし24時間ごとに更新
- 05Flutterのバージョン、FVM、Dockerの利用状況を確認
活用シーン
- 01Flutterコードの作成・レビュー時に非推奨APIを発見
- 02非推奨APIの置き換え方法を調査
- 03最新のFlutterバージョンとツールの利用可否を確認
MCP 対応
MCPクライアント向けにcheck_flutter_deprecations、list_flutter_deprecations、check_flutter_version_infoの各ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Flutter 非推奨 API MCP サーバー
この MCP サーバーは Flutter API の非推奨化を追跡し、コードに非推奨 API が含まれているかを確認するツールと、置き換え候補を提案するツールを提供します。
プロジェクト構成
flutter-deprecations-server/
├── cmd/
│ └── server/ # Main application entry point
│ └── main.go
├── internal/ # Private application code
│ ├── handlers/ # MCP tool handlers
│ │ ├── mcp_handlers.go
│ │ ├── mcp_handlers_test.go
│ │ └── testdata/
│ ├── models/ # Data structures
│ │ └── flutter.go
│ └── services/ # Business logic
│ ├── cache.go
│ ├── cache_test.go
│ ├── deprecations.go
│ ├── deprecations_test.go
│ ├── flutter_api.go
│ ├── flutter_api_test.go
│ ├── flutter_version.go
│ ├── interfaces.go
│ ├── version_info.go
│ ├── version_info_test.go
│ └── testdata/
├── pkg/ # Public libraries
│ └── config/ # Configuration constants
│ └── config.go
├── bin/ # Compiled binaries
├── Makefile # Build automation
├── go.mod # Go module definition
├── go.sum # Dependency checksums
└── README.md
機能
- ソースコードに基づく非推奨 API の追跡:Flutter の GitHub ソースコードを直接スキャンして、
@Deprecatedアノテーションを検出します - ローカルキャッシュ:非推奨 API を有効期間 24 時間のローカルキャッシュに保存します
- コード解析:Flutter のコードスニペットを解析して、非推奨 API を検出します
- 置き換え候補の提案:非推奨 API に対する最新の代替手段を提示します
- 包括的なスキャン:Flutter の主要なディレクトリ(widgets、material、cupertino、services など)をスキャンします
- バージョン確認:Flutter CLI を使用して最新の Flutter バージョンを取得します(最も信頼性の高い方法)。取得できない場合は GitHub API にフォールバックします
- マルチプラットフォーム対応:FVM と Docker イメージの利用可否を確認します
- コマンドラインからのキャッシュ管理:進行状況を表示しながら、キャッシュを手動で更新および消去できます
- 短縮コマンドオプション:長形式と短縮形式の両方のコマンドフラグに対応します
- レート制限への対応:GitHub API のレート制限を適切に処理し、役立つエラーメッセージを表示します
- 詳細なログ出力:トラブルシューティング用に
-vvvフラグで詳細なログを出力します
MCP ツール
1. check_flutter_deprecations
指定された Flutter コードを解析して、非推奨 API を検出し、置き換え候補を提案します。
パラメーター:
code(string):解析する Flutter コードスニペット
例:
Color.red.withOpacity(0.5) // Will suggest Color.red.withValues(alpha: 0.5)
2. list_flutter_deprecations
キャッシュにある既知の Flutter 非推奨 API をすべて一覧表示します。
パラメーター: なし
戻り値: 置き換え候補とバージョン情報を含む、非推奨 API の完全な一覧です。
3. check_flutter_version_info
最新の安定版 Flutter バージョンを取得し、さまざまなツールやプラットフォームでの利用可否を確認します。
パラメーター: なし
戻り値:
- 最新の安定版 Flutter バージョン(Flutter CLI が利用できる場合は CLI を使用し、利用できない場合は GitHub API にフォールバック)
- Flutter CLI のインストール状況とチャネル情報
- FVM のインストール状況とバージョンの利用可否
instrumentisto/flutterとghcr.io/cirruslabs/flutterの Docker イメージの利用可否- 使用例とインストールコマンド
既知の非推奨 API
このサーバーには、一般的な非推奨 API に対応するパターンが組み込まれています。
Color.withOpacity()→Color.withValues(alpha:)RaisedButton→ElevatedButtonFlatButton→TextButtonOutlineButton→OutlinedButtonScaffold.of(context).showSnackBar→ScaffoldMessenger.of(context).showSnackBar
インストール
Makefile を使用する場合(推奨)
# Install dependencies
make deps
# Build the server
make build
# Run the server
make run
# Build for multiple platforms
make build-all
手動ビルド
# Install dependencies
go mod tidy
# Build the server
go build -o bin/flutter-deprecations-server ./cmd/server
# Run the server
./bin/flutter-deprecations-server
# Update deprecations cache manually
./bin/flutter-deprecations-server --update
# Update with verbose logging
./bin/flutter-deprecations-server --update -vvv
# Clear deprecations cache
./bin/flutter-deprecations-server --clear-cache
# Show current cache contents
./bin/flutter-deprecations-server --show-cache
# Show help information
./bin/flutter-deprecations-server --help
開発
# Format code
make fmt
# Vet code
make vet
# Run tests
make test
# Development build and run
make dev
AI アシスタントでの設定
MCP の設定(例:mcp.json)に追加します。
{
"mcpServers": {
"flutter-deprecations": {
"command": "/path/to/flutter-deprecations-server/bin/flutter-deprecations-server",
"args": [],
"env": {}
}
}
}
バージョンの検出
このサーバーは、最新の Flutter バージョンを検出するために、信頼性の高い多段階の方法を使用します。
- 優先:Flutter CLI(
flutter --version)— 最も正確で、開発者の環境に一致します - 公式 API:Google Storage Flutter リリース API(
https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json)— GitHub より高速かつ信頼性が高い方法です - フォールバック:GitHub API のリリース情報 — Flutter CLI と公式 API の両方が利用できない場合に使用します
- チャネルの検出:公式ソースから stable/beta/dev チャネルを識別します
- Docker レジストリへの対応:Docker Hub と GitHub Container Registry の両方を確認します
キャッシュの場所
非推奨 API は次の場所にキャッシュされます:~/.flutter-deprecations/flutter_deprecations.json
ツールの使用時に、キャッシュは 24 時間ごとに自動更新されます。
使用例
AI アシスタントに次のように依頼します。
- 「この Flutter コードに非推奨 API が含まれているか確認してください:
Color.red.withOpacity(0.5)」 - 「Flutter の非推奨 API をすべて一覧表示してください」
- 「RaisedButton の代わりに何を使えばよいですか?」
- 「最新の Flutter バージョンは何ですか?また、FVM と Docker で利用できますか?」
- 「Flutter のバージョン情報を確認してください」
コマンドラインでの使用方法
このサーバーは、キャッシュ管理用にいくつかのコマンドラインオプションに対応しています。
# Show help and available options
./bin/flutter-deprecations-server --help
./bin/flutter-deprecations-server -h # Short version
# Update deprecations cache with progress reporting
./bin/flutter-deprecations-server --update
./bin/flutter-deprecations-server -u # Short version
# Update with verbose logging for troubleshooting
./bin/flutter-deprecations-server --update -vvv
./bin/flutter-deprecations-server -u -vvv # Short version
# Clear deprecations cache
./bin/flutter-deprecations-server --clear-cache
./bin/flutter-deprecations-server -cc # Short version
# Show current cache contents
./bin/flutter-deprecations-server --show-cache
./bin/flutter-deprecations-server -sc # Short version
# Start the MCP server (default behavior)
./bin/flutter-deprecations-server
利用可能なオプション
--help, -h:使用例とともにヘルプ情報を表示します--update, -u:Flutter の非推奨情報キャッシュを更新して終了します--clear-cache, -cc:Flutter の非推奨情報キャッシュを消去して終了します--show-cache, -sc:現在の Flutter の非推奨情報キャッシュを表示して終了します--vvv:詳細なトラブルシューティング用に詳細ログを有効にします
アーキテクチャ
このプロジェクトでは、クリーンアーキテクチャを採用し、Go のベストプラクティスに従っています。
- cmd/:アプリケーションのエントリーポイント
- internal/:非公開のアプリケーションコード(ほかのプロジェクトからインポートできません)
- pkg/:インポート可能な公開ライブラリ
- Makefile:ビルドの自動化と一般的なタスク
サービスレイヤー
- CacheService:ローカルファイルのキャッシュと消去機能を処理します
- FlutterAPIService:レート制限への対応、ソースコードのスキャン、Docker レジストリの確認を含む GitHub API とのやり取りを管理します
- FlutterVersionService:Flutter CLI から Flutter のバージョンを直接取得します
- DeprecationService:Flutter のソースコードから非推奨情報を分析および管理します
- VersionInfoService:バージョンと利用可能性に関する包括的な情報を提供します
ハンドラーレイヤー
- MCPHandlers:MCP ツールのインターフェースを実装し、サービス呼び出しを調整します
テスト
- 包括的なテストスイート:すべてのサービスとハンドラーを対象としたユニットテスト
- モックサービス:依存性注入を使用したテスト基盤
- テストカバレッジ:
make test-coverageを実行してカバレッジレポートを生成します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。