---
title: codespar_get_started
description: Read-only setup planner. Returns the ordered happy path for the authenticated workspace, covering which rails are already connected, what to connect next, and the first calls to try. Moves no money.
---

import { Callout } from "fumadocs-ui/components/callout";

<MetaToolHeader tool="codespar_get_started" />

Call it first when a user opens with "how do I start" or "what can you do". It saves the agent a discovery detour: instead of guessing at tool names, it gets the sequence that works for this workspace in this environment.

## Actions

<MetaToolActions tool="codespar_get_started" />

## Example

The tool takes no arguments: workspace, project and environment all derive from the API key on the session.

<Split min={380}>
<SplitPane label="Call · tools/call">

```json title="arguments"
{
  "name": "codespar_get_started",
  "arguments": {}
}
```

</SplitPane>
<SplitPane label="Result · test environment, as previously documented">

```json title="result"
{
  "environment": "test",
  "summary": "You're in the CodeSpar test environment: sandbox rails (Pix in/out, wallet) ship PRE-CONNECTED. No bank connection, CNPJ, or KYC is needed to run the full happy path end to end.",
  "happy_path": [
    {
      "step": 1,
      "title": "Shop for a product",
      "tool": "codespar_shop",
      "detail": "action=search to browse a store's live catalog, then action=checkout and poll action=checkout_status until ready_for_payment returns the payable Pix copia-e-cola."
    },
    {
      "step": 2,
      "title": "Fund / inspect the governed wallet",
      "tool": "codespar_wallet",
      "detail": "action=balance reads the spendable balance; action=receive mints a Pix copia-e-cola to top the wallet up if it needs funding."
    },
    {
      "step": 3,
      "title": "Pay under a signed mandate",
      "tool": "codespar_pay",
      "detail": "action=pay settles the store's Pix from the governed wallet with policy + mandate + routing."
    }
  ],
  "notes": [
    "Sandbox rails are pre-connected — do NOT steer the user to connect a bank or upload a certificate in test."
  ]
}
```

</SplitPane>
</Split>

The plan differs by environment. A `csk_test_*` key gets the sandbox-first path above, because the test environment ships every sandbox rail pre-connected. A `csk_live_*` key gets a path that starts with onboarding and connecting real rails, since live settlement needs a funding source before it can move money.

## When to use

- **The first turn of a setup conversation.** The result is a structured, ordered plan the agent can follow step by step, each step naming the tool to call and how.
- **Before deciding anything.** It is read-only, so it is safe to call on every fresh session.
- **Not for an open intent** ("buy a TV"): that is [`codespar_discover`](/docs/concepts/meta-tools/discover).

## Arguments

None. The published schema declares no properties. Any argument passed is ignored.

## Errors and what to do

| Error | Cause | What to do |
|---|---|---|
| The tool is the only one visible | The API key is missing or invalid: setup mode exposes exactly one tool, the no-key setup tool that mints a key, under this same name. | Mint or fix the key, then reconnect; the authenticated tool then hands back the happy path. |

## Money and mandate

Nothing moves, by construction. The tool returns text: it creates no payment, no charge, no connection and no wallet, and it takes no argument that could target a counterparty. Nothing it returns has a side effect until the agent calls one of the tools named in the plan, each under its own gates.

## Related

- [`codespar_discover`](/docs/concepts/meta-tools/discover): use it for an open intent once you are past setup
- [`codespar_manage_connections`](/docs/concepts/meta-tools/manage-connections): connect the rails the plan asks for
- [Test mode](/docs/concepts/test-mode): what the sandbox rails do and do not do

## Notes

**One name, two tools.** Exactly one `codespar_get_started` is ever visible. With no valid key the MCP server exposes its setup tool, which mints a key. Once a valid key is present the server exposes the backend meta-tools instead, and this one hands back the happy path. An agent with no usable key gets exactly one thing it can do, not a catalog it cannot call.

**Result shape (SDK), as previously documented.** `{ environment: "live" | "test", summary, happy_path: Array<{ step, title, tool, detail }>, notes: string[] }`, which is the shape of the example above. This revision did not re-run the call to confirm the wording of the current plan.
