accueil / serveurs / Dev & Code / com.ascent-partners/opencode-workbench
com.ascent-partners/opencode-workbench
serveur MCP (Model Context Protocol) · opencode-workbench 4.0.2
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.ascent-partners/opencode-workbench est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.ascent-partners/opencode-workbench » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 10 outils
- apply_clone≈ 1287 tokens
Apply the Workbench profile to a target: clone the repo and install missing components (OpenCode CLI, Node/pnpm, MCP servers, skills, plugins, optional Docker). It OVERWRITES `<home>/.config/opencode/opencode.json`, copies `AGENTS.md`, resets an existing profile repo to `origin/main`, and runs global installs that need write permission (plus SSH for `mode:ssh`) and can take minutes. Writes a names-only `~/.env.workbench` (mode 600); never secret values. Consent-gated and idempotent: without `confirm:true` it returns the plan and changes nothing. Parameter semantics: `components` defaults to required+core; `workspace` defaults to `~/opencode-workbench`; `skipRepo` skips the clone/update; `profileUrl` overrides the git remote; `dryRun` returns the plan. To preview only, use plan_clone.
Paramètres, retour & exemple (7)
ParamètresdryRun· boolean · optionnel
Report only; make no changes.target· object · requis
The machine to operate on: this host (local) or a remote host over SSH (ssh).confirm· boolean · optionnel
Set true to actually install. When absent, the call returns a plan and makes no changes.skipRepo· boolean · optionnel
Do not clone/update the profile repo on the target.workspace· string · optionnel
Target directory for the profile repo.components· array · optionnel
Component ids to include; defaults to required+core.profileUrl· string · optionnel
Override profile git URL.
Exemple d'appel{"name": "apply_clone", "arguments": {"target": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"plan": {}, "model": "texte", "dryRun": true, "target": "texte", "envPath": "texte", "envVars": [], "skipped": [], "degraded": [], "installed": [], "workspace": "texte", "configPath": "texte", "providerMode": "deepseek"}} - describe_workbench≈ 542 tokens
Describe this MCP server from its bundled profile without contacting any target or making a network call: repository URL, the default component set, components grouped by tier (required/core/optional), and optional MCP add-ons. It takes no parameters, is always safe, and returns instantly. Use it first to resolve a component id for install_component/remove_component/update_component or to see available add-ons; use inspect_target for a machine's live state.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "describe_workbench", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"repo": "texte", "repoGit": "texte", "components": [], "optionalMcp": [], "packageRoot": "texte", "defaultComponents": []}} - inspect_target≈ 914 tokens
Probe one Linux machine — this host (`local`) or a remote host over SSH (`ssh`) — and report its OS, kernel, architecture, package manager, Node/npm, OpenCode, Docker, and per-tool detection flags, plus the names (never values) of credentials present. Read-only: it runs one shell probe as the target user (over SSH when `mode:ssh`), installs nothing, writes nothing, contacts no external service, and can take a few seconds per hop. Parameter semantics: `target.mode` selects local vs ssh (default `local`); `target.host` is required only for ssh; `target.user` defaults to the ssh config/current user; `target.cwd` sets the directory for relative checks; `target.port`/`identityFile` pass straight to ssh. Use it to see what a clone would touch, then plan_clone to turn that into an ordered plan and apply_clone to perform it.
Paramètres, retour & exemple (1)
Paramètrestarget· object · requis
The machine to operate on: this host (local) or a remote host over SSH (ssh).
Exemple d'appel{"name": "inspect_target", "arguments": {"target": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"has": {}, "arch": "texte", "home": "texte", "osId": "texte", "user": "texte", "kernel": "texte", "osName": "texte", "configDir": "texte", "osVersion": "texte", "envPresent": "texte", "npmModules": "texte", "nodeVersion": "texte"}} - install_component≈ 1177 tokens
Install a single Workbench component by id (e.g. `node`, `opencode`, `npm-mcps`, `skills`) on a target; `component` must be an id from describe_workbench. Overwrites that component's files when present (e.g. `skills`/`plugins` replace the copies under `<home>/.config/opencode`); global installs need write permission and can take minutes. Idempotent and consent-gated: without `confirm:true` it returns the plan. Parameter semantics: `component` is required; `workspace` defaults to `~/opencode-workbench`; `confirm` defaults to false (plan only). Use it for one targeted component; use apply_clone to install the full default set.
Paramètres, retour & exemple (4)
Paramètrestarget· object · requis
The machine to operate on: this host (local) or a remote host over SSH (ssh).confirm· boolean · optionnel
Set true to actually install. When absent, the call returns a plan and makes no changes.component· string · requis
Component id from describe_workbench.workspace· string · optionnel
Target directory for the profile repo.
Exemple d'appel{"name": "install_component", "arguments": {"target": {}, "component": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"plan": {}, "model": "texte", "dryRun": true, "target": "texte", "envPath": "texte", "envVars": [], "skipped": [], "degraded": [], "installed": [], "workspace": "texte", "configPath": "texte", "providerMode": "deepseek"}} - list_required_credentials≈ 818 tokens
List the credentials the profile references, which the target already provides, and how to acquire each missing one. Value-blind: it reads only whether each env var is set — no values, no network, no writes — via one read-only probe. Parameter semantics: `target` selects the machine (`local` or SSH) and its `home` sets the returned `template` path and the env file the presence check reads; there are no other parameters. Returns `present`/`missing` var-name arrays plus one guidance record per credential (`var`, `purpose`, `url`, `method`, `command`). Use it after plan_clone to see what would degrade; act on one credential with run_auth_flow.
Paramètres, retour & exemple (1)
Paramètrestarget· object · requis
The machine to operate on: this host (local) or a remote host over SSH (ssh).
Exemple d'appel{"name": "list_required_credentials", "arguments": {"target": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"target": "texte", "missing": [], "present": [], "template": "texte", "credentials": []}} - plan_clone≈ 1259 tokens
Return a read-only plan for a target: compare it against the Workbench profile and list each component as `install`, `present`, or `manual`, with the commands that would run. It still runs a detection probe on the target (same access as inspect_target) but clones nothing and writes nothing. Parameter semantics: `components` restricts the diff to those ids (default: required+core); `workspace` sets the expected profile path on the target (default `~/opencode-workbench`); `profileUrl` overrides the git remote. Use it to preview before apply_clone, which performs the changes.
Paramètres, retour & exemple (6)
ParamètresdryRun· boolean · optionnel
Report only; make no changes.target· object · requis
The machine to operate on: this host (local) or a remote host over SSH (ssh).skipRepo· boolean · optionnel
Do not clone/update the profile repo on the target.workspace· string · optionnel
Target directory for the profile repo.components· array · optionnel
Component ids to include; defaults to required+core.profileUrl· string · optionnel
Override profile git URL.
Exemple d'appel{"name": "plan_clone", "arguments": {"target": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"steps": [], "target": "texte", "inspect": {}, "toInstall": []}} - remove_component≈ 772 tokens
Uninstall one Workbench component by id from a target — the inverse of install_component — for a bounded, documented subset with an automated uninstall (e.g. `opencode`, `pnpm`, `npm-mcps`, `skills`, `docker-containers`); `component` must be an id from describe_workbench. Idempotent: an already-absent component reports `absent`; a component with no automated uninstall (system packages such as git/curl/node) reports `manual`. Destructive and consent-gated: without `confirm:true` it returns a preview and changes nothing, and it deletes only that component's files — never `opencode.json` or the profile repo. Parameter semantics: `workspace` sets the profile path some removals need; `dryRun` reports without changing. Use it to tear down one component; for several, call it per id.
Paramètres, retour & exemple (5)
ParamètresdryRun· boolean · optionnel
Report the action without changing anything.target· object · requis
The machine to operate on: this host (local) or a remote host over SSH (ssh).confirm· boolean · optionnel
Set true to actually remove. When absent, the call returns a preview and makes no changes.component· string · requis
Component id from describe_workbench.workspace· string · optionnel
Profile repo directory (used by components whose removal needs it).
Exemple d'appel{"name": "remove_component", "arguments": {"target": {}, "component": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": "texte", "code": 1, "action": "removed", "output": "texte", "target": "texte", "requiresConfirmation": true}} - run_auth_flow≈ 670 tokens
Return the acquisition plan for one credential on a target: the provider URL, the exact non-interactive command when one exists (e.g. `opencode auth login`, `opencode mcp auth vercel`, `gh auth login`), and whether it is already present. Read-only and value-blind: it emits guidance and re-checks presence with one read-only probe; it does not run the commands or handle secret values. Parameter semantics: `var` must be an env var name returned by list_required_credentials (unknown names error); `target` selects the machine and its `home` is where the value should be written. Use it for a single credential; it does not replace that listing.
Paramètres, retour & exemple (2)
Paramètresvar· string · requis
Credential env var name from list_required_credentials (e.g. OPENCODE_API_KEY).target· object · requis
The machine to operate on: this host (local) or a remote host over SSH (ssh).
Exemple d'appel{"name": "run_auth_flow", "arguments": {"var": "texte", "target": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "var": "texte", "next": "texte", "method": "paste", "target": "texte", "command": "texte", "present": true, "verified": true}} - update_component≈ 716 tokens
Update one Workbench component in place by id: re-run its install script to fetch the current version (e.g. `opencode` re-runs the official installer; `npm-mcps` reinstalls the latest globals). It OVERWRITES the component's files, needs write permission, and can take minutes for global installs; the resolved version may change. Parameter semantics: `component` must be an id from describe_workbench; `workspace` defaults to `~/opencode-workbench`; `dryRun` previews; `confirm` defaults to false — set `confirm:true` to apply. For the whole profile use apply_clone.
Paramètres, retour & exemple (5)
ParamètresdryRun· boolean · optionnel
Report the action without changing anything.target· object · requis
The machine to operate on: this host (local) or a remote host over SSH (ssh).confirm· boolean · optionnel
Set true to actually update. When absent, the call returns a preview and makes no changes.component· string · requis
Component id from describe_workbench.workspace· string · optionnel
Profile repo directory (used by components whose update needs it).
Exemple d'appel{"name": "update_component", "arguments": {"target": {}, "component": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": "texte", "code": 1, "action": "removed", "output": "texte", "target": "texte", "requiresConfirmation": true}} - verify_clone≈ 765 tokens
Re-check a target after a clone: return a per-component `present`/`missing` list plus whether `opencode.json` and `~/.env.workbench` exist. Read-only and idempotent: it runs a detection probe (SSH or local) and checks files, writing nothing. `target` selects the machine (`local` or SSH) and its `home` is where the `opencode.json` and `~/.env.workbench` checks run; `components` restricts the check to those ids (omit it to check every component, the default); `workspace` sets the profile path used by component checks. Use it after apply_clone and after component changes; for a pre-clone preview use plan_clone.
Paramètres, retour & exemple (6)
ParamètresdryRun· boolean · optionnel
Report only; make no changes.target· object · requis
The machine to operate on: this host (local) or a remote host over SSH (ssh).skipRepo· boolean · optionnel
Do not clone/update the profile repo on the target.workspace· string · optionnel
Target directory for the profile repo.components· array · optionnel
Component ids to include; defaults to required+core.profileUrl· string · optionnel
Override profile git URL.
Exemple d'appel{"name": "verify_clone", "arguments": {"target": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"target": "texte", "missing": [], "envExists": true, "components": [], "configExists": true}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».