Skip to main content
Glama
gbtweilai-star

Desktop Commander MCP

desktop_commander

One capability bit from GBT V8, packaged standalone. No. 293 of 341, tentacle domain (Tentacle).

桌面指挥官(Desktop Commander MCP):终端+文件系统全能力触手;支持本地 stdio 与 remote 设备模式

That description is copied verbatim from the registry. tests/test_spec.py pins it, so documentation drift fails the build instead of shipping quietly.

What this package actually is

It is the contract for one capability: its name, its parameters, the values it accepts, and whether it can change state that cannot be restored. It is not the implementation — that lives in the runtime this bit was extracted from.

So run() goes through a narrow Backend protocol, and the default backend is a stub that says so:

status="validated"   backend="stub"   data={"executed": false}

Never status="ok". A stub that reports success is worse than no stub, because the caller stops looking for the real thing.

Related MCP server: remotessh-mcp

Install

git clone https://github.com/gbtweilai-star/gbt-desktop-commander.git
cd gbt-desktop-commander
python -m pip install -e ".[dev]"

Use

python -m gbt_desktop_commander info                  # capability card
python -m gbt_desktop_commander spec --json           # machine-readable contract
python -m gbt_desktop_commander check --payload '{}'
python -m gbt_desktop_commander run   --payload '{}'

Real info output from this machine:

desktop_commander  (tentacle)  v1.0.0
----------------------------------------
桌面指挥官(Desktop Commander MCP):终端+文件系统全能力触手;支持本地 stdio 与 remote 设备模式

gated      : False
external   : False
multi-op   : False
params     : (none)

Wire a real implementation:

from gbt_desktop_commander import run

class MyBackend:
    name = "my-backend"
    def invoke(self, cap, payload):
        return {"cap": cap, "handled": sorted(payload)}

result = run({}, backend=MyBackend())
assert result.status == "ok"

Parameters

name

required

notes

—

no

the registry declares no required parameters

Registry hint (params_hint): (empty)

Types are deliberately absent: the registry does not declare them, and an invented type is worse than no type, because callers believe it.

Boundaries

  • Not gated: the registry marks this bit safe: true.

  • No external service dependency declared.

  • Single-action bit.

  • No implementation ships here. Bring a backend; the protocol is one method.

What this is not

Not a wrapper around a hosted API. Not a model. Not a promise that calling it does anything on its own. It is the typed seam plus the validation, which is the part that stays correct even when the implementation changes.

Tests

python -m pytest
20 passed, 3 skipped in 0.14s

Provenance

field

value

capability

desktop_commander

domain

tentacle

handler

desktop_commander

safe

True (gated = False)

external

False

atlas page

tentacle/desktop_commander

full index

https://github.com/gbtweilai-star/gbt-caps

The parent README says 348 capabilities; an AST pass over the registry enumerates 341 + 0 unimplemented + 0 disabled = 341. The extra 7 are historical duplicates. Numbering here follows 341 and matches the gbt-caps index one-to-one.

License

MIT.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides local command execution, remote SSH, interactive terminals, file read/write, and source search for AI CLI through stdio, with large output pagination and safety confirmations.
    5 npm
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents or human operators to spawn, monitor, drive, and hook into child terminal sessions—such as CLI tools, interactive shells, and polyglot runtimes—via POSIX pseudo-terminals, providing multiplexed control, event interception, and memory-bounded observability for orchestration.
    MIT