# FoundryToolResource

- Kind: `class`
- Package: [Aspire.Hosting.Foundry](/reference/api/csharp/aspire.hosting.foundry.md)
- Version: `13.4.0-preview.1.26281.18`
- Namespace: `Aspire.Hosting.Foundry`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/becb48e2d61099e35ae336d527d3875e928d6594/src/Aspire.Hosting.Foundry/ToolResources/FoundryToolResource.cs)
- Inherits: `Resource`
- Implements: [IFoundryTool](/reference/api/csharp/aspire.hosting.foundry/ifoundrytool.md)

Base class for Foundry tool resources that participate in the Aspire application model.

## Definition

```csharp
namespace Aspire.Hosting.Foundry;

public abstract class FoundryToolResource
    : Aspire.Hosting.ApplicationModel.Resource,
      Aspire.Hosting.Foundry.IFoundryTool
{
    // ...
}
```

## ATS metadata

### ATS export

- Type ID: `Aspire.Hosting.Foundry/FoundryToolResource`

## Remarks

All Foundry tools are modeled as project-level resources, enabling dashboard visibility, reusability across agents, and consistent lifecycle management. Create tool instances using the `Add*Tool` extension methods on [AzureCognitiveServicesProjectResource](/reference/api/csharp/aspire.hosting.foundry/azurecognitiveservicesprojectresource.md).

## Properties

- [Project](/reference/api/csharp/aspire.hosting.foundry/foundrytoolresource/properties.md#project) : [AzureCognitiveServicesProjectResource](/reference/api/csharp/aspire.hosting.foundry/azurecognitiveservicesprojectresource.md) `get` -- Gets the parent Foundry project resource that this tool is associated with.

## Methods

- [ToAgentToolAsync(CancellationToken)](/reference/api/csharp/aspire.hosting.foundry/foundrytoolresource/methods.md#toagenttoolasync-cancellationtoken) : `Task<ResponseTool>` `abstract` -- Converts this tool definition into the SDK `Responses.ResponseTool` representation.
