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

# QueryToolGenerator

> Generates query 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.QueryToolGenerator
```

## Summary

Generates query MCP tools from OData entity types.

## Remarks

This generator creates MCP tools that allow AI models to perform advanced querying
operations on OData entities, including filtering, sorting, projection, and expansion.
It supports all standard OData query options like $filter, $orderby, $select, $expand,
$top, $skip, and \$search.

## Constructors

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

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

#### Syntax

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

#### Parameters

| Name     | Type                                                                                                  | Description          |
| -------- | ----------------------------------------------------------------------------------------------------- | -------------------- |
| `logger` | `Microsoft.Extensions.Logging.ILogger<Microsoft.OData.Mcp.Core.Legacy.Generators.QueryToolGenerator>` | 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' }} />  GenerateAllQueryToolsAsync

Generates all query 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>> GenerateAllQueryToolsAsync(Microsoft.OData.Mcp.Core.Models.EdmEntitySet entitySet, Microsoft.OData.Mcp.Core.Models.EdmEntityType entityType, Microsoft.OData.Mcp.Core.Legacy.Generators.QueryToolGenerationOptions 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.QueryToolGenerationOptions` | 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 query operations.

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

Generates a count tool for getting entity counts with optional filtering.

#### Syntax

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

#### Parameters

| Name                | Type                                                                    | Description                                   |
| ------------------- | ----------------------------------------------------------------------- | --------------------------------------------- |
| `entitySet`         | `Microsoft.OData.Mcp.Core.Models.EdmEntitySet`                          | The entity set to count.                      |
| `entityType`        | `Microsoft.OData.Mcp.Core.Models.EdmEntityType`                         | The entity type definition.                   |
| `options`           | `Microsoft.OData.Mcp.Core.Legacy.Generators.QueryToolGenerationOptions` | 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 count MCP tool for the entity type.

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

Generates a query tool for listing entities with filtering and sorting.

#### Syntax

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

#### Parameters

| Name                | Type                                                                    | Description                                   |
| ------------------- | ----------------------------------------------------------------------- | --------------------------------------------- |
| `entitySet`         | `Microsoft.OData.Mcp.Core.Models.EdmEntitySet`                          | The entity set to query.                      |
| `entityType`        | `Microsoft.OData.Mcp.Core.Models.EdmEntityType`                         | The entity type definition.                   |
| `options`           | `Microsoft.OData.Mcp.Core.Legacy.Generators.QueryToolGenerationOptions` | 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 query MCP tool for the entity type.

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

Generates a search tool for full-text search across entity properties.

#### Syntax

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

#### Parameters

| Name                | Type                                                                    | Description                                   |
| ------------------- | ----------------------------------------------------------------------- | --------------------------------------------- |
| `entitySet`         | `Microsoft.OData.Mcp.Core.Models.EdmEntitySet`                          | The entity set to search.                     |
| `entityType`        | `Microsoft.OData.Mcp.Core.Models.EdmEntityType`                         | The entity type definition.                   |
| `options`           | `Microsoft.OData.Mcp.Core.Legacy.Generators.QueryToolGenerationOptions` | 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 search 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?`
