# Choosing tools

Often you don't want your agent to have every tool. For instance, your support agent needs to read issues, not search all your code.

## Offer only some tools

`tools` names the tools to offer, or a pattern such as `get_*`:

```yaml title="agents/support/agent.yaml"
name: support
mode: text
llm: llm-fast
connectors:
  - name: github
    connection: company
    tools: [list_issues, get_*] # list_issues, and every tool whose name starts with get_
```

```sh
getstream agents test support --sync
```

Ask: "What are the open issues in GetStream/awesome-ai-news?". The agent reads them with `github__list_issues`.

Leave `tools` out to offer every tool the provider lists.

## Give a connector another name

The model sees each tool as `<name>__<tool>`. Set `connector` when that name should differ from the connector id:

```yaml
connectors:
  - name: code # the model sees code__list_issues
    connector: github
    connection: company
```

## Require a connector

By default a connector is optional: when its connection is missing or not connected, the session goes on without its tools. `required: true` refuses to open the session instead:

```yaml
connectors:
  - name: github
    connection: company
    required: true
```

A test with a connection that is not connected yet stops before the conversation:

```text
Error: cannot start a conversation with support: session: required connector "github" cannot be used: not_connected: the connection is not connected
```

## Going further

- [Connectors](https://getstream.io/agents/docs/dotnet-csharp/connectors/): Whose account, the catalog, and the keys of a connector entry.
- [Shared account](https://getstream.io/agents/docs/dotnet-csharp/connectors/shared-account/): One account the app owns, for every conversation.
- [Custom connectors](https://getstream.io/agents/docs/dotnet-csharp/connectors/mcp/): Any MCP server: public, behind a key, or with a sign-in.
- [Tool calling & dispatch](https://getstream.io/agents/docs/dotnet-csharp/tool-calling-and-dispatch/): Your own functions, run in your process.
- [Troubleshooting](https://getstream.io/agents/docs/dotnet-csharp/connectors/troubleshooting/): Errors you may see, why, and what to do.

---

For the most recent version of this documentation, visit [https://getstream.io/agents/docs/dotnet-csharp/connectors/choosing-tools/](https://getstream.io/agents/docs/dotnet-csharp/connectors/choosing-tools/).