# MentorActionInfo record

> The MentorActionInfo record of Novior.MentorAgent.Abstractions.Models: One of the application's actions as MentorAgent sees it, from IMentorActionCatalog…

- URL: https://docs.mentoragent.net/api/novior-mentoragent-abstractions-models/mentoractioninfo
- Verified with: MentorAgent 1.2.0
- Last updated: 2026-10-27
- Packages: Novior.MentorAgent.Abstractions

One of the application's actions as MentorAgent sees it, from [`IMentorActionCatalog`](https://docs.mentoragent.net/api/novior-mentoragent-abstractions-interfaces/imentoractioncatalog): who may run it, whether it asks for a confirmation, and where it is published. More properties may be added.

## Definition

Namespace: `Novior.MentorAgent.Abstractions.Models`. Package: `Novior.MentorAgent.Abstractions`.

`public sealed record MentorActionInfo : IEquatable<MentorActionInfo>`

```shell
dotnet add package Novior.MentorAgent.Abstractions
```

## Constructors

`public MentorActionInfo()`

## Properties

### `AgentKind`

`public required MentorAgentKind AgentKind { get; init; }`

Which kind of agent offers it: the coordinator, a specialist or a team member.

### `AgentName`

`public string? AgentName { get; init; }`

The specialist's name, or the team member's role; `null` for the coordinator.

### `Description`

`public string? Description { get; init; }`

The action's description, as the model reads it; `null` when it has none.

### `McpExposure`

`public required MentorMcpExposure McpExposure { get; init; }`

Whether, and to whom, MentorAgent's MCP server publishes it now.

### `OnAgentCard`

`public bool OnAgentCard { get; init; }`

Whether the A2A agent card lists it as a skill. The card is built once, when the host maps the A2A endpoint; `false` when the host does not serve A2A.

### `ReadOnly`

`public bool ReadOnly { get; init; }`

Whether the application declares that the action only reads (`[MentorAction(ReadOnly = true)]`, `IsReadOnlyAction`) and nothing declares it confirmation-gated.

### `RequiredRoles`

`public IReadOnlyList<string> RequiredRoles { get; init; }`

The roles the action requires, any one of which is enough; empty when it requires none.

### `RequiresConfirmation`

`public bool RequiresConfirmation { get; init; }`

Whether a call asks for a confirmation now: `[MentorAction(RequiresConfirmation = true)]` or the `RequiresApproval` predicate, with `RequireConfirmation` on. Read again at every call to [`IMentorActionCatalog.GetActions`](https://docs.mentoragent.net/api/novior-mentoragent-abstractions-interfaces/imentoractioncatalog#getactions), as the predicate is at every call of the action.

### `ToolName`

`public required string ToolName { get; init; }`

The tool's technical name, as the model or the MCP client calls it (for example `cancel_order`).

---

- Previous: [MentorActionDecision record](https://docs.mentoragent.net/api/novior-mentoragent-abstractions-models/mentoractiondecision.md)
- Next: [MentorActionOutcome enum](https://docs.mentoragent.net/api/novior-mentoragent-abstractions-models/mentoractionoutcome.md)
