awslabs.cfn-mcp-serverで手軽にリソースの作成・削除をしよう


## はじめに

mcpサーバが最近話題で、AWSが公開しているOSSの一部として「AWS MCP Servers」が提供されています。
AWSドキュメントの検索や構成図を作成できたりといろいろあります。

[AWS MCP Servers](https://github.com/awslabs/mcp)

今回CloudFormationのMCPサーバを使うと、AIやエディタから簡単にAWSリソースを作成・管理できるようになります。

> **MCPサーバとは？**
> - AIに"道具"を持たせるための標準プロトコル（AI用USB-Cポートのようなもの）
> - これを使うとAIが外部ツール（AWSやファイル操作、API呼び出しなど）を自在に使えるようになる
> - MCPはAnthropic社が提唱したオープンな規格で、ClaudeやCursor、VS Code拡張など多くのAIツールが対応し始めている

つまり、MCPサーバは「AIと外部ツールの橋渡し役」。AIが**魔法の杖**を手に入れるための標準インターフェースです。

特に、CloudFormation MCPサーバ（awslabs.cfn-mcp-server）は、AWS CloudFormationのテンプレートを使って、1100種類以上のAWSリソースを手軽にデプロイできるのが特徴です。

この記事では、**MCPサーバの基礎知識がない人でも分かるように**、CursorエディタでCloudFormation MCPサーバをセットアップし、AIと連携してAWSリソースを作成する手順を解説します。

## MCPサーバの全体像とメリット
- AIに「AWSリソース作成」「ファイル操作」「API呼び出し」など様々な"道具"を後付けできる
- MCP対応AI（ClaudeやCursorなど）なら、MCPサーバを設定するだけで新しい機能をすぐ使える
- AWS公式のOSSなので安心して使える

## 前提・準備
MCPサーバを使うには、以下の準備をしていきます。

- AWSアカウント
- awslabs.cfn-mcp-server@latest の実行環境（Macの場合はuvやDockerが便利）
- Cursorエディタ（Claude Desktopでも可）

## MCPサーバを使用するために、uvをインストール（Mac例）

> なぜpipxとuvを使うのか？
> - **pipx**はPython製CLIツールを「グローバルに安全に」インストールでき るコマンドです。システムのPython環境を汚さず、依存関係の衝突も防げます。
> - **uv**は高速なPythonパッケージマネージャ兼実行環境で、MCPサーバのような最新ツールのインストール・実行に最適です。
> - これらを使うことで、MCPサーバのセットアップが簡単＆トラブルが少なくなります。

> なぜmcpサーバを立てるのにuvを使うのか？
> - MCPサーバは依存パッケージが多く、従来のpipだとインストールや実行時にエラーが出やすいですが、uvは依存解決が高速かつ堅牢なので、MCPサーバのような最新・複雑なツールでも安定して動かせます。
> - uvはPython 3.10以降の新しい環境にも強く、公式でも推奨されています。

1. **pipxのインストール**
```bash
brew install pipx
```
2. **uvのインストール**
```bash
pipx install uv
```

> ※Dockerで動かす場合は[公式ドキュメント](https://awslabs.github.io/mcp/servers/cfn-mcp-server/)を参照してください。

## CursorでMCPサーバを設定する

CursorエディタからMCPサーバを使うには、設定ファイルにMCPサーバの起動コマンドを登録します。

1. Cursorの「基本設定」→「Cursor settings」→「MCP Tools」→「New MCP Server」ペンのアイコンをクリック

![add_mcp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4097048/e6551956-f228-4285-b1fb-296e9964f40c.png)

2. 下記のように設定（CloudFormation MCPサーバ用の例）

```json
{
  "mcpServers": {
    "awslabs.cfn-mcp-server": {
      "command": "/Users/{USER}/.local/bin/uvx",
      "args": [
        "awslabs.cfn-mcp-server@latest"
      ],
      "env": {
        "AWS_PROFILE": "{PROFILE}"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
```

- USER：使用者のディレクトリ名
- PROFILE：AWSのプロファイル

## AIと連携したAWSリソース作成の流れ

MCPサーバとAI（Claudeなど）を組み合わせると、AWSリソースの作成がとても簡単になります。ここでは、実際の流れをステップごとに解説します。

### 1. CursorにAWSリソース作成を依頼

まず、AIに「どんなAWSリソースを作りたいか」を具体的に伝えます。プロンプトはできるだけ詳細に書くのがコツです。

作成する前はS3バケットがありません。

![empty_s3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4097048/befe7823-ed15-40d9-8efd-38fa8a7d90df.png)

**プロンプト例：**
```
my-unique-bucket-2025-exampleというS3バケットを作成して。下記の値を設定して
バージョニング：有効
```

上記のような要件に合わせてS3を自動生成してくれます。

![prompt_add_s3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4097048/bb4c05c0-7a6e-454d-be85-62e72d7be22c.png)

---

### 2. リソース作成状況の確認

この工程はコンソールを確認すれば済む話ですが、せっかくなのでプロンプトを投げてみます。本当にできているかどうかや複雑なリソース作成の場合時間がかかので、リソースの作成状況を確認してみましょう。

**プロンプト例：**
```
my-unique-bucket-2025-exampleの作成状況を教えて
```

![prompt_status_s3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4097048/f14a063b-7cf6-460e-9851-44197c2c6511.png)


コンソールから確認してみましょう。

![add_s3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4097048/00cdd7e5-6107-44ed-bc1f-49e011a82541.png)

作成されていることがコンソールからも確認できました。

---

### 3. リソースの削除

最後に作ったリソースを削除していきます。プロンプトでお願いすれば、リソースを簡単に削除してくれます。

**プロンプト例：**
```
my-unique-bucket-2025-exampleを削除して
```

![prompt_delete_s3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4097048/c1c25bb2-8c24-4fc5-8484-450855c1b609.png)

コンソールを確認し、削除されていることが確認できました。

![delete_S3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4097048/00a91f95-0ea9-46e2-815b-4be72dd59943.png)

---

# まとめ

MCPサーバとAI（Claudeなど）を組み合わせることで、AWSリソースの作成・管理がとても手軽になりますね。
- MCPサーバ経由で手軽にAWSリソースをデプロイできる
- 手作業のミスやコピペ作業が激減

最初は戸惑うかもしれませんが、一度流れを掴めば、インフラ構築が驚くほど効率化します。困ったときはAIや公式ドキュメントを活用しつつ、どんどん試してみてください！