> ## 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.

# IMcpServerBuilder

> Extension methods for IMcpServerBuilder from ModelContextProtocol

## Definition

**Assembly:** ModelContextProtocol.dll

**Namespace:** Microsoft.Extensions.DependencyInjection

## Syntax

```csharp theme={null}
Microsoft.Extensions.DependencyInjection.IMcpServerBuilder
```

## Summary

This type is defined in ModelContextProtocol.

## Methods

### &#x20;WithAuthenticatedTasks Extension

> [!NOTE]
>
> Extension method from `Microsoft.Extensions.DependencyInjection.McpEssentials_Core_McpServerBuilderExtensions`

#### Syntax

```csharp theme={null}
public static Microsoft.Extensions.DependencyInjection.IMcpServerBuilder WithAuthenticatedTasks(Microsoft.Extensions.DependencyInjection.IMcpServerBuilder builder, string userId, System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions> configure = null, System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions> configureTasks = null)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `builder` | `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder` | - |
| `userId` | `string` | - |
| `configure` | `System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions>?` | - |
| `configureTasks` | `System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions>?` | - |

#### Returns

Type: `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder`

### &#x20;WithAuthenticatedTasks Extension

> [!NOTE]
>
> Extension method from `Microsoft.Extensions.DependencyInjection.McpEssentials_Core_McpServerBuilderExtensions`

#### Syntax

```csharp theme={null}
public static Microsoft.Extensions.DependencyInjection.IMcpServerBuilder WithAuthenticatedTasks(Microsoft.Extensions.DependencyInjection.IMcpServerBuilder builder, System.Func<string> getCurrentUserId, System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions> configure = null, System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions> configureTasks = null)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `builder` | `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder` | - |
| `getCurrentUserId` | `System.Func<string?>` | - |
| `configure` | `System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions>?` | - |
| `configureTasks` | `System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions>?` | - |

#### Returns

Type: `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder`

### &#x20;WithAuthenticatedTasks Extension

> [!NOTE]
>
> Extension method from `Microsoft.Extensions.DependencyInjection.McpEssentials_Core_McpServerBuilderExtensions`

#### Syntax

```csharp theme={null}
public static Microsoft.Extensions.DependencyInjection.IMcpServerBuilder WithAuthenticatedTasks(Microsoft.Extensions.DependencyInjection.IMcpServerBuilder builder, System.Func<System.Security.Claims.ClaimsPrincipal> getPrincipal, System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions> configure = null, System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions> configureTasks = null)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `builder` | `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder` | - |
| `getPrincipal` | `System.Func<System.Security.Claims.ClaimsPrincipal?>` | - |
| `configure` | `System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions>?` | - |
| `configureTasks` | `System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions>?` | - |

#### Returns

Type: `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder`

### &#x20;WithAuthenticatedTasks Extension

> [!NOTE]
>
> Extension method from `Microsoft.Extensions.DependencyInjection.McpEssentials_Core_McpServerBuilderExtensions`

#### Syntax

```csharp theme={null}
public static Microsoft.Extensions.DependencyInjection.IMcpServerBuilder WithAuthenticatedTasks(Microsoft.Extensions.DependencyInjection.IMcpServerBuilder builder, System.Func<System.IServiceProvider, System.Security.Claims.ClaimsPrincipal> getPrincipal, System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions> configure = null, System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions> configureTasks = null)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `builder` | `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder` | - |
| `getPrincipal` | `System.Func<System.IServiceProvider, System.Security.Claims.ClaimsPrincipal?>` | - |
| `configure` | `System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions>?` | - |
| `configureTasks` | `System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions>?` | - |

#### Returns

Type: `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder`

### &#x20;WithEntityFrameworkTasks Extension

> [!NOTE]
>
> Extension method from `Microsoft.Extensions.DependencyInjection.McpEssentials_EntityFrameworkCore_McpServerBuilderExtensions`

Enables MCP Tasks backed by `EntityFrameworkAuthenticatedTaskStore`1\` for a single user.

#### Syntax

```csharp theme={null}
public static Microsoft.Extensions.DependencyInjection.IMcpServerBuilder WithEntityFrameworkTasks<TContext>(Microsoft.Extensions.DependencyInjection.IMcpServerBuilder builder, string userId, System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions> configure = null, System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions> configureTasks = null) where TContext : Microsoft.EntityFrameworkCore.DbContext
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `builder` | `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder` | The MCP server builder. |
| `userId` | `string` | The owner stamped on every task this process creates. |
| `configure` | `System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions>?` | Optional store options (TTL, poll interval). |
| `configureTasks` | `System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions>?` | Optional SDK Tasks options (execution-mode selector, and so on). |

#### Returns

Type: `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder`
The server builder.

#### Type Parameters

* `TContext` - The host [DbContext](https://learn.microsoft.com/dotnet/api/microsoft.entityframeworkcore.dbcontext) that maps [McpTaskEntity](https://ai.easyaf.dev/mcpessentials/api-reference/CloudNimble/McpEssentials/EntityFrameworkCore/Tasks/McpTaskEntity.md).

#### Exceptions

| Exception | Description |
| - | - |
| `ArgumentNullException` | Thrown when *builder* is [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null). |
| `ArgumentException` | Thrown when *userId* is [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) or whitespace. |

### &#x20;WithEntityFrameworkTasks Extension

> [!NOTE]
>
> Extension method from `Microsoft.Extensions.DependencyInjection.McpEssentials_EntityFrameworkCore_McpServerBuilderExtensions`

Enables MCP Tasks backed by `EntityFrameworkAuthenticatedTaskStore`1\`.

#### Syntax

```csharp theme={null}
public static Microsoft.Extensions.DependencyInjection.IMcpServerBuilder WithEntityFrameworkTasks<TContext>(Microsoft.Extensions.DependencyInjection.IMcpServerBuilder builder, System.Func<string> getCurrentUserId, System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions> configure = null, System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions> configureTasks = null) where TContext : Microsoft.EntityFrameworkCore.DbContext
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `builder` | `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder` | The MCP server builder. |
| `getCurrentUserId` | `System.Func<string?>` | Returns the current user identifier, or [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) when unauthenticated. |
| `configure` | `System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions>?` | Optional store options (TTL, poll interval). |
| `configureTasks` | `System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions>?` | Optional SDK Tasks options (execution-mode selector, and so on). |

#### Returns

Type: `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder`
The server builder.

#### Type Parameters

* `TContext` - The host [DbContext](https://learn.microsoft.com/dotnet/api/microsoft.entityframeworkcore.dbcontext) that maps [McpTaskEntity](https://ai.easyaf.dev/mcpessentials/api-reference/CloudNimble/McpEssentials/EntityFrameworkCore/Tasks/McpTaskEntity.md).

#### Exceptions

| Exception | Description |
| - | - |
| `ArgumentNullException` | Thrown when *builder* or *getCurrentUserId* is [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null). |

### &#x20;WithEntityFrameworkTasks Extension

> [!NOTE]
>
> Extension method from `Microsoft.Extensions.DependencyInjection.McpEssentials_EntityFrameworkCore_McpServerBuilderExtensions`

Enables MCP Tasks backed by `EntityFrameworkAuthenticatedTaskStore`1\`,
resolving the user from a [ClaimsPrincipal](https://learn.microsoft.com/dotnet/api/system.security.claims.claimsprincipal).

#### Syntax

```csharp theme={null}
public static Microsoft.Extensions.DependencyInjection.IMcpServerBuilder WithEntityFrameworkTasks<TContext>(Microsoft.Extensions.DependencyInjection.IMcpServerBuilder builder, System.Func<System.Security.Claims.ClaimsPrincipal> getPrincipal, System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions> configure = null, System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions> configureTasks = null) where TContext : Microsoft.EntityFrameworkCore.DbContext
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `builder` | `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder` | The MCP server builder. |
| `getPrincipal` | `System.Func<System.Security.Claims.ClaimsPrincipal?>` | Returns the principal for the current request. |
| `configure` | `System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions>?` | Optional store options (TTL, poll interval). |
| `configureTasks` | `System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions>?` | Optional SDK Tasks options (execution-mode selector, and so on). |

#### Returns

Type: `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder`
The server builder.

#### Type Parameters

* `TContext` - The host [DbContext](https://learn.microsoft.com/dotnet/api/microsoft.entityframeworkcore.dbcontext) that maps [McpTaskEntity](https://ai.easyaf.dev/mcpessentials/api-reference/CloudNimble/McpEssentials/EntityFrameworkCore/Tasks/McpTaskEntity.md).

#### Exceptions

| Exception | Description |
| - | - |
| `ArgumentNullException` | Thrown when *builder* or *getPrincipal* is [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null). |

### &#x20;WithEntityFrameworkTasks Extension

> [!NOTE]
>
> Extension method from `Microsoft.Extensions.DependencyInjection.McpEssentials_EntityFrameworkCore_McpServerBuilderExtensions`

Enables MCP Tasks backed by `EntityFrameworkAuthenticatedTaskStore`1\`,
resolving the user from services already registered in the built [IServiceProvider](https://learn.microsoft.com/dotnet/api/system.iserviceprovider).

#### Syntax

```csharp theme={null}
public static Microsoft.Extensions.DependencyInjection.IMcpServerBuilder WithEntityFrameworkTasks<TContext>(Microsoft.Extensions.DependencyInjection.IMcpServerBuilder builder, System.Func<System.IServiceProvider, System.Security.Claims.ClaimsPrincipal> getPrincipal, System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions> configure = null, System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions> configureTasks = null) where TContext : Microsoft.EntityFrameworkCore.DbContext
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `builder` | `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder` | The MCP server builder. |
| `getPrincipal` | `System.Func<System.IServiceProvider, System.Security.Claims.ClaimsPrincipal?>` | Returns the principal for the current request. ASP.NET Core hosts call |
| `AddHttpContextAccessor()` and pass | | |
| `sp =&gt; sp.GetRequiredService&lt;IHttpContextAccessor&gt;().HttpContext?.User`. | | |
| `configure` | `System.Action<CloudNimble.McpEssentials.Core.Tasks.AuthenticatedMcpTaskStoreOptions>?` | Optional store options (TTL, poll interval). |
| `configureTasks` | `System.Action<ModelContextProtocol.Extensions.Tasks.McpTasksOptions>?` | Optional SDK Tasks options (execution-mode selector, and so on). |

#### Returns

Type: `Microsoft.Extensions.DependencyInjection.IMcpServerBuilder`
The server builder.

#### Type Parameters

* `TContext` - The host [DbContext](https://learn.microsoft.com/dotnet/api/microsoft.entityframeworkcore.dbcontext) that maps [McpTaskEntity](https://ai.easyaf.dev/mcpessentials/api-reference/CloudNimble/McpEssentials/EntityFrameworkCore/Tasks/McpTaskEntity.md).

#### Exceptions

| Exception | Description |
| - | - |
| `ArgumentNullException` | Thrown when *builder* or *getPrincipal* is [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null). |

#### Examples

```csharp theme={null}
builder.Services.AddHttpContextAccessor();
builder.Services.AddDbContext&lt;AppDbContext&gt;(o =&gt; o.UseSqlServer(connectionString));
builder.Services.AddMcpServer()
    .WithHttpTransport()
    .WithEntityFrameworkTasks&lt;AppDbContext&gt;(
        sp =&gt; sp.GetRequiredService&lt;IHttpContextAccessor&gt;().HttpContext?.User,
        o =&gt; o.DefaultTimeToLive = TimeSpan.FromMinutes(5));
```


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