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

# CrudToolGenerator

> Generates CRUD (Create, Read, Update, Delete) MCP tools from OData entity types.

export function DocsBadge({text, variant = 'neutral'}) {
  const variantClasses = {
    success: 'mint-bg-green-500/10 mint-text-green-600 dark:mint-text-green-400 mint-border-green-500/20',
    neutral: 'mint-bg-slate-500/10 mint-text-slate-600 dark:mint-text-slate-400 mint-border-slate-500/20',
    info: 'mint-bg-blue-500/10 mint-text-blue-600 dark:mint-text-blue-400 mint-border-blue-500/20',
    warning: 'mint-bg-amber-500/10 mint-text-amber-600 dark:mint-text-amber-400 mint-border-amber-500/20',
    danger: 'mint-bg-red-500/10 mint-text-red-600 dark:mint-text-red-400 mint-border-red-500/20'
  };
  const classes = variantClasses[variant] || variantClasses.neutral;
  return <span className={`mint-inline-flex mint-items-center mint-px-2 mint-py-0.5 mint-rounded-full mint-text-xs mint-font-medium mint-tracking-wide mint-border mint-ml-1.5 mint-align-middle mint-whitespace-nowrap ${classes}`}>
      {text}
    </span>;
}

## Definition

**Assembly:** Microsoft.OData.Mcp.Core.dll

**Namespace:** Microsoft.OData.Mcp.Core.Legacy.Generators

**Inheritance:** System.Object

## Syntax

```csharp theme={"dark"}
Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerator
```

## Summary

Generates CRUD (Create, Read, Update, Delete) MCP tools from OData entity types.

## Remarks

This generator creates MCP tools that allow AI models to perform basic data operations
on OData entities. It generates separate tools for each CRUD operation, with proper
validation, documentation, and parameter handling.

## Constructors

### <Icon icon="hammer" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  .ctor

Initializes a new instance of the [CrudToolGenerator](/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Legacy/Generators/CrudToolGenerator) class.

#### Syntax

```csharp theme={"dark"}
public CrudToolGenerator(Microsoft.Extensions.Logging.ILogger<Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerator> logger)
```

#### Parameters

| Name     | Type                                                                                                 | Description          |
| -------- | ---------------------------------------------------------------------------------------------------- | -------------------- |
| `logger` | `Microsoft.Extensions.Logging.ILogger<Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerator>` | The logger instance. |

### <Icon icon="hammer" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  .ctor <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public Object()
```

## Methods

### <Icon icon="code-fork" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  Equals <DocsBadge text="Inherited" variant="neutral" /> <DocsBadge text="Virtual" variant="warning" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public virtual bool Equals(object obj)
```

#### Parameters

| Name  | Type      | Description |
| ----- | --------- | ----------- |
| `obj` | `object?` | -           |

#### Returns

Type: `bool`

### <Icon icon="thumbtack" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  Equals <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public static bool Equals(object objA, object objB)
```

#### Parameters

| Name   | Type      | Description |
| ------ | --------- | ----------- |
| `objA` | `object?` | -           |
| `objB` | `object?` | -           |

#### Returns

Type: `bool`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GenerateAllCrudToolsAsync

Generates all CRUD tools for the specified entity set.

#### Syntax

```csharp theme={"dark"}
public System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Legacy.McpTool>> GenerateAllCrudToolsAsync(Microsoft.OData.Mcp.Core.Models.EdmEntitySet entitySet, Microsoft.OData.Mcp.Core.Models.EdmEntityType entityType, Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions options, System.Threading.CancellationToken cancellationToken = null)
```

#### Parameters

| Name                | Type                                                                   | Description                                   |
| ------------------- | ---------------------------------------------------------------------- | --------------------------------------------- |
| `entitySet`         | `Microsoft.OData.Mcp.Core.Models.EdmEntitySet`                         | The entity set to generate tools for.         |
| `entityType`        | `Microsoft.OData.Mcp.Core.Models.EdmEntityType`                        | The entity type definition.                   |
| `options`           | `Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions` | Options controlling tool generation behavior. |
| `cancellationToken` | `System.Threading.CancellationToken`                                   | Cancellation token for the operation.         |

#### Returns

Type: `System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Legacy.McpTool>>`
A collection of generated MCP tools for CRUD operations.

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GenerateCreateToolAsync

Generates a CREATE tool for the specified entity type.

#### Syntax

```csharp theme={"dark"}
public System.Threading.Tasks.Task<Microsoft.OData.Mcp.Core.Legacy.McpTool> GenerateCreateToolAsync(Microsoft.OData.Mcp.Core.Models.EdmEntitySet entitySet, Microsoft.OData.Mcp.Core.Models.EdmEntityType entityType, Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions options, System.Threading.CancellationToken cancellationToken = null)
```

#### Parameters

| Name                | Type                                                                   | Description                                   |
| ------------------- | ---------------------------------------------------------------------- | --------------------------------------------- |
| `entitySet`         | `Microsoft.OData.Mcp.Core.Models.EdmEntitySet`                         | The entity set to create entities in.         |
| `entityType`        | `Microsoft.OData.Mcp.Core.Models.EdmEntityType`                        | The entity type definition.                   |
| `options`           | `Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions` | Options controlling tool generation behavior. |
| `cancellationToken` | `System.Threading.CancellationToken`                                   | Cancellation token for the operation.         |

#### Returns

Type: `System.Threading.Tasks.Task<Microsoft.OData.Mcp.Core.Legacy.McpTool>`
A CREATE MCP tool for the entity type.

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GenerateDeleteToolAsync

Generates a DELETE tool for the specified entity type.

#### Syntax

```csharp theme={"dark"}
public System.Threading.Tasks.Task<Microsoft.OData.Mcp.Core.Legacy.McpTool> GenerateDeleteToolAsync(Microsoft.OData.Mcp.Core.Models.EdmEntitySet entitySet, Microsoft.OData.Mcp.Core.Models.EdmEntityType entityType, Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions options, System.Threading.CancellationToken cancellationToken = null)
```

#### Parameters

| Name                | Type                                                                   | Description                                   |
| ------------------- | ---------------------------------------------------------------------- | --------------------------------------------- |
| `entitySet`         | `Microsoft.OData.Mcp.Core.Models.EdmEntitySet`                         | The entity set containing entities to delete. |
| `entityType`        | `Microsoft.OData.Mcp.Core.Models.EdmEntityType`                        | The entity type definition.                   |
| `options`           | `Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions` | Options controlling tool generation behavior. |
| `cancellationToken` | `System.Threading.CancellationToken`                                   | Cancellation token for the operation.         |

#### Returns

Type: `System.Threading.Tasks.Task<Microsoft.OData.Mcp.Core.Legacy.McpTool>`
A DELETE MCP tool for the entity type.

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GenerateReadToolAsync

Generates a READ tool for the specified entity type.

#### Syntax

```csharp theme={"dark"}
public System.Threading.Tasks.Task<Microsoft.OData.Mcp.Core.Legacy.McpTool> GenerateReadToolAsync(Microsoft.OData.Mcp.Core.Models.EdmEntitySet entitySet, Microsoft.OData.Mcp.Core.Models.EdmEntityType entityType, Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions options, System.Threading.CancellationToken cancellationToken = null)
```

#### Parameters

| Name                | Type                                                                   | Description                                   |
| ------------------- | ---------------------------------------------------------------------- | --------------------------------------------- |
| `entitySet`         | `Microsoft.OData.Mcp.Core.Models.EdmEntitySet`                         | The entity set to read entities from.         |
| `entityType`        | `Microsoft.OData.Mcp.Core.Models.EdmEntityType`                        | The entity type definition.                   |
| `options`           | `Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions` | Options controlling tool generation behavior. |
| `cancellationToken` | `System.Threading.CancellationToken`                                   | Cancellation token for the operation.         |

#### Returns

Type: `System.Threading.Tasks.Task<Microsoft.OData.Mcp.Core.Legacy.McpTool>`
A READ MCP tool for the entity type.

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GenerateUpdateToolAsync

Generates an UPDATE tool for the specified entity type.

#### Syntax

```csharp theme={"dark"}
public System.Threading.Tasks.Task<Microsoft.OData.Mcp.Core.Legacy.McpTool> GenerateUpdateToolAsync(Microsoft.OData.Mcp.Core.Models.EdmEntitySet entitySet, Microsoft.OData.Mcp.Core.Models.EdmEntityType entityType, Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions options, System.Threading.CancellationToken cancellationToken = null)
```

#### Parameters

| Name                | Type                                                                   | Description                                   |
| ------------------- | ---------------------------------------------------------------------- | --------------------------------------------- |
| `entitySet`         | `Microsoft.OData.Mcp.Core.Models.EdmEntitySet`                         | The entity set containing entities to update. |
| `entityType`        | `Microsoft.OData.Mcp.Core.Models.EdmEntityType`                        | The entity type definition.                   |
| `options`           | `Microsoft.OData.Mcp.Core.Legacy.Generators.CrudToolGenerationOptions` | Options controlling tool generation behavior. |
| `cancellationToken` | `System.Threading.CancellationToken`                                   | Cancellation token for the operation.         |

#### Returns

Type: `System.Threading.Tasks.Task<Microsoft.OData.Mcp.Core.Legacy.McpTool>`
An UPDATE MCP tool for the entity type.

### <Icon icon="code-fork" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GetHashCode <DocsBadge text="Inherited" variant="neutral" /> <DocsBadge text="Virtual" variant="warning" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public virtual int GetHashCode()
```

#### Returns

Type: `int`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GetType <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public System.Type GetType()
```

#### Returns

Type: `System.Type`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  MemberwiseClone <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
protected internal object MemberwiseClone()
```

#### Returns

Type: `object`

### <Icon icon="thumbtack" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  ReferenceEquals <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public static bool ReferenceEquals(object objA, object objB)
```

#### Parameters

| Name   | Type      | Description |
| ------ | --------- | ----------- |
| `objA` | `object?` | -           |
| `objB` | `object?` | -           |

#### Returns

Type: `bool`

### <Icon icon="code-fork" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  ToString <DocsBadge text="Inherited" variant="neutral" /> <DocsBadge text="Virtual" variant="warning" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public virtual string ToString()
```

#### Returns

Type: `string?`
