🚀 Swift MCP Server
このプロジェクトは、Swiftプロジェクト向けの本番環境対応型のモデルコンテキストプロトコル(MCP)サーバーです。包括的な分析機能を備えたエンタープライズグレードのデュアルトランスポートアーキテクチャを持ちます。

🚀 クイックスタート
ワンコマンドセットアップ
./swift-mcp.sh
./swift-mcp.sh build
./swift-mcp.sh stdio
./swift-mcp.sh test
手動インストール
swift build --configuration release
./.build/release/swift-mcp-server --help
✨ 主な機能
🏗️ 堅牢な基盤
- 🔄 デュアルトランスポート:HTTPサーバー + VS Code/Serena統合用のSTDIO
- 🛠️ 15以上の分析ツール:シンボル検索、参照、アーキテクチャ分析
- 🏢 エンタープライズ対応:JSON設定、構造化ロギング、正常なシャットダウン
- ⚡ Swift 6互換:最新のコンカレンシーと本番環境対応のアーキテクチャ
- 📊 リアルタイム分析:ライブコンパイルフィードバックとパフォーマンスメトリクス
- 🎯 VS Code統合:MCP拡張機能に対する直接的なSTDIOサポート
🚀 開発者体験
- ワンコマンドセットアップ:
./swift-mcp.sh - 30秒以内にビルド、設定、テストが完了
- 自動IDE設定:VS Codeはすぐに使用可能
- 包括的なテスト:すべての機能が自動的に検証される
- 一般的な問題の自動修正:
./swift-mcp.shで90%の問題を解決
- エラーコード64のゼロエラー:位置引数をサポートする強力な引数解析
🔧 本番環境向け機能
- クロスプラットフォーム:macOSとLinuxをサポート
- プロフェッショナルなCLI:包括的なオプションを持つArgumentParser
- エラー回復:エッジケースを適切に処理
- パフォーマンス最適化:中規模プロジェクトの分析が1秒未満で完了
- メモリ効率:クリーンアップ機能による最小限のリソース使用
📦 インストール
ワンコマンドセットアップ
./swift-mcp.sh
./swift-mcp.sh build
./swift-mcp.sh stdio
./swift-mcp.sh test
手動インストール
swift build --configuration release
./.build/release/swift-mcp-server --help
💻 使用例
基本的な使用法
./swift-mcp.sh
./swift-mcp.sh build
./swift-mcp.sh stdio
./swift-mcp.sh test
高度な使用法
swift-mcp-server --config http-config.json --transport http --port 9000
📚 ドキュメント
🎯 ビジョン
Swiftコードの品質、アーキテクチャガイダンス、パフォーマンス最適化のための決定的なツールです。プロのSwift開発者が、信頼性が高く、高速で、インテリジェントなプロジェクト分析を必要とする場合に、彼らのワークフローにシームレスに統合できます。
✅ 現在稼働している機能
上記の「主な機能」を参照してください。
🚀 次に予定されている機能
フェーズ2:インテリジェンスエンジン(2025年第1四半期)
✅ コンカレンシーの問題を自動検出
✅ アクター分離パターンを提案
✅ 一般的なasync/awaitの誤りを自動修正
✅ データ競合を事前に防止
✅ MVVM、VIPER、TCAパターンを識別
✅ 巨大なビューコントローラーを検出
✅ 関心事の分離を提案
✅ 依存性注入を推奨
✅ メインスレッドのブロッキング操作を見つける
✅ 効率的なデータ構造を提案
✅ メモリリークの可能性を識別
✅ キャッシュ戦略を推奨
🎛️ トランスポートモード
VS Code統合(推奨)
./swift-mcp.sh vscode
{
"mcp.servers": {
"swift-mcp-server": {
"command": "/path/to/swift-mcp-server/.build/release/swift-mcp-server",
"args": ["--transport", "stdio", "${workspaceFolder}"],
"env": {"SWIFT_MCP_MODE": "vscode"}
}
}
}
永続的なSTDIOモード
./swift-mcp.sh stdio
エンタープライズHTTP API
swift-mcp-server --config http-config.json --transport http --port 9000
📊 利用可能な分析ツール
コア分析
list_symbols - すべての関数、クラス、プロトコル、変数を検索
find_references - シンボルがコードベース全体で使用されている場所を特定
analyze_architecture - パターン、依存関係、コード組織を検出
generate_documentation - 包括的なドキュメントを自動生成
analyze_project - プロジェクト全体の健全性と構造を分析
高度な機能
- iOSフレームワーク分析 - UIKit、SwiftUI、Core Dataの使用パターンを検出
- 依存関係マッピング - モジュールの関係と結合度を可視化
- パフォーマンス分析 - 最適化の機会を特定
- 最新のコンカレンシー - async/awaitとアクターの使用を分析
- メモリ安全性 - 潜在的なリテンションサイクルとメモリ問題を検出
🔧 設定
プロジェクトファイル
swift-mcp-server/
├── 📄 README.md # メインドキュメント (ここにいます)
├── CONFIG_GUIDE.md # 高度な設定ガイド
├── 📦 Package.swift # Swiftパッケージ定義
├── 🛠️ Management/
│ └── swift-mcp.sh # ⚡ 統合管理スクリプト
├── ⚙️ Configuration/
│ ├── vscode-mcp-config.json # VS Code MCP拡張機能の設定
│ ├── stdio-config.json # STDIOトランスポートの設定
│ └── http-config.json # HTTPサーバーの設定
└── 💻 Sources/
├── SwiftMCPServer/ # メインアプリケーションのエントリポイント
├── SwiftMCPCore/ # コアMCPプロトコルの実装
└── ModernConcurrency/ # Swift 6コンカレンシーユーティリティ
🚨 トラブルシューティング
一般的な問題
swift-mcp-server /path/to/workspace
./swift-mcp.sh
./swift-mcp.sh health
./swift-mcp.sh vscode
詳細なトラブルシューティングについては、EXIT_CODE_64_FIX.mdを参照してください。
📈 プロジェクトの状態
✅ フェーズ1:基盤(100%完了)
- デュアルトランスポートアーキテクチャ(HTTP + STDIO)
- VS CodeとSerenaの統合
- 15以上の分析ツールが稼働
- クロスプラットフォームサポート(macOS + Linux)
- エラーコード64のゼロエラー
- 包括的なヘルスチェック
- 本番環境対応のエラー処理
🚀 フェーズ2:インテリジェンスエンジン(2025年第1四半期予定)
- Swift 6互換性アナライザー
- アーキテクチャパターン検出
- パフォーマンス最適化の提案
- 高度なメモリ安全性分析
- インテリジェントなコード補完
- 自動リファクタリングの提案
現在の状態:本番環境対応の基盤が整い、戦略的な機能拡張ロードマップがあります。
🤝 コントリビュート
開発ガイドラインについては、CONTRIBUTING.mdを参照してください。
クイック開発セットアップ
git clone https://github.com/your-username/swift-mcp-server.git
cd swift-mcp-server
./swift-mcp.sh
swift test
📄 ドキュメント
- CONFIG_GUIDE.md - 高度な設定
- EXIT_CODE_64_FIX.md - トラブルシューティングガイド
- SERENA_INTEGRATION.md - Serenaアプリの統合
利用可能なツール
find_symbols - インテリジェントなフィルタリングでSwiftシンボルを検索
find_references - シンボルのすべての参照を検索
get_definition - シンボルの定義を参照
analyze_project - プロジェクト全体の分析とメトリクス
generate_documentation - プロジェクトのドキュメントを自動生成
analyze_architecture - アーキテクチャパターンの検出
設定
コマンドラインオプション
swift-mcp-server --help
--transport <mode>
--workspace <path>
--config <file>
--port-min <min>
--port-max <max>
--log-level <level>
--json-logs
エンタープライズ設定
高度なデプロイメントのためにconfig.jsonを作成します。
{
"mcpServer": {
"transport": {
"type": "http",
"host": "0.0.0.0",
"portRange": {"min": 9000, "max": 9010}
}
},
"performance": {
"maxConcurrentTasks": 10,
"taskTimeoutSeconds": 30.0
}
}
🔧 技術詳細
アーキテクチャ
プロジェクト構造
Sources/
├── SwiftMCPServer/ # メインアプリケーションのエントリポイント
│ └── SwiftMCPApp.swift # デュアルトランスポートを持つCLIインターフェース
├── SwiftMCPCore/ # コアMCPサーバーの実装
│ ├── MCPServer.swift # HTTPトランスポートサーバー
│ ├── StdioTransport.swift # VS Code用のSTDIOトランスポート
│ ├── ServerConfiguration.swift # エンタープライズ設定
│ └── SwiftLanguageServer.swift # Swift分析エンジン
└── ModernConcurrency/ # 高度なコンカレンシー機能
├── FCITaskManager.swift # タスク管理と調整
└── FCIModernThreadSafety.swift # スレッドセーフティユーティリティ
トランスポートアーキテクチャ
- HTTPトランスポート:インテリジェントなポート管理を持つRESTful APIサーバー
- STDIOトランスポート:VS Code統合のための直接的なJSON-RPC通信
- 統一コア:両方のトランスポートモードにサービスを提供する共有分析エンジン
トランスポート層
SwiftMCPCore/
├── MCPServer.swift
├── StdioTransport.swift
├── MCPProtocolHandler.swift
└── ServerConfiguration.swift
分析エンジン
SwiftMCPCore/
├── SwiftLanguageServer.swift
├── SymbolSearchEngine.swift
├── ProjectAnalyzer.swift
├── ArchitectureAnalyzer.swift
└── iOSFrameworkAnalyzer.swift
最新のコンカレンシー
ModernConcurrency/
├── FCITaskManager.swift
├── FCIModernThreadSafety.swift
└── FCIModernContinuationManager.swift
高度な設定
エンタープライズHTTPサーバー
{
"mcpServer": {
"transport": {
"type": "http",
"host": "0.0.0.0",
"portRange": {"min": 9000, "max": 9010}
},
"performance": {
"maxConcurrentTasks": 10,
"taskTimeoutSeconds": 30.0
},
"logging": {
"level": "info",
"format": "json",
"enableMetrics": true
}
}
}
VS Code STDIO設定
{
"mcp.servers": {
"swift-mcp-server": {
"command": "/path/to/.build/release/swift-mcp-server",
"args": ["--transport", "stdio", "${workspaceFolder}"],
"env": {
"SWIFT_MCP_MODE": "vscode",
"LOG_LEVEL": "info"
}
}
}
}
🧪 開発とテスト
要件
- Swift:5.9以上(Swift 6対応)
- プラットフォーム:macOS 13.0以上またはLinux Ubuntu 18.04以上
- Xcode:15.0以上(SourceKit-LSPを含む)
- ツール:ArgumentParser、Logging、Foundation
クイック開発
git clone https://github.com/your-username/swift-mcp-server.git
cd swift-mcp-server
./swift-mcp.sh
swift build
swift test
./swift-mcp.sh test
swift build
swift test
swift build --configuration release
テスト
./swift-mcp.sh test
swift test
./.build/release/swift-mcp-server --help
./.build/release/swift-mcp-server --workspace . --transport http
ポートの可用性を確認
lsof -i :8080
自動ポート選択を使用
swift-mcp-server --port-min 8080 --port-max 8090
ログから選択されたポートを確認
パスの問題
プロジェクトパスが認識されない
ls -la /path/to/your/swift/project
find /path/to/project -name "Package.swift" -type f
swift-mcp-server --workspace "$(pwd)/path/to/project"
chmod -R 755 /path/to/your/project
SourceKit-LSPパスの問題
which sourcekit-lsp
xcode-select --install
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
依存関係の問題
Swiftパッケージの依存関係
swift package resolve
swift package update
swift package clean && swift build
VS Code MCP拡張機能の依存関係
code --install-extension your-mcp-extension
cat ~/.vscode/settings.json | grep mcp
Serena統合の依存関係
curl -LsSf https://astral.sh/uv/install.sh | sh
uvx --from git+https://github.com/oraios/serena serena start-mcp-server
serena --version
一般的な設定の修正
VS Code設定の修正
{
"mcp.servers": {
"swift-mcp-server": {
"command": "/absolute/path/to/swift-mcp-server/.build/release/swift-mcp-server",
"args": [
"--transport", "stdio",
"--workspace", "${workspaceFolder}",
"--log-level", "info"
],
"env": {
"PATH": "/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Xcode.app/Contents/Developer/usr/bin"
},
"cwd": "${workspaceFolder}"
}
}
}
環境変数の修正
export PATH="/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH"
export SOURCEKIT_LSP_PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp"
source ~/.zshrc
デバッグ設定
swift-mcp-server \
--transport stdio \
--workspace "$(pwd)" \
--log-level trace \
--dev \
--json-logs
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{"method": "initialize", "params": {"protocolVersion": "2024-11-05"}}'
ヘルスチェックとクイック修正
セットアップとトラブルシューティングを支援する自動化スクリプトを提供しています。
ヘルスチェック
包括的なヘルスチェックを実行します。
./swift-mcp.sh health
これにより、以下が自動的に検証されます。
- Swiftのインストールとバージョン
- SourceKit-LSPの可用性
- Xcodeパスの設定
- サーバーバイナリの存在
- パッケージの依存関係
- トランスポートモードの機能
クイック修正スクリプト
自動的な問題解決のために:
./swift-mcp.sh
./swift-mcp.sh build
./swift-mcp.sh vscode
./swift-mcp.sh test
./swift-mcp.sh stdio
./swift-mcp.sh health
swift-mcp.shスクリプトは自動的に以下を行います。
- サーバーをビルド
- VS Code MCPの統合を設定
- すべての機能をテスト
- 永続的なSTDIOモードを提供
- 包括的なヘルスチェックを実行
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。
🙏 謝辞
- Swiftコミュニティ:Swift 6と最新のコンカレンシーパターンで構築
- SourceKit-LSP:正確なSwift分析のためにSourceKit-LSPと統合
- MCPエコシステム:VS Code MCP拡張機能とSerenaコーディングエージェントと互換性があります
- オープンソース:Swiftエコシステムの巨人たちの肩に立っています
Swift開発ワークフローを強化したいですか?
./quick-start.shから始めて、30秒以内にエンタープライズグレードのSwiftプロジェクト分析を体験してください! 🚀