# TraconMcpServerOptions

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.traconmcpserveroptions/
> Summary: TraconMcpServerOptions: Settings for publishing Tracon agents as MCP tools.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.AspNetCore.dll</code></div>

Settings for publishing Tracon agents as MCP tools.

```csharp
public sealed class TraconMcpServerOptions
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.traconmcpserveroptions/">TraconMcpServerOptions</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

This type is deliberately **not** a `record`: the options
object carries no `secret` today, but the compiler-
generated `ToString` could repeat the same trap for a field added in
the future; the class keeps this type discipline.

## Constructors

### <a id="Tracon_TraconMcpServerOptions__ctor"></a> TraconMcpServerOptions\(\)

```csharp
public TraconMcpServerOptions()
```

## Properties

### <a id="Tracon_TraconMcpServerOptions_Budget"></a> Budget

Depth and token budget template for external calls. Each `tools/call`
creates a new [AgentRunBudget](/api/tracon.agentrunbudget/) instance with these values;
the object itself is not shared.

```csharp
public AgentRunBudget Budget { get; set; }
```

#### Property Value

 [AgentRunBudget](/api/tracon.agentrunbudget/)

#### Remarks

The default [AgentRunBudget.MaxDepth](/api/tracon.agentrunbudget/#Tracon_AgentRunBudget_MaxDepth) is 1: letting an
externally-called agent open its own tree makes the cost unpredictable.

### <a id="Tracon_TraconMcpServerOptions_EnableTasks"></a> EnableTasks

Serves long-running agent calls as MCP tasks instead of holding the
connection open. Default [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool): enabling it is an
explicit choice, and today's synchronous behavior is unchanged.

```csharp
public bool EnableTasks { get; set; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_TraconMcpServerOptions_ExposeAllAgents"></a> ExposeAllAgents

Exposes every agent in the catalog. Default [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool);
enabling it is an explicit choice.

```csharp
public bool ExposeAllAgents { get; set; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_TraconMcpServerOptions_ExposedAgents"></a> ExposedAgents

Names of agents to expose. If empty and [TraconMcpServerOptions.ExposeAllAgents](/api/tracon.traconmcpserveroptions/#Tracon_TraconMcpServerOptions_ExposeAllAgents)
is off, no agent is visible through MCP.

```csharp
public IList<string> ExposedAgents { get; }
```

#### Property Value

 [IList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ilist\-1)<[string](https://learn.microsoft.com/dotnet/api/system.string)\>

### <a id="Tracon_TraconMcpServerOptions_TaskPollInterval"></a> TaskPollInterval

Poll interval advertised to the client. Default 2 seconds.

```csharp
public TimeSpan TaskPollInterval { get; set; }
```

#### Property Value

 [TimeSpan](https://learn.microsoft.com/dotnet/api/system.timespan)

### <a id="Tracon_TraconMcpServerOptions_TaskTimeToLive"></a> TaskTimeToLive

How long a finished task stays readable. Default 1 hour.

```csharp
public TimeSpan TaskTimeToLive { get; set; }
```

#### Property Value

 [TimeSpan](https://learn.microsoft.com/dotnet/api/system.timespan)

#### Remarks

Advisory only: the underlying run row's lifetime is governed by the
retention policy (data retention), not by this value. A task stays
readable for as long as its run row does.

### <a id="Tracon_TraconMcpServerOptions_ToolNamePrefix"></a> ToolNamePrefix

MCP tool name prefix. Default `tracon`; the tool name becomes
`{ToolNamePrefix}_{agent}`.

```csharp
public string ToolNamePrefix { get; set; }
```

#### Property Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)
