# IHostedToolSupport

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.ihostedtoolsupport/
> Summary: IHostedToolSupport: An optional interface of an IModelProvider that states which HostedToolKind values its API surface runs.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Abstractions.dll</code></div>

An optional interface of an [IModelProvider](/api/tracon.imodelprovider/) that states which
[HostedToolKind](/api/tracon.hostedtoolkind/) values its API surface runs.

```csharp
public interface IHostedToolSupport
```

## Remarks

The model adapters map only some hosted tools to the wire and drop the rest without an
error: on the Chat Completions surface a code interpreter tool is sent nowhere and the model
answers as if it had none. A provider states what its surface runs, so a definition that
selects an unsupported kind stops with an error instead of running without the tool.

The support belongs to the API surface, not to the model: `openai` and
`openai-responses` reach the same models, and only the Responses API runs a code
interpreter. A provider registered under several names states each name's own support.

A provider that does not implement this interface supports no kind. The primary provider and
every [ModelBinding.Fallbacks](/api/tracon.modelbinding/#Tracon_ModelBinding_Fallbacks) link are checked, because a link receives the
primary call's tools. A kind in the set is not a promise: a model can still reject a tool the
surface sends, and that rejection is the provider's own error.

**Lifetime and threading**

The registry reads the property from the provider's **singleton** instance whenever
it lists providers, which the compile path and the validation path do, so it may be read
concurrently. Return a value that does not change after construction.

**Tenant mode**

The answer is **tenant-independent**: it describes the API surface, so every tenant
gets the same one, including a tenant that brings its own credential.

**Delivery**

A read of a value, with no side effect: no delivery guarantee applies.

## Properties

### <a id="Tracon_IHostedToolSupport_SupportedHostedTools"></a> SupportedHostedTools

Gets the hosted tool kinds this provider's API surface runs. Report a kind only when the
wire request carries the tool.

```csharp
HostedToolKinds SupportedHostedTools { get; }
```

#### Property Value

 [HostedToolKinds](/api/tracon.hostedtoolkinds/)
