以下の内容はhttps://aadojo.alterbooth.com/entry/2026/04/06/155544より取得しました。


Microsoft AI Tour Tokyo 2026 に参加してきました!

2026年3月24日、東京で開催された Microsoft AI Tour Tokyo 2026 に参加してきました。

aitour.microsoft.com

Microsoft AI Tour は、Microsoft が世界40都市以上で開催している AIイベントです。 東京ビッグサイトで行われた今回のイベントは、基調講演・ブレイクアウトセッション・ワークショップ・ライトニングトークに加え、展示会場「Connection Hub」では、多くの展示やライブデモが行われていました。

そして今回のテーマは 「Frontier Transformation」。マイクロソフトが掲げる「フロンティア組織」への変革を、AI を軸にどう実現していくのか。 これが、今回のイベントの大きなテーマでした。

実は昨年も参加申し込みをしていたのですが、残念ながら抽選に外れてしまい今回が初めての参加となりました。 朝7時半の開場で比較的早い時間ではあったものの、非常に多くの方が受け付けの行列に並んでおり、AI に対する関心の高さを肌で感じることができました。

基調講演

基調講演では、架空企業「Zava」の新製品立ち上げをシナリオとし、各部門が Work IQ・Foundry IQ・Fabric IQ・Agent 365 と言ったAIソリューションを横断的に活用するデモも披露され、AIが企業のあらゆる業務に浸透していく様子が非常にわかりやすく示されていました。

特に印象的だったのは、AI を単なるツールとしてではなく、組織のあり方そのものを変えるものとして位置づけていた点です。 従業員エクスペリエンスの向上、顧客エンゲージメントの改革、ビジネスプロセスの再構築。 これらが AI によってどう加速されるのか。そして単に作業を効率化するだけではなく、その結果生まれた時間を使って如何に新しい価値を生み出すのか。

AIの時代は、もはや「AI を導入するかどうか」ではなく、「AI をどう活用して成果を出すか」「組織をどう変革するか」というフェーズに入っていることを強く感じました。

Microsoft Copilot と Microsoft Foundry

今回の AI Tour で最もホットだったトピックの一つが、 Microsoft Copilot の進化です。Copilot は Microsoft 365 をはじめとするさまざまな製品に統合されていますが、その活用範囲がさらに広がっていることが示されました。

ワークショップでは、Copilot を使った実践的なハンズオンが行われており、参加者が実際に手を動かしながら AI の力を体感できる構成になっていました。プロンプトの書き方一つで出力が大きく変わること、組織固有のデータを活用してカスタマイズできることなど、実務にすぐ活かせるノウハウが満載でした。

また、Microsoft Foundry についてのセッションも注目を集めていました。セキュアなアプリ、エージェント、ソリューションを開発するためのプラットフォームとして、エンジニアリングの現場での活用事例が多数紹介されていました。特に、自然言語で要件を定義するだけでエージェントのアーキテクチャが自動的に組み上がるデモは、AI 開発の民主化がいかに進んでいるかを象徴するものでした。

もっと事前に準備しておけば良かった

今回のイベントでは、ライトニングトークやブレイクアウトセッションに加え、多くのワークショップが同時並行で開催されていました。 せっかくの機会だったのでワークショップにも参加する気満々でいたのですが、参加人数に制限があり事前予約が必要だったため、残念ながら今年は参加することができませんでした。

ただ嬉しいことにイベントの資料やデモ、ワークショップの資料は AI Tourのリポジトリ で公開されていますので、今回参加できなかった方も、是非こちらをチェックしてみてください。 とは言え、やはり現地で一緒に体験することの価値は大きいので、来年こそは事前にスケジュールを組んだ上で臨みたい思います。

という事でイベントレポートはこのくらいにして、最後に公開された資料をもとに実際に手を動かしてみましたので、その内容を少しだけご紹介したいと思います。

イベントレポートは弊社メンバーも多数公開しておりますので、弊社ブログ Alternative Architecture DOJO も是非ご覧ください!

自分だけのMCPサーバーを構築

今回参考にさせて頂いたのは、AI Tourで紹介されていた From protocol to practice: build and use your first MCP server です。

普段から MCPサーバーを使って作業することはありますが自分で構築したことはなかったので、仕組みを理解するためにも実際にローカルの MCPサーバーを構築してみました。 作ったものとしては簡単なタスク管理ツールで、タスクの追加・完了・一覧取得といった操作が MCP で実行できるようになっています。

事前準備

任意のディレクトリに以下の構成で TodoApp という名前のフォルダを作成します

TodoApp/
  ├── todo/
  └── src/

C# で Console アプリを作成

cd src
dotnet new console -n TodoMCP --framework net10.0

MCP SDK の NuGet パッケージを追加します。

cd TodoMCP
dotnet add package ModelContextProtocol --prerelease
dotnet add package Microsoft.Extensions.Hosting

Program.cs を以下のように編集します。

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using ModelContextProtocol.Server;
using System.ComponentModel;
using System.Text.Json;

var dataDir = Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), "..", "..", "todo"));
Directory.CreateDirectory(dataDir);
var tasksFile = Path.Combine(dataDir, "tasks.json");

TaskStore.Initialize(tasksFile);

var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddMcpServer()
    .WithStdioServerTransport()
    .WithToolsFromAssembly();

await builder.Build().RunAsync();


// ---------- データモデル ----------
public record TaskItem(
    string Id,
    string Title,
    string Priority,
    bool Completed,
    string CreatedAt
);

// ---------- タスク保存・読み込み ----------
public static class TaskStore
{
    private static string _filePath = "";

    public static void Initialize(string filePath) => _filePath = filePath;

    public static List<TaskItem> Load()
    {
        if (!File.Exists(_filePath)) return [];
        var json = File.ReadAllText(_filePath);
        return JsonSerializer.Deserialize<List<TaskItem>>(json) ?? [];
    }

    public static void Save(List<TaskItem> tasks)
    {
        var json = JsonSerializer.Serialize(tasks, new JsonSerializerOptions { WriteIndented = true });
        File.WriteAllText(_filePath, json);
    }
}

// ---------- MCPツール ----------
[McpServerToolType]
public static class TodoTools
{
    [McpServerTool, Description("Add a new task to the todo list")]
    public static string AddTask(
        [Description("Title of the task")] string title,
        [Description("Priority: high, medium, or low")] string priority)
    {
        var valid = new[] { "high", "medium", "low" };
        if (!valid.Contains(priority.ToLower()))
            return $"Error: priority must be one of: {string.Join(", ", valid)}";

        var tasks = TaskStore.Load();
        var task = new TaskItem(
            Id: Guid.NewGuid().ToString()[..8],
            Title: title,
            Priority: priority.ToLower(),
            Completed: false,
            CreatedAt: DateTime.Now.ToString("o")
        );
        tasks.Add(task);
        TaskStore.Save(tasks);

        return $"Task added: [{task.Id}] {title} (priority: {task.Priority})";
    }

    [McpServerTool, Description("Mark a task as completed by its ID")]
    public static string CompleteTask(
        [Description("ID of the task to mark as completed")] string taskId)
    {
        var tasks = TaskStore.Load();
        var task = tasks.FirstOrDefault(t => t.Id == taskId);
        if (task is null)
            return $"Error: Task '{taskId}' not found";

        tasks[tasks.IndexOf(task)] = task with { Completed = true };
        TaskStore.Save(tasks);

        return $"Task completed: [{taskId}] {task.Title}";
    }

    [McpServerTool, Description("Get all tasks from the todo list")]
    public static string GetTasks()
    {
        var tasks = TaskStore.Load();
        if (tasks.Count == 0) return "No tasks found.";

        var pending = tasks.Where(t => !t.Completed).ToList();
        var done = tasks.Where(t => t.Completed).ToList();

        var result = $"Todo List ({tasks.Count} tasks total)\n\n";
        result += $"--- Pending ({pending.Count}) ---\n";
        foreach (var t in pending)
            result += $"[{t.Id}] {t.Title} (priority: {t.Priority})\n";

        result += $"\n--- Completed ({done.Count}) ---\n";
        foreach (var t in done)
            result += $"[{t.Id}] {t.Title}\n";

        return result;
    }
}

ビルドしてエラーがないことを確認する

dotnet build

mcpサーバーとして設定

ユーザーレベルの mcp.json に以下を追加します。
(これにより作成したMCPサーバーをどのディレクトリからでも利用できるようになります)

"mcp": {
  "servers": {
    "todo-mcp": {
      "type": "stdio",
      "cwd": "C:/{作成したConsoleアプリのパス}/TodoApp/src/TodoMCP",
      "command": "dotnet",
      "args": ["run", "--no-build"]
    }
  }
}

ユーザーレベルの mcp.json は、VSCode を使っている場合は大抵 C:\Users\<ユーザー名>\AppData\Roaming\Code\User\mcp.json にあります。 既に他の MCPサーバーが定義されている場合は、servers の中に上記の "todo-mcp" 定義の部分のみを追記します。

MCPサーバーを利用する

VSCode の Copilot Chat で以下のプロンプトを送信すると add_task ツールが呼び出され todo/tasks.json にタスクが追加されます。
#add_task "資料を作る"をタスクに追加して

また以下のプロンプトでタスクの一覧を取得することができます。
#get_tasks タスクを一覧で見せて

さらに同じスレッド内であれば、わざわざツールの指定をしなくてもより自然な指示で理解してくれるようになります。
資料の作成が完了しました

※ 動作が不安定な場合は #add_task#complete_task ツールを明示的に指定します。

ここまでできれば、後はProgram.csのデータモデルブロックやMCPツールブロックをカスタマイズすることで、自分だけのMCPサーバーが完成です。

他にも、AI Tourで紹介された多くの資料が公開されているので、興味のある方は是非チェックしてみてください。

おわりに

今回のAI Tour 一日を通して最も強く感じたのは、AI の民主化が想像超える圧倒的な速さで加速しているということです。かつては一部の研究者やエンジニアだけのものだった AI が、今やビジネスパーソンも含めたあらゆる人が活用できるものになりつつあります。

マイクロソフトが推進する「フロンティア組織」への変革は、テクノロジーの導入だけでなく、組織文化や働き方そのものの変革を伴うものです。AI Tour を通じて、その具体的な道筋がより明確になったように感じます。

そして更に1年後の AI Tour。今よりもっと多くの人が AI に関心を持ち、どれだけ社会に浸透しているか。 今からとても楽しみですね。


サービス一覧 www.alterbooth.com cloudpointer.tech www.alterbooth.com




以上の内容はhttps://aadojo.alterbooth.com/entry/2026/04/06/155544より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14