Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
作者による説明(英語の原文)
Real Android phones in the cloud for AI agents: give phones a task in plain words and get the answer
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
CLOUSD_API_KEY, Authorization「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"clousd": {
"command": "uvx",
"args": [
"clousd-mcp"
],
"env": {
"CLOUSD_API_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http clousd https://api.clousd.com/mcp --header 'Authorization: your-value'claude mcp add clousd --env CLOUSD_API_KEY=your-value -- uvx clousd-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"clousd": {
"url": "https://api.clousd.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"clousd": {
"command": "uvx",
"args": [
"clousd-mcp"
],
"env": {
"CLOUSD_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"clousd": {
"type": "http",
"url": "https://api.clousd.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"clousd": {
"type": "stdio",
"command": "uvx",
"args": [
"clousd-mcp"
],
"env": {
"CLOUSD_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
Authorization 秘密 必須 HTTP headerこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーは、ツール一覧を表示する前にサインインを求めます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント Clousd-Android で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
173ミリ秒で応答(HTTP 401)
OAuthでのサインインに対応しているため、AIアプリがログイン画面へ案内してくれます
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:CLOUSD_API_KEY, Authorization
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(1.6.0)がレジストリに届いたのは一昨日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Every agent framework can tap a phone. Almost none has a phone worth tapping.
Clousd is the phone. Each device is a full Android system on the Android version you pick (12 to 17), with Google Play inside and its own network exit. Give it a task in plain words and Clousd's phone agent does the steps and answers; or drive the screen yourself, step by step. Apps see a phone, not an emulator, so your agent sees the screens a person sees.
This repository is the public side of it: the OpenAPI description, the Python client, the MCP server and the skill for coding agents.
Give it the goal. POST /v1/runs {"task": "...", "device": "..."}, c.run(...) in Python, the run tool over MCP. Clousd's agent looks at the screen, taps and types until the goal is reached, and finishes with an answer - plus a replay of every step, and JSON in your schema when you ask for it. One call gives the same task to up to 32 phones. Saved logins are typed on the phone without your agent or the model seeing them.
Drive it yourself. observe returns a fresh screenshot with a number on every element; act taps an element, types, swipes, opens apps and links, and waits until the screen settles. Snapshots reset a phone to a saved state in seconds.
Hosted, nothing to install: https://api.clousd.com/mcp. Apps with connectors (Claude.ai, ChatGPT…) sign in with OAuth - just add the URL. Other clients send the key in the header:
{
"mcpServers": { "clousd": { "url": "https://api.clousd.com/mcp", "headers": { "Authorization": "Bearer cl_live_..." } } } }
Local: pip install clousd-mcp, then {"command": "clousd-mcp", "env": {"CLOUSD_API_KEY": "cl_live_..."}}.
Tools: account, devices, run, run_status, answer, observe, act, credentials, schedules (mcp/).
Coding agents learn the workflow from the skill:
npx skills add https://github.com/Clousd-Android/clousd-sdk --skill clousd
pip install clousd
export CLOUSD_API_KEY=cl_live_...
from clousd import Clousd
c = Clousd() run = c.run("Open Settings and tell me the Android version", device="dev_04f2", wait=True) print(run.status, run.answer) # completed Android 15
phone = c.device("dev_04f2") # or step by step phone.open_app("com.android.chrome") phone.tap_text("Search") phone.type("weather in Berlin") phone.key("enter") phone.wait_text("Berlin", timeout=30)
More in python/.
curl -H "Authorization: Bearer cl_live_..." https://api.clousd.com/v1/devices
curl -H "Authorization: Bearer cl_live_..." -H "Content-Type: application/json" \ -d '{"task":"Open Settings and tell me the Android version","device":"dev_04f2"}' https://api.clousd.com/v1/runs curl -N -H "Authorization: Bearer cl_live_..." https://api.clousd.com/v1/runs/r_8f2c/events # live steps (SSE) curl -H "Authorization: Bearer cl_live_..." "https://api.clousd.com/v1/devices/dev_04f2/observe?w=540"
| Route | Purpose |
|---|---|
POST /runs | a task in plain words on device or devices[] (up to 32): {task, device, credentials:[{package,name}], options:{output_schema, mode, max_steps, timeout}}; Idempotency-Key header |
GET /runs, GET /runs/{id} | runs of the key; status, answer, structured_output, the card it waits on |
GET /runs/{id}/events | live events (Server-Sent Events): status, step, plan, card, answer, end |
GET /runs/{id}/trajectory, /steps/{n}.jpg | every step with its screen |
POST /runs/{id}/answer, /message, /cancel | answer a question or permission, talk to the running agent, stop it |
GET/POST /schedules, POST /schedules/{id}/toggle, /delete | tasks at a time on days of the week |
GET/POST /credentials, POST /credentials/{id}/fields, DELETE … | saved logins; values are never returned |
GET/POST /webhooks, …/{id}/rotate, /toggle, /test, GET …/deliveries | events to your server, signed with your secret |
GET /android, GET /devices, GET /devices/{name}, POST /devices {android}, start/stop/restart/reset | phones of the key and their lifecycle; a phone is created by Android version; reset wipes apps and data |
DELETE /devices/{name} (?forever=1), GET /trash, POST /trash/{name}/restore | delete moves the phone to Trash for 14 days (stopped, not billed, restorable); forever=1 wipes it at once |
GET /devices/{name}/observe, POST /devices/{name}/act, /screenshot, /screenrecord | the screen, step by step |
GET/POST /devices/{name}/network, GET/POST /proxies | the phone's network exit |
GET/POST/DELETE /devices/{name}/adb | ADB over a relay: one-time code, IP allow-list, expiry |
GET /balance | plan, phones, money left and warnings to show the user |
Keys have a scope (read or read & write) and an explicit list of phones; keys travel only in the Authorization header. Limits: 120 requests a minute per key and device, 600 a minute per key across devices, 60 a minute for everything else; 429 comes with Retry-After. Errors are JSON: {"error": "short_code", "message": "what happened"}. Full description: openapi.yaml; reference: clousd.com/docs/reference.
| Part | What it is |
|---|---|
openapi.yaml | OpenAPI 3.1 description of the public API v1 (https://api.clousd.com/v1) |
python/ | clousd: Python client (runs, schedules, logins, webhooks, devices, observe/act, reset), clousd.agent (a step-by-step loop on your own model), clousd.bench, the clousd CLI |
mcp/ | clousd-mcp: the MCP server, local or hosted |
skills/clousd | skill for coding agents: how to work with Clousd phones |
docs/agent-loop.md | driving a phone yourself: the observe → act → verify loop |
server.json, smithery.yaml | registry metadata |
1.6 adds your apps. An app is an APK you upload once and install by id on any of your phones; there is no catalog of other people's apps (Google Play apps are installed in the Play Store on the phone). GET /v1/apps lists your APKs (id, name, size, package, version), POST /v1/apps uploads one as a file up to 300 MB, POST /v1/apps/{id}/install {devices} installs it, DELETE /v1/apps/{id} removes it from storage. POST /v1/media also takes a multipart file now (photo 25 MB, video 200 MB, document 50 MB, apk 300 MB). Every APK is checked on upload and before each install - a real Android app, 64-bit ARM native code when it has any, not a root or system-modification tool - and refused with 422 apk_rejected and the reason otherwise. SDK: c.apps(), c.upload_app(path), c.install_app(id, devices), c.delete_app(id); c.upload_media(path) sends the file as a file. MCP: the apps tool.
1.5 creates phones by Android version only. POST /v1/devices {android: "14"} (versions: GET /v1/android); the phone model is picked by the service. GET /v1/models answers 410, and devices no longer carry a model field. A phone not renamed is called Phone #N. An old body with profile still works and keeps only that model's Android version. Python: c.create_device(android="14"), c.android_versions(); c.models() is deprecated.
1.3 adds the Library: GET /v1/media lists the account's files (photos, videos, documents, apks) with ids and folders, POST /v1/media uploads one, POST /v1/media/send copies files to phones. Pass ids to POST /v1/runs as files and they are placed on the phone before the first step (photos and videos in the gallery, documents in Downloads, apks installed). SDK: c.run(task, files=[...]), c.media(), c.upload_media(), c.send_media(); MCP: the library tool and files on run. Creating a device no longer takes plan: phones run pay as you go, a plan's minutes are used first.
1.2 removes saved device states. /v1/devices/{name}/snapshots, /profiles and /worlds answer 410; to start from a clean phone call POST /v1/devices/{name}/reset (apps and data are wiped, the Android version stays the same). Python: device.reset() replaces snapshots(), save_snapshot(), restore() and clone().
1.0 gives phones goals instead of scripts. /v1/recipes, /v1/groups, /v1/accounts, /v1/texts and the device recipe / record routes answer 410 with where to go instead: tasks are POST /v1/runs, logins are /v1/credentials. MCP: run / run_status / answer / credentials / schedules replace fleet, recipe, resources, network, snapshots and inspect. Keys in the URL are no longer accepted.
pip install -e python
pip install -e mcp python -m unittest discover -s python/tests # offline: a fake server and a scripted model, no key needed
io.github.Clousd-Android/clousd-mcp · hosted endpoint: https://api.clousd.com/mcpMIT. See LICENSE.