Extension Manifest (extension.toml)
Relevant source files
The following files were used as context for generating this wiki page:
The extension.toml file serves as the primary configuration manifest for the Container Use MCP extension within the Zed editor ecosystem. It defines essential metadata such as the extension's unique identifier, versioning, and authorship, while also declaring the specific capabilities and context servers required for the extension to function.
This manifest acts as the entry point for Zed to understand how to interact with the extension's binary and what permissions or external processes it needs to execute, such as locating the cu binary on the host system.
Sources: extension.toml:1-12, README.md:1-5
Extension Metadata
The manifest defines the core identity of the extension. This metadata is used by the Zed extension registry and the editor's internal management system to track and display extension information.
| Field | Description | Value |
|---|---|---|
id | Unique identifier for the extension | mcp-server-container-use |
name | Human-readable name of the extension | Container Use MCP Server |
version | Semantic version of the extension | 0.0.1 |
schema_version | Version of the Zed extension schema | 1 |
authors | List of contributors | Agus Zubiaga, Danilo Leal |
repository | URL of the source code repository | `https://github.com/danilo-leal/zed-container-use-mcp%60 |
Sources: extension.toml:1-7
Capabilities and Process Execution
The extension requires specific permissions to interact with the host environment. The [[capabilities]] section explicitly defines the ability to execute external processes, which is critical for the extension's logic in discovering the necessary server binaries.
Executable Discovery Logic
The manifest grants the extension permission to run the which command. This is used by the Rust implementation to find the cu (Container Use) binary within the user's system PATH if a custom path is not provided in settings.
Context Server Configuration
The [context_servers.container-use-mcp] table registers the Model Context Protocol (MCP) server provided by this extension. This registration allows Zed to associate specific project settings and commands with this particular server instance.
Integration with Rust Logic
While extension.toml registers the server name, the actual command execution logic is handled by the Extension trait implementation in the Rust source. The server is configured to run using stdio as the communication channel.
Dependency Relationship
The manifest describes an extension that depends on external components defined in Cargo.toml and specified in the project's documentation. The extension is built as a cdylib to be loaded by Zed.
| Component | Source File | Purpose |
|---|---|---|
| Extension API | Cargo.toml | zed_extension_api v0.5.0 provides the SDK |
| Binary Dependency | README.md | Requires the cu binary from dagger/container-use |
| Configuration | src/container_use_mcp.rs | Uses installation_instructions.md for setup UI |
Sources: Cargo.toml:1-12, src/container_use_mcp.rs:88-92, README.md:7-12
Summary
The extension.toml file is the structural foundation of the Container Use MCP extension. It bridges the gap between the Zed editor's plugin system and the underlying Rust implementation. By defining the mcp-server-container-use ID and the process:exec capability, it enables the extension to dynamically locate and launch the cu binary, facilitating containerized tool execution for AI agents within the editor.