Skip to content
Development
Skill

/outsystems-tenant-architecture

[Beta] Generate an interactive HTML graph of an OutSystems Developer Cloud tenant's assets (web/mobile apps, agents and agent definitions, AI model connections, knowledge bases, libraries, integrations) with filter-by-type controls, where each asset is deployed (revision drift

From plugin
outsystems-mcp
427 skills5 agents1 command1 MCP

Claude Code

$ npx -y skills add OutSystems/outsystems-mcp --skill outsystems-tenant-architecture --agent claude-code

SKILL.md

outsystems-tenant-architecture.SKILL.md
name: outsystems-tenant-architecture
description: "[Beta] Generate an interactive HTML graph of an OutSystems Developer Cloud tenant's assets (web/mobile apps, agents and agent definitions, AI model connections, knowledge bases, libraries, integrations) with filter-by-type controls, where each asset is deployed (revision drift per environment), a 7-day Production traffic/error overlay and an AI governance view (model providers, Trial vs Customer entitlement, test/demo-named and stale agents). ONE tenant-level pass per invocation, no per-app deep dives (use outsystems-app-architecture for one app); also the entry point for 'architecture of every app' requests, which it confirms before any per-app run. First run 2-5 min; cached re-runs ~5s. Use when the user asks for a tenant overview, architecture diagram, asset inventory, 'what's in my tenant', 'show me my apps', 'what is deployed where', an AI inventory, 'audit my AI', 'which models are we using', 'show me my agents', AI governance, or similar. Not for OutSystems 11 (O11) or Service Studio."
license: MIT
compatibility: Needs an agent that can run shell commands and Python 3.10+ (standard library only), with the OutSystems MCP server connected and signed in. Validated on Claude Code. Claude Desktop's Chat tab has no shell and cannot run it. The output HTML embeds the tenant data but loads its graph library and fonts from public CDNs; offline it falls back to a plain asset table.
allowed-tools: Bash(python3 ${CLAUDE_PLUGIN_ROOT}/skills/outsystems-tenant-architecture/scripts/build.py *) Bash(python3 "${CLAUDE_PLUGIN_ROOT}/skills/outsystems-tenant-architecture/scripts/build.py" *) Write mcp__plugin_outsystems_outsystems__auth_status mcp__plugin_outsystems_outsystems__env_list mcp__plugin_outsystems_outsystems__app_list mcp__plugin_outsystems_outsystems__env_apps mcp__plugin_outsystems_outsystems__app_health mcp__plugin_outsystems_outsystems__context_agents mcp__plugin_outsystems_outsystems__context_connections mcp__outsystems__auth_status mcp__outsystems__env_list mcp__outsystems__app_list mcp__outsystems__env_apps mcp__outsystems__app_health mcp__outsystems__context_agents mcp__outsystems__context_connections
metadata:
  version: "1.9.0"
  maturity: beta
  author: OutSystems

**Beta Feature.** This skill is a Beta Feature: a non-final OutSystems capability provided to collect customer feedback. It can change significantly, including through breaking changes, or be discontinued. The first time you use this skill in a conversation, tell the user it's a Beta Feature and share https://www.outsystems.com/legal/beta-features-agreement.

OutSystems Tenant Architecture

Produces a single HTML file with a force-directed graph of every asset in the user's ODC tenant, where each one is deployed, and a 7-day Production traffic/error overlay. OutSystems dark theme, filter-by-type, by-environment and by-health sidebar, click for asset details, and a Table view. Caches results across sessions, so a re-run within the hour takes seconds.

The tenant data is embedded in the file, so it can be mailed or archived as-is. It is **not** fully self-contained: the graph library (vis-network 9.1.9, pinned with Subresource Integrity, from unpkg with a jsDelivr fallback) and the web fonts load from public CDNs. With both CDNs unreachable (offline, or blocked by a proxy) the page says so and shows the asset table with every filter and the detail panel; fonts fall back to system fonts.

Prerequisites

  • The OutSystems MCP server is connected and signed in. This skill reads

the tools named below; tool names here are the server's own, and your harness may show them with a prefix (in Claude Code, `mcp__plugin_outsystems_outsystems__app_list` for `app_list`).

  • A shell with `python3` (3.10 or later, standard library only). The

scripts read the saved tool results from disk and write the HTML; they never call the server and hold no sign-in of their own.

  • `<skill-folder>` below is this skill's own folder: the one holding this

file (in the OutSystems plugin, `skills/outsystems-tenant-architecture/`), so `<skill-folder>/scripts/build.py` is the script next to it. Values in angle brackets are placeholders you substitute; quote every path, since a home folder can contain spaces.

  • Run every `build.py` command on its own and exactly as this file writes

it: the skill's permissions match `python3 "<skill-folder>/scripts/build.py" ...` and nothing else, so an added redirect (`2>&1`), pipe or chained command (`;`, `&&`) makes the harness stop and ask the user.

  • No shell available? Stop and tell the user this skill needs one (for

example Claude Code, not Claude Desktop's Chat tab); don't try to build the page by hand.

**The core rule: keep large data off the model's context.** Tool results go to disk, `build.py` reads them from there, and the HTML comes out the other side. Never read a saved result back into the conversation.

Procedure

Step 0 — Scope guard

This skill produces **one tenant-level visualization** per invocation, **not per-app deep dives**. Read the user's request and pick the matching branch:

**Branch A — Tenant-only view** ("show me my tenant", "what's in my tenant", "tenant architecture", "show me my apps") → Continue the procedure as normal.

**Branch B — Tenant + per-app deep dives** ("show me everything in detail", "architecture of every app", "deep dive on each app") → **Stop and ask the user for confirmation, before any MCP call.** Don't list the apps to count them first: the question needs no count. Chaining `outsystems-app-architecture` over every app costs ~10K tokens and ~0.5-1 min per app (100 apps = ~1M tokens and 30-60 min). Offer three choices:

  • **Tenant only (recommended):** produces the tenant graph in 2-5 min.

Run `outsystems-app-architecture` afterwards only for the apps the user wants to drill into.

  • **Tenant + per-app for ALL apps:** runs `outsystems-app-architecture`

for each app, at the

Read more
@outsystems
Ships withoutsystems-mcp

Distribution repo for the OutSystems MCP. To install, paste the matching prompt below into your AI assistant. Every harness section below sets up two artifacts and says how to keep the skill current.

427 skills5 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
42
Star history of OutSystems/outsystems-mcp on GitHub, a chart by star-history.com

Other skills on outsystems-mcp.

outsystems

outsystems

OutSystems Developer Cloud (ODC) over MCP. Edit apps, publish, deploy, search tenant elements, manage external libraries. Load…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about outsystems-tenant-architecture.

Which coding agents can use outsystems-tenant-architecture?
outsystems-tenant-architecture installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.