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

# ODataMcpCatalogOptions

> Options that control how an [ODataMcpCatalog](/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Catalog/ODataMcpCatalog) is built from an EDM.

## Definition

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

**Namespace:** Microsoft.OData.Mcp.Core.Catalog

**Inheritance:** System.Object

## Syntax

```csharp theme={null}
Microsoft.OData.Mcp.Core.Catalog.ODataMcpCatalogOptions
```

## Summary

Options that control how an [ODataMcpCatalog](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Catalog/ODataMcpCatalog.md) is built from an EDM.

## Constructors

### &#x20;.ctor

#### Syntax

```csharp theme={null}
public ODataMcpCatalogOptions()
```

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public Object()
```

## Properties

### &#x20;EnforceRequiredOnCreate

Gets or sets a value indicating whether create calls fail before HTTP when a required-on-create property is missing.

#### Syntax

```csharp theme={null}
public bool EnforceRequiredOnCreate { get; set; }
```

#### Property Value

Type: `bool`

#### Remarks

Defaults to `true`: the declared metadata is the contract. Turn it off only for a service whose metadata
declares properties non-nullable that its POST handler actually rejects or defaults (live TripPin does this
with `Gender`). JSON kind, unknown property, enum, and `MaxLength` checks stay on regardless.

### &#x20;EnumJsonFormat

Gets or sets how enumeration values are advertised in JSON Schema and accepted on input.

#### Syntax

```csharp theme={null}
public Microsoft.OData.Mcp.Core.Catalog.ODataEnumJsonFormat EnumJsonFormat { get; set; }
```

#### Property Value

Type: `Microsoft.OData.Mcp.Core.Catalog.ODataEnumJsonFormat`

#### Remarks

Defaults to [ODataEnumJsonFormat.Auto](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Catalog/ODataEnumJsonFormat.md#auto): member names are advertised and JSON numbers are
also accepted. The advertised schema never changes during a catalog's lifetime.

### &#x20;ExcludeEntitySets

Gets or sets entity set names to exclude from named tools and resources.

#### Syntax

```csharp theme={null}
public System.Collections.Generic.List<string> ExcludeEntitySets { get; set; }
```

#### Property Value

Type: `System.Collections.Generic.List<string>`

### &#x20;IncludeActions

Gets or sets a value indicating whether named `action_*` tools are generated.

#### Syntax

```csharp theme={null}
public bool IncludeActions { get; set; }
```

#### Property Value

Type: `bool`

#### Remarks

Defaults to `true`. Turning it off omits named action tools; `odata_call` remains.

### &#x20;IncludeCreate

Gets or sets a value indicating whether create tools are generated.

#### Syntax

```csharp theme={null}
public bool IncludeCreate { get; set; }
```

#### Property Value

Type: `bool`

### &#x20;IncludeDelete

Gets or sets a value indicating whether delete tools are generated.

#### Syntax

```csharp theme={null}
public bool IncludeDelete { get; set; }
```

#### Property Value

Type: `bool`

### &#x20;IncludeEntitySets

Gets or sets entity set names that receive named tools first.

#### Syntax

```csharp theme={null}
public System.Collections.Generic.List<string> IncludeEntitySets { get; set; }
```

#### Property Value

Type: `System.Collections.Generic.List<string>`

### &#x20;IncludeFunctions

Gets or sets a value indicating whether named `function_*` tools are generated.

#### Syntax

```csharp theme={null}
public bool IncludeFunctions { get; set; }
```

#### Property Value

Type: `bool`

#### Remarks

Defaults to `true`. Turning it off omits named function tools; `odata_call` remains.

### &#x20;IncludeUpdate

Gets or sets a value indicating whether update tools are generated.

#### Syntax

```csharp theme={null}
public bool IncludeUpdate { get; set; }
```

#### Property Value

Type: `bool`

### &#x20;InstructionsPreface

Gets or sets service-specific guidance placed before the default MCP server instructions.

#### Syntax

```csharp theme={null}
public string InstructionsPreface { get; set; }
```

#### Property Value

Type: `string?`

#### Remarks

The default text in [ODataMcpInstructions.Default](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Catalog/ODataMcpInstructions.md#default) is always included; this only prepends.
See [String)](https://learn.microsoft.com/dotnet/api/microsoft.odata.mcp.core.catalog.odatamcpinstructions.compose\(system.string\)).

### &#x20;IsDynamicModel

Gets or sets a value indicating whether the EDM can change while the catalog is alive.

#### Syntax

```csharp theme={null}
public bool IsDynamicModel { get; set; }
```

#### Property Value

Type: `bool`

#### Remarks

When `false` (the default) type shapes are computed once at catalog construction and cached.
Set to `true` for models whose declared members change at runtime so shapes are rebuilt per request.

### &#x20;MaxCompletionValues

Gets or sets the maximum number of entity-set completion values returned for an empty prefix.

#### Syntax

```csharp theme={null}
public int MaxCompletionValues { get; set; }
```

#### Property Value

Type: `int`

### &#x20;MaxExpandLength

Gets or sets the maximum length of an `expand` argument.

#### Syntax

```csharp theme={null}
public int MaxExpandLength { get; set; }
```

#### Property Value

Type: `int`

### &#x20;MaxFilterLength

Gets or sets the maximum length of a `filter` argument.

#### Syntax

```csharp theme={null}
public int MaxFilterLength { get; set; }
```

#### Property Value

Type: `int`

### &#x20;MaxOperationWait

Gets or sets how long an annotated-action MCP task may wait for elicitation and the
host waiter. Used as the task TTL when the Started ticket has no `expiresIn`.

#### Syntax

```csharp theme={null}
public System.TimeSpan MaxOperationWait { get; set; }
```

#### Property Value

Type: `System.TimeSpan`

#### Remarks

Defaults to 10 minutes. `tasks/cancel` and this timeout cancel the waiter token.

### &#x20;MaxRequestBodyBytes

Gets or sets the maximum JSON body size in bytes for create, update, and operation calls.

#### Syntax

```csharp theme={null}
public int MaxRequestBodyBytes { get; set; }
```

#### Property Value

Type: `int`

### &#x20;MaxResources

Gets or sets the maximum number of catalog resources, including `$metadata`.

#### Syntax

```csharp theme={null}
public int MaxResources { get; set; }
```

#### Property Value

Type: `int`

### &#x20;MaxResponseBytes

Gets or sets the maximum response size in bytes before a tool result is rejected.

#### Syntax

```csharp theme={null}
public int MaxResponseBytes { get; set; }
```

#### Property Value

Type: `int`

### &#x20;MaxSelectLength

Gets or sets the maximum length of a `select` argument.

#### Syntax

```csharp theme={null}
public int MaxSelectLength { get; set; }
```

#### Property Value

Type: `int`

### &#x20;RouteName

Gets or sets the MCP resource route name (for example, "remote" or "odata").

#### Syntax

```csharp theme={null}
public string RouteName { get; set; }
```

#### Property Value

Type: `string`

### &#x20;ToolsPageSize

Gets or sets how many tools a full `tools/list` page returns.

#### Syntax

```csharp theme={null}
public int ToolsPageSize { get; set; }
```

#### Property Value

Type: `int`

#### Remarks

Defaults to 100. The final page may be shorter. Clients must not assume this size.
The value must be greater than zero. Set it before the catalog is built. A cursor issued
for one size is rejected if the size later changes, because each cursor is an offset on
that size.

## Methods

### &#x20;Equals Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

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

#### Parameters

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

#### Returns

Type: `bool`

### &#x20;Equals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

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

#### Parameters

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

#### Returns

Type: `bool`

### &#x20;GetHashCode Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

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

#### Returns

Type: `int`

### &#x20;GetType Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

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

#### Returns

Type: `System.Type`

### &#x20;MemberwiseClone Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

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

#### Returns

Type: `object`

### &#x20;ReferenceEquals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

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

#### Parameters

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

#### Returns

Type: `bool`

### &#x20;ToString Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

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

#### Returns

Type: `string?`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.