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

# McpElicitUrlAttribute

> Marks a tool so MCP elicits a URL after the member produces one. `WithTasksPlus` wraps the call as `Optional` so a task can outlive the POST while the operat...

## Definition

**Assembly:** CloudNimble.McpEssentials.Core.dll

**Namespace:** CloudNimble.McpEssentials.Core.Tasks.Elicitations

**Inheritance:** System.Attribute

## Syntax

```csharp theme={"dark"}
CloudNimble.McpEssentials.Core.Tasks.Elicitations.McpElicitUrlAttribute
```

## Summary

Marks a tool so MCP elicits a URL after the member produces one.
`WithTasksPlus` wraps the call as
`Optional` so a
task can outlive the POST while the operator is in the browser.

## Remarks

Constructor arguments name JSON properties on the result that hold URLs
(`connectUri`, `authorizationUrl`, and similar). An empty list leaves the
host to apply its own defaults. Class-level usage applies to every
`[McpServerTool]` method on the type. When [McpElicitFormAttribute](https://si.nimbleapps.cloud/mcpessentials/api-reference/CloudNimble/McpEssentials/Core/Tasks/Elicitations/McpElicitFormAttribute.md) is
also present, the form wins and the call stays on `tools/call`.

## Examples

```csharp theme={"dark"}
[McpServerTool(Name = "Authorize")]
[McpElicitUrl("connectUri")]
public static AuthorizationTicket Authorize()
{
    return ticket;
}
```

## Constructors

### &#x20;.ctor

Marks the member as eliciting URLs from the given result properties.

#### Syntax

```csharp theme={"dark"}
public McpElicitUrlAttribute(params string[] propertyNames)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `propertyNames` | `string[]` | JSON property names that hold elicit URLs. |

#### Exceptions

| Exception | Description |
| - | - |
| `ArgumentNullException` | Thrown when *propertyNames* is [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null). |
| `ArgumentException` | Thrown when a property name is empty. |

## Properties

### &#x20;PropertyNames

Gets JSON property names that hold URLs to elicit.

#### Syntax

```csharp theme={"dark"}
public string[] PropertyNames { get; }
```

#### Property Value

Type: `string[]`


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