mcpField
C
cloudsuite

cloudsuite

ローカル
github.com/CloudCorpRecords生産性01 週間前に更新

cloudsuite について

cloudsuiteは、セルフホストのNextcloudを操作するエージェント向けのMCPサーバー兼CLIです。Notes APIとDAVエンドポイントを通じて、ノート、カレンダー、連絡先、ファイルを扱うコア機能を提供します。

主な機能

  1. 01ノートの検索、作成、編集
  2. 02カレンダーの表示とイベント管理
  3. 03連絡先の一覧表示と作成
  4. 04ファイルの参照、読み書き、削除
  5. 05MCPサーバーとCLIの提供

活用シーン

  1. 01Nextcloudのノート検索と更新
  2. 02カレンダーイベントの作成や削除
  3. 03連絡先と詳細情報の追加
  4. 04リモートファイルの読み書きや削除

MCP 対応

stdioでMCPサーバーとして動作し、Nextcloudのノート、カレンダー、連絡先、ファイルを扱う15のツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-cloudsuite": {
"command": "npx",
"args": [
"-y",
"@reneturcios/cloudsuite"
]
}
}
}
起動コマンドnpx -y @reneturcios/cloudsuite

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/cloudsuite0.1.0
ocighcr.io/cloudcorprecords/cloudsuite:0.1.0

ツール

15

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
querystringはいノートのタイトルと内容に照合する検索クエリのテキスト。

詳細

cloudsuite

cloudsuite を使うと、エージェントがセルフホスト可能な Nextcloud インスタンスを操作できます。 ノートの検索と編集、カレンダーの表示とイベントの作成・削除、 連絡先の一覧表示と作成、ファイルの参照・読み取り・書き込み・削除ができます。 ノートにはインスタンスの Notes アプリ API を使用し、カレンダー、連絡先、 ファイルには Nextcloud の CalDAV、CardDAV、WebDAV エンドポイントを使用します。

このパッケージはクリーンルームで再構築されたもので、対象範囲を明示したコアサブセットです。 元の Nextcloud MCP サーバーで説明されている 30 個のツールのうち、15 個をカバーしています。 省略したツールは、以下の「対象範囲」に記載しています。

サービスとの通信方法

各ツールには、3 つの環境変数が必要です。

export NEXTCLOUD_URL="https://cloud.example.com"   # base URL of the instance
export NEXTCLOUD_USERNAME="alice"
export NEXTCLOUD_PASSWORD="xxxxx-xxxxx-xxxxx-xxxxx"  # an app password

3 つのうち 1 つでも不足している場合、リクエストを送信する前に、不足している変数名を示すエラーですべての呼び出しが失敗します。すべてのリクエストには、ユーザー名とアプリパスワードから作成した HTTP Basic 認証が付与されます。

**ワイヤーフォーマットに関する注記:**元のプロジェクトの README には、ツールとその目的が記載されています。ここに示すエンドポイントの形式は、Nextcloud の公開 Notes API と DAV の構成に従っています。ノートには {NEXTCLOUD_URL}/index.php/apps/notes/api/v1 を使用します。カレンダーには {NEXTCLOUD_URL}/remote.php/dav/calendars/{user}/ 配下の CalDAV を使用します。 連絡先には {NEXTCLOUD_URL}/remote.php/dav/addressbooks/users/{user}/ 配下の CardDAV を使用します。 ファイルには {NEXTCLOUD_URL}/remote.php/dav/files/{user}/ 配下の WebDAV を使用します。 パスの各セグメントは、セグメントごとにパーセントエンコードされます(スラッシュは保持されます)。 DAV のステータス 207 は成功として扱われます。それ以外の非 2xx レスポンスは、ステータスと本文の抜粋とともに報告されます。カレンダーイベントの一覧表示は概要のみです。REPORT レスポンスは、ステータス、バイト数、およびその中に見つかった SUMMARY: 行に要約されます。

インストール

npx @reneturcios/cloudsuite nextcloud_webdav_list_directory '{"path":"/"}'

または、コンテナイメージを実行します。

docker run -i ghcr.io/cloudcorprecords/cloudsuite

コンテナはデフォルトで MCP サーバーを起動します。CLI として使用するには、CLI 引数を渡してください。

CLI

CLI はツールに対応しており、各サブコマンドが 1 つのツールに対応します。引数は単一の JSON オブジェクトとして指定します。

cloudsuite nextcloud_notes_search_notes '{"query":"shopping"}'
cloudsuite nextcloud_notes_create_note '{"title":"Ideas","content":"..."}'
cloudsuite nextcloud_calendar_list_calendars '{}'
cloudsuite nextcloud_webdav_read_file '{"path":"/Documents/notes.txt"}'
cloudsuite --version

終了コード:成功時は 0、API エラーまたは検証エラー時は 1(エラーには問題が示されます)、使用方法のエラー時は 2 です。

MCP サーバー

1 つの実行ファイルで、どちらの使い方にも対応します。mcp サブコマンドを実行すると、stdio MCP サーバーが起動します。

npx -y @reneturcios/cloudsuite mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "cloudsuite": {
      "command": "npx",
      "args": ["-y", "@reneturcios/cloudsuite", "mcp"],
      "env": {
        "NEXTCLOUD_URL": "https://cloud.example.com",
        "NEXTCLOUD_USERNAME": "alice",
        "NEXTCLOUD_PASSWORD": "your app password"
      }
    }
  }
}
ツール
ツール入力説明
nextcloud_notes_search_notesquery(必須)すべてのノートを取得し、タイトルまたは内容にクエリが含まれるノート(大文字と小文字を区別しない)を抽出します。
nextcloud_notes_create_notetitle、content(必須)、categoryNotes API を使用してノートを作成します。
nextcloud_notes_update_noteid(必須)、title、content、categoryノートの指定されたフィールドを更新します。
nextcloud_notes_append_contentid、content(必須)ノートを読み込み、新しい内容を改行の後に追加して書き戻します。タイトルは保持されます。
nextcloud_notes_delete_noteid(必須)ノートを削除し、{status, id} を返します。
nextcloud_calendar_list_calendars—カレンダーのルートに PROPFIND を実行し、各コレクションの表示名と href を返します。
nextcloud_calendar_create_eventcalendarId、summary、dtstart、dtend(必須)、description、location生成した VEVENT を .ics ファイルとしてカレンダーに PUT し、{status, uid} を返します。
nextcloud_calendar_list_eventscalendarId(必須)カレンダーのクエリを REPORT し、レスポンスのステータス、バイト数、抽出した SUMMARY: 行を要約します。
nextcloud_calendar_delete_eventcalendarId、eventId(必須)イベントリソースを DELETE します。
nextcloud_contacts_list_contactsaddressBookId(必須)アドレス帳に PROPFIND を実行し、含まれる href を返します。
nextcloud_contacts_create_contactaddressBookId、fullName(必須)、email、phone、organization生成した VCARD を .vcf ファイルとしてアドレス帳に PUT し、{status, uid} を返します。
nextcloud_webdav_list_directorypath(必須)フォルダーに PROPFIND を実行し、各エントリーの名前、href、コレクションかどうかを返します。
nextcloud_webdav_read_filepath(必須)ファイルを GET し、テキストの内容とバイト数を返します。
nextcloud_webdav_write_filepath、content(必須)ファイルパスにテキストの内容を PUT します。
nextcloud_webdav_delete_resourcepath(必須)ファイルまたはフォルダーを DELETE します。

対象範囲

このコアサブセットでは、hello、 nextcloud_calendar_get_event、nextcloud_calendar_update_event、 nextcloud_contacts_list_addressbooks、 nextcloud_contacts_create_addressbook、 nextcloud_contacts_delete_addressbook、 nextcloud_contacts_delete_contact、6 つすべての nextcloud_tables_* ツール、nextcloud_webdav_search_files、および nextcloud_webdav_create_directory は対象外です。CalDAV/CardDAV のワイヤ形式は 最小限の再構成であり、繰り返しの展開、ETag の処理、タイムゾーンの処理はなく、カレンダーイベント一覧の 抽出も意図的に簡素化されています。このパッケージの構築時に実際の Nextcloud インスタンスは 使用しておらず、動作はフェイク fetch を使ったテストのみで検証しています。

開発

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, fake fetch only, no network
npm run dev     # run the CLI from source via tsx

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。