# kindgi tools

> Manage tool registrations and which version new agent and flow versions lock

## `kindgi tools`

**Synopsis**

```sh signature
kindgi tools <command>
```

Manage tool registrations and which version new agent and flow versions lock.

**Commands**

| Command                                                                                                              | Description                                                                                                                                                                                                 |
| -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`kindgi tools list`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-list)                       | List registered tools.                                                                                                                                                                                      |
| [`kindgi tools get`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-get)                         | Fetch the latest active version of a tool.                                                                                                                                                                  |
| [`kindgi tools publish`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-publish)                 | Register a tool manifest at its version: the tool minus its handler, which the runtime must already have.                                                                                                   |
| [`kindgi tools unregister`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-unregister)           | Unregister a specific tool version (semver); `kindgi tools reinstate` brings it back.                                                                                                                       |
| [`kindgi tools versions`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-versions)               | List published versions of a tool (active, and optionally unregistered).                                                                                                                                    |
| [`kindgi tools get-version`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-get-version)         | Fetch a specific tool version by exact semver.                                                                                                                                                              |
| [`kindgi tools reinstate`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-reinstate)             | Bring back an unregistered tool version (semver).                                                                                                                                                           |
| [`kindgi tools pinned`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-pinned)                   | Show the version of this tool that the next flow version made in a project (or an org, or with neither the tenant) would lock, and why: a pinned version (with its scope) or the latest.                    |
| [`kindgi tools pinned-versions`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-pinned-versions) | List every scope with a version of this tool pinned.                                                                                                                                                        |
| [`kindgi tools pin`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-pin)                         | Pin a version of this tool for a scope, or move the scope's pin to it: the flow versions made there next lock it, and the agent versions too when their range allows it; versions already made keep theirs. |
| [`kindgi tools unpin`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-unpin)                     | Remove a scope's own pin of this tool: the agent and flow versions made there next lock the next scope up's pin, or the latest when nothing is pinned.                                                      |
| [`kindgi tools pin-history`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-pin-history)         | The history of what was pinned or unpinned.                                                                                                                                                                 |

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)

### `kindgi tools list`

**Synopsis**

```sh signature
kindgi tools list [--name=<prefix>] [--include-retired] [--limit=<n>] [--cursor=<c>]
```

List registered tools.

**Options**

| Option              | Default              | Description                                                                                            |
| ------------------- | -------------------- | ------------------------------------------------------------------------------------------------------ |
| `--cursor <value>`  | none                 | Resume after this cursor, from the previous page's `nextCursor`.                                       |
| `--include-retired` | off                  | Include retired tools (every version unregistered), each as its highest version with `unregisteredAt`. |
| `--limit <value>`   | `25` (at most `100`) | The most tools to return (default 25, at most 100).                                                    |
| `--name <value>`    | none                 | Only the tools whose id starts with this prefix.                                                       |

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

From [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md):

```sh
npx --yes @kindgi/cli@0.2 tools list --url "$URL"   # your pack's tools
```

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools get`

**Synopsis**

```sh signature
kindgi tools get <tool-id>
```

Fetch the latest active version of a tool.

**Options**

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

From [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md):

```sh
pnpm exec kindgi tools get inventory.stock_level
```

**See also**

- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools publish`

**Synopsis**

```sh signature
kindgi tools publish --manifest=<json-or-@file> [--project=<project-id>]
```

Register a tool manifest at its version: the tool minus its handler, which the runtime must already have. In the default project, an id that's an MCP endpoint's tool is refused (`tool-kind-mismatch`).

**Options**

| Option               | Default                      | Description                                                                         |
| -------------------- | ---------------------------- | ----------------------------------------------------------------------------------- |
| `--manifest <value>` | required                     | The tool manifest as JSON, or `@<file>` to read it from a file. Required.           |
| `--project <value>`  | the tenant's default project | The project to register the tool in, by id (default: the tenant's default project). |

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

Register a tool from a manifest file in the default project.

```sh
kindgi tools publish --manifest=@tools/acme.stock-level.json
```

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools unregister`

**Synopsis**

```sh signature
kindgi tools unregister <tool-id> <version>
```

Unregister a specific tool version (semver); `kindgi tools reinstate` brings it back.

**Options**

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

Unregister one version of a tool.

```sh
kindgi tools unregister acme.stock-level 0.1.0
```

From [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md):

```sh
pnpm exec kindgi tools unregister inventory.stock_level 1.0.0
```

From [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md):

```sh
pnpm exec kindgi tools unregister <tool-id> <old version>
```

**See also**

- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools versions`

**Synopsis**

```sh signature
kindgi tools versions <tool-id> [--include-unregistered] [--limit=<n>] [--cursor=<c>]
```

List published versions of a tool (active, and optionally unregistered).

**Options**

| Option                   | Default              | Description                                                        |
| ------------------------ | -------------------- | ------------------------------------------------------------------ |
| `--cursor <value>`       | none                 | Resume after this cursor, from the previous page's `nextCursor`.   |
| `--include-unregistered` | off                  | Include unregistered versions too, each with its `unregisteredAt`. |
| `--limit <value>`        | `25` (at most `100`) | The most versions to return (default 25, at most 100).             |

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

List a tool's versions, unregistered ones too.

```sh
kindgi tools versions acme.stock-level --include-unregistered
```

From [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md):

```sh
pnpm exec kindgi tools versions inventory.stock_level
```

**See also**

- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools get-version`

**Synopsis**

```sh signature
kindgi tools get-version <tool-id> <version>
```

Fetch a specific tool version by exact semver.

**Options**

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

Fetch one exact version of a tool.

```sh
kindgi tools get-version acme.stock-level 0.1.0
```

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools reinstate`

**Synopsis**

```sh signature
kindgi tools reinstate <tool-id> <version>
```

Bring back an unregistered tool version (semver). Refused (`tool-kind-mismatch`) while the id's active versions are the other kind, an MCP endpoint's tool or a published one; the version stays unregistered.

**Options**

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

Bring back an unregistered tool version.

```sh
kindgi tools reinstate acme.stock-level 0.1.0
```

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools pinned`

**Synopsis**

```sh signature
kindgi tools pinned <tool-id> [--project=<project-id> | --org=<org-id>]
```

Show the version of this tool that the next flow version made in a project (or an org, or with neither the tenant) would lock, and why: a pinned version (with its scope) or the latest. An agent version locks a pinned version only when its range allows it.

**Options**

| Option              | Default | Description                                                   |
| ------------------- | ------- | ------------------------------------------------------------- |
| `--org <value>`     | none    | An org, by id: its pin, else the tenant's.                    |
| `--project <value>` | none    | A project, by id: its pin, else its org's, else the tenant's. |

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

Show the version of the tool that the next flow version made in a project would lock, and why.

```sh
kindgi tools pinned acme.stock-level --project=<project-id>
```

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools pinned-versions`

**Synopsis**

```sh signature
kindgi tools pinned-versions <tool-id>
```

List every scope with a version of this tool pinned.

**Options**

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

List every scope with a pinned version of the tool.

```sh
kindgi tools pinned-versions acme.stock-level
```

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools pin`

**Synopsis**

```sh signature
kindgi tools pin <tool-id> <version> (--tenant | --org=<org-id> | --project=<project-id>) [--reason=<text>]
```

Pin a version of this tool for a scope, or move the scope's pin to it: the flow versions made there next lock it, and the agent versions too when their range allows it; versions already made keep theirs. Pinning the version already pinned there changes nothing. Refused: a catalog tool or one the runtime ships (`400 tool-not-pinnable`: reference it with a range); a project that's a later environment of an order (`409 environment-takes-promotions`: pin it in the order's first environment); a tenant- or org-wide pin of a tool in an environment order (`409 pin-scope-spans-environments`).

**Options**

| Option                      | Default                                           | Description                                                |
| --------------------------- | ------------------------------------------------- | ---------------------------------------------------------- |
| `--idempotency-key <value>` | none                                              | A retry with the same key returns the first call's result. |
| `--org <value>`             | required: one of `--tenant`, `--org`, `--project` | An org, by id.                                             |
| `--project <value>`         | required: one of `--tenant`, `--org`, `--project` | A project, by id.                                          |
| `--reason <value>`          | none                                              | Why, kept on the record.                                   |
| `--tenant`                  | required: one of `--tenant`, `--org`, `--project` | The whole tenant.                                          |

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

Pin a version of the tool in a project, before publishing a new one to try.

```sh
kindgi tools pin acme.stock-level 0.1.0 --project=<project-id> --reason='Keep 0.1.0 while 0.2.0 is tried'
```

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools unpin`

**Synopsis**

```sh signature
kindgi tools unpin <tool-id> (--tenant | --org=<org-id> | --project=<project-id>) [--reason=<text>]
```

Remove a scope's own pin of this tool: the agent and flow versions made there next lock the next scope up's pin, or the latest when nothing is pinned.

**Options**

| Option                      | Default                                           | Description                                                |
| --------------------------- | ------------------------------------------------- | ---------------------------------------------------------- |
| `--idempotency-key <value>` | none                                              | A retry with the same key returns the first call's result. |
| `--org <value>`             | required: one of `--tenant`, `--org`, `--project` | An org, by id.                                             |
| `--project <value>`         | required: one of `--tenant`, `--org`, `--project` | A project, by id.                                          |
| `--reason <value>`          | none                                              | Why, kept on the record.                                   |
| `--tenant`                  | required: one of `--tenant`, `--org`, `--project` | The whole tenant.                                          |

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

Remove a project's own pin of the tool.

```sh
kindgi tools unpin acme.stock-level --project=<project-id>
```

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

### `kindgi tools pin-history`

**Synopsis**

```sh signature
kindgi tools pin-history <command>
```

The history of what was pinned or unpinned.

**Commands**

| Command                                                                                                                | Description                                                      |
| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| [`kindgi tools pin-history list`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-pin-history-list) | List this tool's pin history, newest first: every pin and unpin. |

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools)

#### `kindgi tools pin-history list`

**Synopsis**

```sh signature
kindgi tools pin-history list <tool-id> [--limit=<n>] [--cursor=<c>]
```

List this tool's pin history, newest first: every pin and unpin.

**Options**

| Option             | Default              | Description                                                      |
| ------------------ | -------------------- | ---------------------------------------------------------------- |
| `--cursor <value>` | none                 | Resume after this cursor, from the previous page's `nextCursor`. |
| `--limit <value>`  | `25` (at most `100`) | The most to return (default 25, at most 100).                    |

Every command also takes the [global flags](https://docs.kindgi.com/v0.4.0/reference/cli.md#global-flags).

**Examples**

List the tool's pins and unpins, newest first.

```sh
kindgi tools pin-history list acme.stock-level --limit=10
```

**See also**

- [Deploy on Azure Container Apps](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/azure-container-apps.md)
- [Deploy on Google Cloud Run](https://docs.kindgi.com/v0.4.0/deploy/self-hosted/cloud-run.md)
- [Use an MCP server's tools](https://docs.kindgi.com/v0.4.0/guides/tools/mcp-servers.md)
- [Deploy your agent to Kindgi Cloud](https://docs.kindgi.com/v0.4.0/hosted/deploy-your-agent.md)
- [`kindgi tools pin-history`](https://docs.kindgi.com/v0.4.0/reference/cli/tools.md#kindgi-tools-pin-history)
