> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rkat.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Prepare a package outside the library

> Prepare Python, Node and MCP packages for reviewed installation.

Connect's setup agent can research and prepare a package outside the built-in library. For ordinary use, start with the [CLI quickstart](/connect/quickstart). This page describes the package inputs and setup tools for application authors.

## Setup tools

| Tool | Purpose |
| - | - |
| `setup_acquire_python` | Acquire an exact Python distribution and its dependency closure |
| `setup_acquire_node` | Acquire an exact Node package and dependency closure |
| `setup_inspect_acquired` | Read selected archive files without executing package code |
| `setup_selected_check` | Validate package and activation inputs and return a proposal |
| `setup_selected_install` | Install the exact reviewed proposal by ID and digest |

The host selects trusted runtimes, permitted acquisition profiles and resource locations. The agent selects the integration, version, entrypoint and operations.

## Describe the package

Prepare an `IntegrationPackage` in `package.json` and an `ActivationManifest` in `activation.json`. Obtain the canonical package digest with:

```sh theme={null}
/absolute/toolkit-package-inspect integration-package < package.json
```

Use `summary.package_content_digest` in the activation manifest. It identifies the canonical package content; raw file hashes identify the input files.

## Input layouts

<Tabs>
  <Tab title="Python">
    ```text theme={null}
    package.json
    activation.json
    artifact.whl
    closure/requirements
    closure/dependency-1.0-py3-none-any.whl
    ```

    Retain the original server wheel and a complete dependency closure with exact versions and hashes. The manifest selects the module entrypoint and literal arguments. The installer verifies wheel ownership and installed files, then uses ordinary offline pip.
  </Tab>

  <Tab title="Node">
    ```text theme={null}
    package.json
    activation.json
    artifact.tgz
    closure/package-json
    closure/package-lock
    closure/archive-ID
    ```

    The npm project uses `private: true` and a dependency on `file:./artifact.tgz`. Retain the version-3 lock and every selected dependency archive. The manifest identifies a JavaScript entrypoint in the primary package. Installation uses the retained closure with offline npm.
  </Tab>

  <Tab title="MCPB">
    ```text theme={null}
    package.json
    activation.json
    configuration.json
    artifact.mcpb
    ```

    The self-contained Node MCPB profile binds the package, activation and nonsecret configuration hashes. The artifact preparer validates the archive and expands its selected configuration.
  </Tab>
</Tabs>

Exact package schemas and installer contracts are in `crates/toolkit-package/PYTHON-INSTALL.md`, `NODE-INSTALL.md` and `sdk/consumer-setup/SELECTED.md` in the source distribution.

## Validate and install

Call `setup_selected_check` with the prepared inputs. Review its proposal, then pass the returned proposal ID and digest to `setup_selected_install`. Installation uses a new destination and retains the selected input hashes and resulting launch configuration.

The host then supplies account credentials, approves operation access and attaches the emitted connection through the [native MCP owner](/connect/guides/native-mcp).

## Inspect the installed server

Discover the server's tools and schemas through the selected MCP connection. Choose the operations needed for the task, apply the host's access policy and invoke them through the intended agent.

For an update, prepare the new selection in a separate directory, switch the consumer and retire the old process. Keep the original selection available for recovery.

## Reuse a selection

Save the exact package, activation and source observations as a local recipe. Future setup can read that recipe and apply current configuration and access decisions. See [local recipes](/connect/sdks/rust#retain-local-recipes).

## Container-backed selections

A host can expose `setup_acquire_compose` to acquire an exact container graph and immutable images from allowed registries. It produces a proposal for the host's Compose execution path. See [deployment and activation](/connect/reference/deployment#local-compose-backend) for lifecycle management.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.