ALSO Cloud Marketplace MCP

Ermöglicht das Bedienen des ALSO Cloud Marketplaces via MCP

Documentation

ALSO Cloud Marketplace MCP

MCP-Server für die ALSO Cloud Marketplace Simple API — damit KI-Assistenten (Cursor, Claude, Gemini CLI, OpenAI Codex, …) direkt auf Companies, Subscriptions, Users, Invoices usw. zugreifen können.

ProtokollModel Context Protocol (stdio)
APIMarketplaceSimpleAPI 1.0.0
StackTypeScript / Node.js 20+
SDK-Librarygo-also-cloud-wrapper (gleiche Auth & Marketplaces)

Schnellstart

git clone https://github.com/pitwch/also-cloud-marketplace-mcp.git
cd also-cloud-marketplace-mcp
npm install
npm run build

Benötigte Umgebungsvariablen:

VariableBeispielPflicht
ALSO_CLOUD_MARKETPLACESwitzerland oder https://marketplace.also.chja
ALSO_CLOUDUSERyou@example.comja
ALSO_CLOUDPW••••••••ja
ALSO_CLOUD_TIMEOUT_MS30000nein
ALSO_CLOUD_API_PREFIX/SimpleAPI/.../restnein
ALSO_CLOUD_PARENT_ACCOUNT_ID315818nein (Default-Parent für Namenssuche)

ALSO_CLOUD_MARKETPLACE akzeptiert eine volle URL oder einen Country-Key:
Switzerland, Germany, Austria, Debug, …

Hinweis: 2FA

ALSO Cloud Marketplace-Accounts haben standardmässig 2FA aktiviert. Die Simple API und dieses MCP unterstützen nur Login mit Benutzername und Passwort — 2FA funktioniert damit nicht. Für die API-/MCP-Nutzung muss 2FA für den betreffenden Account über das ALSO Supportportal deaktiviert werden (Support-Anfrage).


Installation in Clients

Überall gilt: Server lokal starten (stdio), Credentials als env setzen.
Pfad unten durch deinen Clone ersetzen, z. B. C:/DEV/also-cloud-marketplace-mcp oder /home/you/also-cloud-marketplace-mcp.

Empfohlene Variante (gebaut)

command: node
args:    [<REPO>/dist/index.js]

Alternative (ohne Build, via tsx)

command: npx
args:    [tsx, <REPO>/src/index.ts]

Voraussetzung: zuvor npm install im Repo.


Cursor

  1. Settings → MCP → Add new MCP server (oder mcp.json bearbeiten).
  2. Eintrag hinzufügen:
{
  "mcpServers": {
    "also-cloud": {
      "command": "node",
      "args": ["C:/DEV/also-cloud-marketplace-mcp/dist/index.js"],
      "env": {
        "ALSO_CLOUD_MARKETPLACE": "Switzerland",
        "ALSO_CLOUDUSER": "you@example.com",
        "ALSO_CLOUDPW": "your-password"
      }
    }
  }
}
  1. Server aktivieren / Cursor neu laden.
  2. Im Chat Tools von also-cloud nutzen, z. B. „Liste Companies unter Parent 12345“.

Claude Desktop

  1. Config öffnen: Settings → Developer → Edit Config
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Gleichen mcpServers-Block wie bei Cursor einfügen.
  3. Claude Desktop vollständig neu starten.
  4. Im Chat das Hammer-/Tools-Icon prüfen — also-cloud sollte erscheinen.

Claude Code (CLI)

claude mcp add also-cloud --env ALSO_CLOUD_MARKETPLACE=Switzerland --env ALSO_CLOUDUSER=you@example.com --env ALSO_CLOUDPW=secret -- node /path/to/also-cloud-marketplace-mcp/dist/index.js

Prüfen:

claude mcp list

Gemini CLI

Config in ~/.gemini/settings.json (oder projektbezogen .gemini/settings.json):

{
  "mcpServers": {
    "also-cloud": {
      "command": "node",
      "args": ["/path/to/also-cloud-marketplace-mcp/dist/index.js"],
      "env": {
        "ALSO_CLOUD_MARKETPLACE": "Switzerland",
        "ALSO_CLOUDUSER": "you@example.com",
        "ALSO_CLOUDPW": "your-password"
      }
    }
  }
}

Oder per CLI:

gemini mcp add also-cloud --env ALSO_CLOUD_MARKETPLACE=Switzerland --env ALSO_CLOUDUSER=you@example.com --env ALSO_CLOUDPW=secret -- node /path/to/also-cloud-marketplace-mcp/dist/index.js

Docs: MCP servers with Gemini CLI


OpenAI — Codex CLI / ChatGPT Desktop / IDE

Codex nutzt TOML (~/.codex/config.toml), geteilt mit ChatGPT Desktop & Codex-IDE:

[mcp_servers.also-cloud]
command = "node"
args = ["/path/to/also-cloud-marketplace-mcp/dist/index.js"]

[mcp_servers.also-cloud.env]
ALSO_CLOUD_MARKETPLACE = "Switzerland"
ALSO_CLOUDUSER = "you@example.com"
ALSO_CLOUDPW = "your-password"

Oder:

codex mcp add also-cloud \
  --env ALSO_CLOUD_MARKETPLACE=Switzerland \
  --env ALSO_CLOUDUSER=you@example.com \
  --env ALSO_CLOUDPW=secret \
  -- node /path/to/also-cloud-marketplace-mcp/dist/index.js

codex mcp list

In der TUI: /mcp zeigt verbundene Server.

ChatGPT im Browser: lokales stdio geht hier nicht nativ — siehe unten Browser (MCP SuperAssistant). Für natives MCP: Codex CLI / ChatGPT Desktop.

Docs: OpenAI MCP / Codex


VS Code (GitHub Copilot / MCP)

Je nach Extension analog Cursor: MCP-Server mit command/args/env eintragen.
Pfad auf dist/index.js zeigen und Credentials setzen.


Browser (ChatGPT, Gemini, Perplexity, …) — MCP SuperAssistant

Für Web-Clients ohne natives lokales MCP (z. B. ChatGPT, Gemini, Perplexity, Grok, Google AI Studio) eignet sich MCP SuperAssistant (Browser-Extension + lokaler Proxy).

  1. Extension installieren: Chrome Web Store (auch Firefox / Chromium-Browser). Docs: Installation.
  2. config.json anlegen (gleicher also-cloud-Block wie bei Cursor):
{
  "mcpServers": {
    "also-cloud": {
      "command": "node",
      "args": ["C:/DEV/also-cloud-marketplace-mcp/dist/index.js"],
      "env": {
        "ALSO_CLOUD_MARKETPLACE": "Switzerland",
        "ALSO_CLOUDUSER": "you@example.com",
        "ALSO_CLOUDPW": "your-password"
      }
    }
  }
}

Alternativ eine bestehende Cursor-/Claude-Config nutzen.

  1. Proxy starten (im Terminal, Repo oder Ordner mit der Config):
npx -y @srbhptl39/mcp-superassistant-proxy@latest --config ./config.json --outputTransport sse

Default-URL: http://localhost:3006/sse

  1. ChatGPT / Gemini / … öffnen → MCP-Sidebar → Server-Status → Connect auf http://localhost:3006/sse → MCP-Instructions-Prompt per Insert oder Attach in den Chat legen → Tools nutzen.

Verwendung (Beispiele)

Nach der Anbindung kannst du natürlichsprachlich fragen:

  • „Welche Subscriptions hat die Hosch AG aktiv?“ → list_company_subscriptions (companyName, ggf. parentAccountId / Env)
  • „Finde Company Hosch“ → find_companies
  • „Zeig Companies unter Parent 523525“ → get_companies
  • „Latest Invoices für März 2026“ → get_latest_invoices_for_period
  • „Lege einen User unter Company X an“ → create_user (Write)

Tipp: Für Firmen-/Abo-Fragen nicht über Reports oder Marketplaces gehen — die Workflow-Tools sind dafür da. Subscription-Tools liefern standardmässig kompakte Antworten (compact=true).

Discovery aller API-Endpoints: Tool list_api_endpoints.


Tools (Überblick)

~58 Tools. Vollständige Liste inkl. Risiko-Flags: Tool list_api_endpoints.

Empfohlene Workflows

ToolZweck
find_companiesFirma nach Name unter Parent suchen
list_company_subscriptionsAktive/kompakte Subscriptions einer Firma (Name oder Account-ID)

Session & Meta

ToolZweck
list_marketplacesCountry-Keys → Base-URLs (ohne Login)
list_api_endpointsKatalog der Simple-API
validate_session / clear_sessionSession prüfen / verwerfen
api_requestEscape Hatch (u. a. destruktive Endpoints)

Lesen

BereichTools
Company / Reseller / Dept / Userget_*, get_*_by_vat_id, Listen
Subscriptionsget_subscription(s) (compact), get_subscription_with_addons, get_possible_services_for_parent
Catalogget_owned_marketplaces, list_marketplace_services, get_available_services_for_marketplace, get_service_information
Billingget_reports, execute_report, get_latest_invoices*, get_preview_invoices, get_invoice_aggregation_report
Sonstget_credit_limit, get_security_roles, get_special_deal

Schreiben (gezielt freigeschaltet)

BereichTools
Accountscreate_* / update_* für Company, Reseller, Department, User
Subscriptionsget_fields_for_service, validate_subscription_fields, create_subscription, update_subscription
Actionsget_account_custom_actions, execute_account_custom_action, retry_last_failed_provisioning
Upgrade / Renewget_possible_services_for_upgrade, get_subscription_fields_for_*, execute_subscription_upgrade, configure_subscription_renew, reset_default_renew_values
Credit / Dealset_credit_limit, list_credit_check_orders_for_approval, approve_* / decline_credit_check_order, set_special_deal

Nur über api_request (destruktiv / selten)

TerminateAccount, DeleteMarketplace*, DeleteSpecialDeal, Marketplace-Create/Delete, …
→ bewusst kein eigenes Tool, damit die KI sie nicht versehentlich aufruft.


Entwicklung

npm run dev        # stdio via tsx
npm run typecheck
npm run build
npm start          # node dist/index.js

Wichtig: Auf stdout nur MCP-JSON-RPC schreiben — Logs nur mit console.error.


Links

License

MIT © Pedrett IT+Web AG