---
name: paradevai-plugins
description: "Install Paradev (formerly Superset) plugins, connect the accounts they need, and call their MCP tools through the credential proxy. Use when the user wants a plugin installed, removed, enabled, or connected, asks what tools a plugin exposes, wants to call one, adds a marketplace, or asks why a plugin's tools are not available."
license: "NOASSERTION"
metadata:
  decimalai-skill-id: "9184e1e9-c489-4493-a1d6-470313cdf3d2"
  decimalai-version-id: "b1fcea89-7b01-4fdc-a60d-4fb7a30f7256"
  decimalai-version: "1"
  decimalai-body-sha256: "c667c78fad4f2a38fe2b8818587adb62a58bda22c95183b21cbcd05d56ee255f"
  decimalai-name: "paradevai/plugins"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "agent-tooling"
  decimalai-source: "https://app.decimal.ai/s/paradevai-plugins@1/SKILL.md"
---
# Plugins and their tools

`paradev` is an alias for the `superset` CLI: every `superset` command here also runs as `paradev`.

A plugin brings two things: **skills**, which land in the directories agents read, and **MCP
tools**, which are called through Paradev's proxy. Install state lives on the account, so a
plugin installed here is installed everywhere you sign in. The credential does not. It stays
server-side, and no token is ever written to this machine.

## 1. See what is there

```bash
superset plugins list                  # installed, with status per plugin
superset plugins list --available      # everything the marketplace offers
superset skills list                   # skills on this machine, and their paths
```

The `status` column is the thing to read. `needs connection` means the skills are installed
but no account is authorized, so the tools will fail. That is a connect step, not a bug.

## 2. Install

```bash
superset plugins install linear
superset plugins install linear --update      # move to the marketplace's current version
superset plugins install linear@superset      # when two marketplaces carry the same name
```

Install records the plugin on the account and materializes its skills locally. It prints
whether a connection is still needed.

## 3. Connect an account

Two shapes, and the plugin's manifest decides which:

```bash
superset plugins connect linear                       # oauth2: prints a URL to open
superset plugins connect sentry --inputs '{"api_key":"..."}'
echo '{"api_key":"..."}' | superset plugins connect sentry --inputs -
```

Prefer stdin for a real credential: an argument is visible in `ps` and in shell history.
OAuth cannot finish headlessly: hand the URL to the user, then confirm with
`superset plugins list`.

If a plugin offers more than one method, the command says so and lists them. Ask the user
which they want rather than picking.

## 4. Call its tools

Address a plugin by name, from the `PLUGIN` column of `superset plugins list`. A connection id
is not accepted: credentials live on the connector a plugin names, and one connector can back
several plugins, so an id no longer says which plugin was meant.

Arguments are the last positional, not an option, and `-` reads them from stdin.

```bash
superset mcp tools --plugin linear
superset mcp call-tool list_issues --plugin linear
superset mcp call-tool create_issue --plugin linear '{"team":"ENG","title":"Export 500s"}'
echo '{"team":"ENG","title":"..."}' | superset mcp call-tool create_issue --plugin linear -
```

List the tools before calling one. Names and argument schemas come from the plugin's server,
not from anything in this repo, and they change between versions. The `integrations` skill
covers this end in full: reading a tool's arguments, choosing an account, parsing the
result.

The call goes out from Paradev's API, which attaches the credential. That is why this
works with no token on the machine, and why a network-restricted sandbox can still reach a
plugin's tools.

### Reading a failure

| What you see | What it means |
| --- | --- |
| `needs connection` in `plugins list` | Installed, not authorized. Run `plugins connect`. |
| 401/403 from a tool call | The stored credential was revoked or expired. Reconnect. |
| `is not installed` | Installed on the account but not resolvable here; run `plugins install --update`. |
| More than one marketplace named | Two installs share the name. Re-run with `name@marketplace`. |

## 5. Turn things off

```bash
superset plugins uninstall linear     # uninstall, and reap the skills it provisioned
superset plugins disable linear       # keep the install, stop provisioning its skills
superset plugins marketplace list
superset plugins marketplace add owner/repo      # add a third-party marketplace
superset plugins marketplace remove <name>
```

`uninstall` reaps only what the plugin provisioned; hand-written skills in the same directory
are left alone. It removes the plugin locally even when the account call fails, and says so.
Read that message: the stored credential is revoked as part of the account removal, so an
unconfirmed removal means the skills are gone from this machine while the connection lives
on. Check with `superset plugins list` and run `uninstall` again.

## Anti-patterns

- Calling a tool without listing tools first. You are guessing at a name and a schema that
  the plugin owns.
- Passing a secret as a command argument when the command accepts stdin.
- Treating `superset plugins sync` as a fix for a missing connection. Sync converges skills
  on this machine; it has nothing to do with credentials.
- Installing a plugin to "see what it does". Install writes to the user's account and every
  machine they use. Ask first.
