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

# ElicitFormMapper

> Projects a Core [EdmElicitForm](/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Models/EdmElicitForm) onto SDK `ElicitRequestParams`.

## Definition

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

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

**Inheritance:** System.Object

## Syntax

```csharp theme={"dark"}
Microsoft.OData.Mcp.Core.Catalog.ElicitFormMapper
```

## Summary

Projects a Core [EdmElicitForm](https://si.nimbleapps.cloud/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Models/EdmElicitForm.md) onto SDK `ElicitRequestParams`.

## Remarks

Tools uses this mapper so remote `$metadata` can elicit without a McpEssentials
package reference. Field mapping matches McpEssentials `ElicitationField.ToSchema`.

## Methods

### &#x20;ToRequestParams

Builds an MCP form elicitation request from a catalog snapshot.

#### Syntax

```csharp theme={"dark"}
public static ModelContextProtocol.Protocol.ElicitRequestParams ToRequestParams(Microsoft.OData.Mcp.Core.Models.EdmElicitForm form)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `form` | `Microsoft.OData.Mcp.Core.Models.EdmElicitForm` | The compact form from CSDL. |

#### Returns

Type: `ModelContextProtocol.Protocol.ElicitRequestParams`
The SDK request params with `mode: form`.

#### Exceptions

| Exception | Description |
| - | - |
| `ArgumentNullException` | Thrown when *form* is [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null). |
| `InvalidOperationException` | Thrown when the form message is empty or a field is invalid. |


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