sacloud-mcp
Official> [!CAUTION]
> **本プロジェクトは提供を終了しました**
>
> 2026年4月13日をもって、本リポジトリはアーカイブされました。
> 本プロジェクトはすでにメンテナンスを終了しており、
> 今後、機能追加、バグ修正、ならびにセキュリティアップデートは一切提供されません。
>
> 本プロジェクトの新規利用および継続利用は推奨されません。
# sacloud/sacloud-mcp
## 概要
sacloud/sacloud-mcpはさくらのクラウド向けMCPサーバです。
## 開発環境の構築
### 必要ツール
### プロジェクトのクローン
```
git clone https://github.com/sacloud/sacloud-mcp.git
```
### uvのインストール
より詳細なインストール方法・使用方法については、uvの[ドキュメント](https://docs.astral.sh/uv/)を参照してください。
```
curl -LsSf https://astral.sh/uv/install.sh | sh
```
### 環境構築同期
```
uv sync
```
## LLMへMCPをインストール
任意のLLMへMCPをインストールする。
一例としてclaude desktopでの設定を示す。
claude desktopの設定ファイルに以下を追記する。
なお、設定ファイルの位置はOS毎に以下の通りである。
- macOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
```
{
"mcpServers": {
"sacloud": {
"command": "${HOME}/.local/bin/uv",
"args": [
"--directory",
"<<MCPサーバーのルートディレクトリ>>/src",
"run",
"main.py"
],
"env": {
"<<環境変数1>>": "<<値をコピーしてここへ貼り付ける>>",
"<<環境変数2>>": "<<値をコピーしてここへ貼り付ける>>"
}
}
}
}
```
<<>>で示された要素について、以下を参考に適宜置き換える。
- MCPサーバーのルートディレクトリ
- 例: `/Users/user/Source/sacloud-mcp`
- 環境変数
- 使用する機能に応じて環境変数を設定。
- さくらのクラウドのリソースにアクセスする場合、[さくらのクラウドのAPIキー](https://manual.sakura.ad.jp/cloud/api/apikey.html)を参照して置き換える。
- `"ACCESS_TOKEN": "<<値をコピーしてここへ貼り付ける>>"`
- `"ACCESS_TOKEN_SECRET": "<<値をコピーしてここへ貼り付ける>>"`
- さくらのオブジェクトストレージにアクセスする場合、[さくらのオブジェクトストレージのAPIキー](https://manual.sakura.ad.jp/api/cloud/objectstorage/#section/%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E4%BD%BF%E3%81%84%E6%96%B9/API)を参照して置き換える。
- `"OBJECTSTORAGE_ACCESS_KEY_ID": "<<値をコピーしてここへ貼り付ける>>"`
- `"OBJECTSTORAGE_SECRET_ACCESS_KEY": "<<値をコピーしてここへ貼り付ける>>"`
## テスト
### 構成について
`tests/conftest.py`には、全テストファイルで利用可能なfixtureが定義されており、
すべてのテストファイルから明示的な`import`不要で利用できる。
### 準備
環境変数から認証情報を取得するため、テスト実行前に`ACCESS_TOKEN`と`ACCESS_TOKEN_SECRET`設定する
```
export ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxx
export ACCESS_TOKEN_SECRET=xxxxxxxxxxxxxxxxxxxx
export OBJECTSTORAGE_ACCESS_KEY_ID=xxxxxxxxxxxxxxxxxxxx
export OBJECTSTORAGE_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxx
```
### テスト実行
```
uv run pytest
```
## License
`sacloud-mcp` Copyright (C) 2025- The sacloud/sacloud-mcp authors.
This project is published under [Apache 2.0 License](LICENSE).
TDQS
Scored across 41 tools
Most tools are clearly distinct by resource type and action, such as create_server vs. get_server_list. However, some potential confusion exists between get_manual_outline and get_api_manual_outline, which both fetch manual outlines but for different documentation sets, and between get_loadbalancer and attach_servers, which both involve load balancers but with overlapping purposes. Overall, the descriptions help clarify distinctions, but minor ambiguities remain.
The tool names follow a highly consistent verb_noun pattern throughout, such as create_server, get_server_list, delete_router, and start_server. All tools use snake_case uniformly, with verbs like create, get, delete, start, stop, and read applied predictably across resources. This consistency makes the tool set easy to navigate and understand.
With 41 tools, the count is excessive for a single server, making it overwhelming and difficult for agents to manage. While the domain (Sakura Cloud API) is broad, the tool set includes many specialized or redundant tools, such as multiple manual-reading tools and separate billing/coupon tools, which could be consolidated. This high number detracts from usability and coherence.
The tool set provides comprehensive coverage for core cloud infrastructure operations, including CRUD for servers, disks, routers, switches, and load balancers, along with monitoring, billing, and documentation tools. Minor gaps exist, such as missing update operations for some resources (e.g., update_server) and limited object storage management beyond listing, but agents can likely work around these with the available create/delete and read tools.