Snippy について
Snippy は、GitHub Copilot などのAI アシスタントが検出して呼び出せる MCP ツールの構築方法を示す Azure Functions のリファレンスアプリケーションです。学習やデモを目的としており、Durable Task Scheduler によるマルチエージェントのワークフロー制御と、Cosmos DB のベクトルインデックスによるコード検索を備えています。
主な機能
- 01MCP ツールとして公開される Azure Functions
- 02Microsoft Agent Framework による永続エージェント
- 03fan-out / fan-in によるマルチエージェントのオーケストレーション
- 04Cosmos DB DiskANN によるベクトル検索
- 05azd up による基盤の一括デプロイ
活用シーン
- 01コードスニペットの保存とセマンティック検索
- 02コードスタイルガイドと Wiki ドキュメントの生成
- 03MCP ツールと永続エージェントの構築手法の学習
MCP 対応
Snippy は save_snippet、get_snippet、code_style、deep_wiki、generate_comprehensive_documentation を MCP ツールとして Azure Functions から公開し、AI アシスタントが検出して利用できるようにしています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Snippy は、GitHub Copilot のような AI アシスタントと連携する MCP(Model Context Protocol)ツールの構築方法を紹介する、Azure Functions ベースのリファレンスアプリケーションです。Azure Functions が従来の API としてだけでなく、AI アシスタントが検出して使用できる MCP 対応ツールとしても機能する、最新のサーバーレス AI アプリケーションアーキテクチャを紹介します。

このシステムでは、Durable Task Scheduler によるマルチエージェントワークフローのオーケストレーション、セマンティックコード検索のためのベクターインデックス付き Cosmos DB、埋め込みと LLM 機能のための Azure OpenAI を使用します。このプロジェクトには再現可能な azd インフラストラクチャが含まれており、azd up でスタック全体をデプロイできます。ローカルの Docker ベースのエミュレーターと Azure クラウドサービスの両方で動作します。
重要なセキュリティに関する注意事項 このリポジトリは、学習およびデモを目的としています。十分なセキュリティレビューを行わずに、本番環境へデプロイしないでください。最低限、次の対応が必要です。
- 接続文字列を Managed Identity と Azure Key Vault に置き換える
- Private Endpoints または service‑tags を使って、Azure サービスへのネットワークアクセスを制限する
- GitHub のシークレットスキャンと CI セキュリティツールを有効にする
機能
- MCP ツールの統合 – Azure Functions を、AI アシスタントが検出できる MCP ツールとして公開します
- Microsoft Agent Framework による Durable エージェント – 自動的な会話履歴管理を備えた
ChatAgentを使用して、ステートフルな AI エージェントを構築します - マルチエージェントのオーケストレーション – Durable Task Scheduler のファンアウト/ファンインパターンを使用して、専門エージェント(DeepWiki、CodeStyle)を連携させます
- Cosmos DB DiskANN によるベクター検索 – Azure OpenAI の埋め込みと低レイテンシのベクターインデックスを使用して、セマンティックコード検索を行います
- モニタリングと可観測性 – DTS ダッシュボード(ローカルでは localhost:8082、クラウドでは Azure portal)を使用して、オーケストレーションをリアルタイムで追跡します
- ワンクリックデプロイ –
azd upで Functions、Cosmos DB、Azure OpenAI、DTS を含むインフラストラクチャ全体をプロビジョニングしてデプロイします - Codespaces と Dev Containers – ブラウザーまたはローカルの VS Code で使える、完全に構成済みの開発環境です
ツール一覧
| ツール名 | 目的 |
|---|---|
save_snippet | セマンティック検索用のベクター埋め込みを付けて、コードスニペットを保存します |
get_snippet | 一意の名前を指定して、保存済みのコードスニペットを取得します |
code_style | 保存済みのスニペットから、言語固有のコードスタイルガイドを生成します |
deep_wiki | コードスニペットを分析して、包括的な Wiki ドキュメントを作成します |
generate_comprehensive_documentation | マルチエージェントワークフローを調整して、詳細な Wiki とスタイルガイドを作成します |
ラボチュートリアル
Snippy を初めてお使いですか?アプリケーション全体をゼロから構築する方法を順を追って学べる、包括的なハンズオンラボチュートリアルから始めましょう。
📚 Snippy チュートリアル:AI で強化されたコードスニペットマネージャーの構築
チュートリアルの内容:
- 段階的な実装 – 詳細な説明を読みながら、アプリケーション全体を構築します
- コードレビュー演習 – MCP ツール、永続的なエージェント、ベクトル検索のパターンについて理解します
- ローカル開発 – Docker ベースのエミュレーターをセットアップしてテストします
- Azure へのデプロイ – azd を使用して本番環境にプロビジョニングしてデプロイします
- マルチエージェントオーケストレーション – DTS ダッシュボードで複雑なワークフローを監視します
- エンドツーエンドテスト – REST Client、GitHub Copilot、MCP ツールを使用してテストします
その他のリソース:
- クイックリファレンス – 重要なコマンドと一般的なタスク
- トラブルシューティングガイド – よくある問題の解決策
Azure Functions、MCP ツール、AI エージェント開発のいずれが初めてでも、このラボでは実践的な経験を通じて体系的に学べます。
はじめに
前提条件
- リソースを作成する権限がある Azure サブスクリプション
- azd CLI がインストールされていること
- 開発環境を選択してください:
- GitHub Codespaces(最速。ローカルのセットアップは不要です)
- VS Code Dev Containers(Docker Desktop が必要です)
- ローカル開発(Python 3.11、Node 18 以降、Azure Functions Core Tools v4 が必要です)
Azure へのデプロイ
GitHub Codespaces を使用する場合:
上の「Open in GitHub Codespaces」バッジをクリックしてから、次を実行します:
azd auth login --use-device-code
azd up
Dev Containers またはローカル環境を使用する場合:
azd init --template Azure-Samples/snippy
azd auth login
azd up
azd up コマンドは次の処理を行います:
- Azure リージョンの選択を促します(eastus または swedencentral を推奨します)
- すべてのリソースをプロビジョニングします(Functions、Cosmos DB、Azure OpenAI、DTS)
- 認証用の Azure AD アプリ登録を作成します
- アプリケーションコードをデプロイします
完了すると、Function App の URL と MCP エンドポイントが表示されます。ローカル開発、エミュレーターを使用したテスト、オーケストレーションの監視について詳しくは、チュートリアルをご覧ください。
ガイダンス
リージョンの可用性
Azure OpenAI のモデルサポートはリージョンによって異なります。こちらで可用性を確認し、すべての Azure リソースで同じリージョンを選択してください。既定の選択肢として、eastus と swedencentral が適しています。
セキュリティ
Snippy は、サービス間の安全な認証にユーザー割り当てマネージド ID を使用します。インフラストラクチャは次のように構成されています:
- Function App 上のユーザー割り当てマネージド ID に適切な RBAC ロールを付与:
- Cosmos DB Data Contributor
- Storage Blob Data Owner および Queue Data Contributor
- Application Insights Monitoring Metrics Publisher
- Azure AI Project Developer
本番環境へのデプロイでは、次の対応を推奨します:
- Private Endpoints と VNet 統合を使用して受信トラフィックを制限する
- サービスエンドポイントやファイアウォールルールなどのネットワークセキュリティ機能を有効にする
コントリビューション
標準のフォーク → ブランチ → PRワークフローに従ってください。コミットメッセージにはConventional Commits(feat:、fix:)を使用してください。
ライセンス
MIT © Microsoft Corporation
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。