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

# Operating Contract

> The session-start contract every MCP client should follow: ground, discover, then act.

This is the operating guide for an **AI client** (Claude, ChatGPT, or your own agent) connected to Concierca over [MCP](/for-agents/mcp). It teaches a fresh session how to behave: ground yourself, discover before you guess, and prefer safe writes. Read it once at the start of a connection and keep it in context.

<Note>
  Concierca is a **scoped company operating system**. Every call runs server-side as the user who owns the key, filtered to what that user may see and do. You never need to manage secrets or tenancy — the server does. Your job is to use the right tool for the intent and to stay inside the discovered surface.
</Note>

## Session-start sequence

Run these three calls, in order, before you act on anything:

<Steps>
  <Step title="whoami">
    Confirms **identity, role, and tenant**, and returns the authoritative tool surface: `registry_version` and `available_tool_schemas` — the exact tools your key may use this session.
  </Step>

  <Step title="get_context">
    Returns your **Operating Manual** — the always-load governance + knowledge block for this workspace. Optionally pass the user's task as `query` to get context scoped to what you're about to do. Over MCP this is **pull-only**: fetch it yourself, it is not pushed to you.
  </Step>

  <Step title="guardrails_get">
    Returns the **governance rules** to honor for this workspace (what is allowed, what needs a human). Also **pull-only over MCP**, so fetch it at session start rather than assuming defaults.
  </Step>
</Steps>

## Discover before guessing

Concierca resources are named by live, workspace-specific identifiers. **Never invent them.** If you need to reference any of the following, call its discovery tool first and use a value it returned:

| Don't invent                     | Discover with                                             |
| -------------------------------- | --------------------------------------------------------- |
| Table / view slugs, column names | `data_view_list`                                          |
| Department IDs                   | `department_list`                                         |
| Skill categories                 | `category_list`                                           |
| Agent IDs                        | `agent_list`                                              |
| Skill slugs                      | `skill_list`                                              |
| Tool-grant strings               | `grantable_list`                                          |
| Mission IDs                      | `mission_list`                                            |
| Vertical entity IDs / signals    | `vertical__vertical_legend`, `vertical__vertical_resolve` |
| Connected integrations           | `composio_connection_list`                                |

A guessed slug, column, ID, category, or grant string is the single most common cause of a failed or wrong call. When in doubt, list first.

## The compact contract

Keep this block in your working context for the session. It is the whole contract in one paragraph:

```text theme={null}
You are connected to Concierca, a scoped company operating system. At session
start call whoami, then get_context, then guardrails_get. Discover resources
before referencing them; never invent slugs/columns/IDs/categories/grants. Use
Data for exact records & numbers, Knowledge for durable truth, Memory for
episodic recall, Agent Runs for past executions, Skills for reusable capability,
Missions for orchestrated workflows, Vertical for market intelligence. Prefer
dry_run/preview for writes and verify after commit. Resolve human approvals only
when the human explicitly decides. If the server registry_version differs from
your loaded tools, report a registry/client mismatch and reconnect — never guess
a replacement tool name.
```

## Which surface for which need

A one-line map of the seven surfaces (each has its own routing detail in [What are you trying to do?](/for-agents/ai/routing)):

* **Data** — exact records & numbers (products, stock, orders, prices, customers).
* **Knowledge** — durable company truth (SOPs, strategy, policy, brand rules).
* **Memory** — episodic / contextual recall (past events, user-specific facts).
* **Agent Runs** — what an agent did before.
* **Skills** — reusable AI capability.
* **Missions** — orchestrated, multi-step workflows.
* **Vertical** — market & competitive intelligence.

## Registry & reconnect

`whoami.registry_version` and `whoami.available_tool_schemas` are **authoritative** for the tools you may call. If the server's `registry_version` differs from the tool set you loaded, your client is out of date:

1. Report a **registry/client mismatch** to the user rather than proceeding.
2. Reconnect to refresh the tool list. In ChatGPT the connector loads tools only at creation time, so **delete the connector and recreate it** — a re-login or reload will not refresh it.
3. **Never invent a replacement tool name** or guess at a renamed tool. If a tool you expect is absent, it is out of scope for this key or the registry moved — discover or reconnect, do not improvise.

<Warning>
  Guessing a tool name that is not in `available_tool_schemas` will fail and can mislead the user about what happened. Treat the schema list as the only source of truth for what you can call.
</Warning>

See [Connect via MCP](/for-agents/mcp) for endpoints and client setup, and [Conventions](/for-agents/conventions) for naming, common parameters, errors, and limits.
