Skip to main content
Glama

microCMS MCP Server

by microcmsio
CLAUDE.md7.85 kB
# microCMS MCP Server microCMSのコンテンツを管理するMCPサーバー ## プロジェクト概要 このプロジェクトは、microCMSのリスト形式APIおよびマネジメントAPIを操作するためのModel Context Protocol (MCP) サーバーです。microCMS JS SDKを活用し、Claude等のAIアシスタントがmicroCMSのコンテンツとメディア管理を完全にサポートします。 ## 技術スタック - **言語**: TypeScript - **パッケージマネージャー**: npm - **主要依存関係**: - `@modelcontextprotocol/sdk` - MCPサーバー実装 - `microcms-js-sdk` - microCMS API操作 ## 機能 ### サポートするツール(8つ) **コンテンツAPI:** 1. **microcms_get_list** - コンテンツ一覧取得 2. **microcms_get_content** - 個別コンテンツ取得 3. **microcms_create_content** - コンテンツ作成 4. **microcms_update_content** - コンテンツ更新(PUT) 5. **microcms_patch_content** - コンテンツ部分更新(PATCH) 6. **microcms_delete_content** - コンテンツ削除 **マネジメントAPI:** 7. **microcms_get_media** - メディアファイル一覧取得 8. **microcms_upload_media** - メディアファイルアップロード ### 設定方法 **環境変数:** ```bash MICROCMS_SERVICE_ID=your-service-id MICROCMS_API_KEY=your-api-key ``` **コマンドライン引数:** ```bash node dist/index.js --service-id your-service-id --api-key your-api-key ``` **Claude Desktop設定:** ```json { "mcpServers": { "microcms-args": { "comment": "Using command line arguments", "command": "node", "args": [ "/path/to/microcms-mcp-server/dist/index.js", "--service-id", "your-service-id", "--api-key", "your-api-key" ] } } } ``` ## 実装要件 ### ツール仕様 #### 1. microcms_get_list **説明**: コンテンツ一覧を取得 **パラメータ**: - `endpoint` (required): コンテンツタイプ名 - `draftKey` (optional): 下書きキー - `limit` (optional): 取得件数制限 (1-100) - `offset` (optional): 取得開始位置 - `orders` (optional): ソート順指定 - `q` (optional): 全文検索クエリ - `fields` (optional): 取得フィールド指定 - `ids` (optional): ID指定での複数取得 - `filters` (optional): フィルター条件 - `depth` (optional): 参照の展開深度 (1-3) #### 2. microcms_get_content **説明**: 個別コンテンツを取得 **パラメータ**: - `endpoint` (required): コンテンツタイプ名 - `contentId` (required): コンテンツID - `draftKey` (optional): 下書きキー - `fields` (optional): 取得フィールド指定 - `depth` (optional): 参照の展開深度 (1-3) #### 3. microcms_create_content **説明**: 新しいコンテンツを作成 **パラメータ**: - `endpoint` (required): コンテンツタイプ名 - `content` (required): コンテンツデータ(JSON) - `isDraft` (optional): 下書きとして保存 - `contentId` (optional): 指定ID作成 #### 4. microcms_update_content **説明**: コンテンツを完全更新(PUT) **パラメータ**: - `endpoint` (required): コンテンツタイプ名 - `contentId` (required): コンテンツID - `content` (required): 更新するコンテンツデータ(JSON) - `isDraft` (optional): 下書きとして保存 #### 5. microcms_patch_content **説明**: コンテンツを部分更新(PATCH) **パラメータ**: - `endpoint` (required): コンテンツタイプ名 - `contentId` (required): コンテンツID - `content` (required): 更新するフィールドのみ(JSON) - `isDraft` (optional): 下書きとして保存 #### 6. microcms_delete_content **説明**: コンテンツを削除 **パラメータ**: - `endpoint` (required): コンテンツタイプ名 - `contentId` (required): コンテンツID #### 7. microcms_get_media **説明**: メディアファイル一覧を取得 **パラメータ**: - `limit` (optional): 取得件数制限 (1-100) - `imageOnly` (optional): 画像ファイルのみ取得 - `fileName` (optional): ファイル名による部分検索 - `token` (optional): ページネーション用トークン (15秒有効) #### 8. microcms_upload_media **説明**: メディアファイルをアップロード **パラメータ**: - **方法1**: `fileData` + `fileName` + `mimeType` (Base64アップロード) - **方法2**: `externalUrl` (外部URLからアップロード) ### エラーハンドリング - microCMS APIのエラーレスポンスを適切にMCPエラーとして返す - 必須環境変数の不足時は初期化エラーとする - 不正なパラメータは適切なエラーメッセージを返す ### ファイル構成 ``` microcms-mcp-server/ ├── src/ │ ├── index.ts # MCPサーバーのエントリーポイント │ ├── config.ts # 設定管理 │ ├── client.ts # microCMSクライアント初期化 │ ├── types.ts # 型定義 │ └── tools/ # 各MCPツールの実装 │ ├── get-list.ts │ ├── get-content.ts │ ├── create-content.ts │ ├── update-content.ts │ ├── patch-content.ts │ ├── delete-content.ts │ ├── get-media.ts │ └── upload-media.ts ├── package.json ├── tsconfig.json ├── .gitignore ├── README.md ├── .env.example └── mcp-config-sample.json # Claude Desktop設定例 ``` ### 開発・ビルド設定 - TypeScriptコンパイル設定 - ESLint + Prettier設定 - npm scripts: - `build`: TypeScriptコンパイル - `start`: 本番実行 - `dev`: 開発モード実行 - `lint`: コード品質チェック ### 参考API仕様 **コンテンツAPI:** - [コンテンツ一覧取得](https://document.microcms.io/content-api/get-list-contents) - [コンテンツ取得](https://document.microcms.io/content-api/get-content) - [コンテンツ作成](https://document.microcms.io/content-api/post-content) - [コンテンツ更新](https://document.microcms.io/content-api/put-content) - [コンテンツ部分更新](https://document.microcms.io/content-api/patch-content) - [コンテンツ削除](https://document.microcms.io/content-api/delete-content) **マネジメントAPI:** - [メディア取得](https://document.microcms.io/management-api/get-media-v2) - [メディアアップロード](https://document.microcms.io/management-api/post-media) - [JS SDK メディアアップロード](https://blog.microcms.io/js-sdk-management-api-upload-media/) ## 使用例 ```bash # 環境変数設定 export MICROCMS_SERVICE_ID=my-blog export MICROCMS_API_KEY=your-api-key # MCPサーバー起動 npm start ``` MCPクライアント(Claude等)から使用: - ブログ記事一覧取得: `microcms_get_list` (endpoint: "blogs") - 個別記事取得: `microcms_get_content` (endpoint: "blogs", contentId: "article-1") - 新規記事作成: `microcms_create_content` (endpoint: "blogs", content: {...}) - メディア取得: `microcms_get_media` (limit: 10, imageOnly: true) - メディアアップロード: `microcms_upload_media` (fileData: "...", fileName: "image.jpg") ## フィールドタイプ対応 - **テキスト**: 文字列 - **リッチエディタ**: HTML文字列 - **画像**: microCMS asset URL文字列 - **複数画像**: URL文字列の配列 - **日付**: ISO 8601形式 - **選択**: 文字列配列 - **コンテンツ参照**: contentId文字列または配列 ## 注意事項 - リスト形式APIのみサポート(オブジェクト形式APIは未対応) - メディアアップロードは5MB制限 - APIレート制限はmicroCMS側の制限に準拠 - .envファイルには機密情報を含むため、Git管理対象外

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/microcmsio/microcms-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server