Skip to main content Skip to page footer

Local stdio transport

In addition to the HTTP endpoint, there is a second way to connect a client, namely the console command ai-suite-mcp:server. It provides the same tools but communicates via JSON-RPC over stdin and stdout instead of HTTP. This is intended for local, trusted CLI clients on the same machine, such as Claude Desktop or Claude Code, if you prefer to start a command rather than set up an OAuth connector.

Neither a token nor OAuth nor an accessible URL is required for this. The client starts the command itself and communicates with it through the pipe.

Start MCP server via stdio

vendor/bin/typo3 ai-suite-mcp:server --user=[uid-or-username]

Optional parameters

Two parameters are optional. --scopes="mcp:read mcp:write" limits the scopes; by default, all scopes that the backend user is authorized for apply. --workspace=[uid] sets the target workspace; by default, it is resolved from mcpWriteMode.

Client configuration

You do not need a wrapper script; command and args handle everything directly. Note that GUI clients like Claude Desktop start the command from their own working directory and with a minimal PATH. Therefore, use absolute paths.

Composer installation, directly accessible TYPO3.

{  "mcpServers": {    "typo3-ai-suite": {      "command": "/bin/bash",      "args": ["-c", "cd '[project-root]' && exec ./vendor/bin/typo3 ai-suite-mcp:server --user=1"]    }  }}

The project root is the directory containing the composer.json. The bin directory is by default located at vendor/bin/ and may differ via config.bin-dir.

DDEV installation. The typo3 binary is located in the web container, so the call must run via ddev exec. Two things can cause a simple call to fail, both of which are resolved by the line itself. First, change to the project directory because DDEV determines its project from the working directory, and use the absolute path to ddev (determine via which ddev, e.g., /opt/homebrew/bin/ddev).

{  "mcpServers": {    "typo3-ai-suite": {      "command": "/bin/bash",      "args": ["-c", "cd '[project-root]' && exec '[ddev-path]' exec ./Build/bin/typo3 ai-suite-mcp:server --user=1"]    }  }}

The exec replaces the shell with ddev, so the pipe is passed through unchanged. Docker Desktop or OrbStack must be running, and ddev start must have been executed once. A variant with docker exec -i ddev-[project]-web also works. The -i switch is mandatory; -t must never be included, as a TTY destroys the framing of the JSON-RPC messages.