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

# McpRouteMatcher

> Efficiently matches MCP routes to their corresponding OData endpoints.

export function DocsBadge({text, variant = 'neutral'}) {
  const variantClasses = {
    success: 'mint-bg-green-500/10 mint-text-green-600 dark:mint-text-green-400 mint-border-green-500/20',
    neutral: 'mint-bg-slate-500/10 mint-text-slate-600 dark:mint-text-slate-400 mint-border-slate-500/20',
    info: 'mint-bg-blue-500/10 mint-text-blue-600 dark:mint-text-blue-400 mint-border-blue-500/20',
    warning: 'mint-bg-amber-500/10 mint-text-amber-600 dark:mint-text-amber-400 mint-border-amber-500/20',
    danger: 'mint-bg-red-500/10 mint-text-red-600 dark:mint-text-red-400 mint-border-red-500/20'
  };
  const classes = variantClasses[variant] || variantClasses.neutral;
  return <span className={`mint-inline-flex mint-items-center mint-px-2 mint-py-0.5 mint-rounded-full mint-text-xs mint-font-medium mint-tracking-wide mint-border mint-ml-1.5 mint-align-middle mint-whitespace-nowrap ${classes}`}>
      {text}
    </span>;
}

## Definition

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

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

**Inheritance:** System.Object

## Syntax

```csharp theme={"dark"}
Microsoft.OData.Mcp.Core.Routing.McpRouteMatcher
```

## Summary

Efficiently matches MCP routes to their corresponding OData endpoints.

## Remarks

This matcher is optimized for startup-time registration and runtime lookups
using frozen collections for maximum performance.

## Constructors

### <Icon icon="hammer" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  .ctor

Initializes a new instance of the [McpRouteMatcher](/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Routing/McpRouteMatcher) class.

#### Syntax

```csharp theme={"dark"}
public McpRouteMatcher(System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Routing.McpRouteEntry> routes)
```

#### Parameters

| Name     | Type                                                                                     | Description             |
| -------- | ---------------------------------------------------------------------------------------- | ----------------------- |
| `routes` | `System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Routing.McpRouteEntry>` | The routes to register. |

#### Exceptions

| Exception               | Description                   |
| ----------------------- | ----------------------------- |
| `ArgumentNullException` | Thrown when *routes* is null. |

### <Icon icon="hammer" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  .ctor <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public Object()
```

## Methods

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  BuildMcpUrl

Builds the MCP URL for a given OData route.

#### Syntax

```csharp theme={"dark"}
public string BuildMcpUrl(string odataPrefix, System.Nullable<Microsoft.OData.Mcp.Core.Routing.McpCommand> command = null)
```

#### Parameters

| Name          | Type                                                           | Description                 |
| ------------- | -------------------------------------------------------------- | --------------------------- |
| `odataPrefix` | `string`                                                       | The OData route prefix.     |
| `command`     | `System.Nullable<Microsoft.OData.Mcp.Core.Routing.McpCommand>` | The MCP command (optional). |

#### Returns

Type: `string?`
The MCP URL, or null if the route is not found.

### <Icon icon="code-fork" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  Equals <DocsBadge text="Inherited" variant="neutral" /> <DocsBadge text="Virtual" variant="warning" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public virtual bool Equals(object obj)
```

#### Parameters

| Name  | Type      | Description |
| ----- | --------- | ----------- |
| `obj` | `object?` | -           |

#### Returns

Type: `bool`

### <Icon icon="thumbtack" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  Equals <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public static bool Equals(object objA, object objB)
```

#### Parameters

| Name   | Type      | Description |
| ------ | --------- | ----------- |
| `objA` | `object?` | -           |
| `objB` | `object?` | -           |

#### Returns

Type: `bool`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GetAllRoutes

Gets all registered routes.

#### Syntax

```csharp theme={"dark"}
public System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Routing.McpRouteEntry> GetAllRoutes()
```

#### Returns

Type: `System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Routing.McpRouteEntry>`
A collection of all registered route entries.

### <Icon icon="code-fork" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GetHashCode <DocsBadge text="Inherited" variant="neutral" /> <DocsBadge text="Virtual" variant="warning" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public virtual int GetHashCode()
```

#### Returns

Type: `int`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  GetType <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public System.Type GetType()
```

#### Returns

Type: `System.Type`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  MemberwiseClone <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
protected internal object MemberwiseClone()
```

#### Returns

Type: `object`

### <Icon icon="thumbtack" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  ReferenceEquals <DocsBadge text="Inherited" variant="neutral" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public static bool ReferenceEquals(object objA, object objB)
```

#### Parameters

| Name   | Type      | Description |
| ------ | --------- | ----------- |
| `objA` | `object?` | -           |
| `objB` | `object?` | -           |

#### Returns

Type: `bool`

### <Icon icon="code-fork" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  ToString <DocsBadge text="Inherited" variant="neutral" /> <DocsBadge text="Virtual" variant="warning" />

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public virtual string ToString()
```

#### Returns

Type: `string?`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  TryGetRouteByODataPrefix

Gets a route entry by its OData prefix.

#### Syntax

```csharp theme={"dark"}
public bool TryGetRouteByODataPrefix(string odataPrefix, out Microsoft.OData.Mcp.Core.Routing.McpRouteEntry route)
```

#### Parameters

| Name          | Type                                              | Description               |
| ------------- | ------------------------------------------------- | ------------------------- |
| `odataPrefix` | `string`                                          | The OData route prefix.   |
| `route`       | `Microsoft.OData.Mcp.Core.Routing.McpRouteEntry?` | The route entry if found. |

#### Returns

Type: `bool`
True if the route was found; otherwise, false.

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} style={{ paddingRight: '8px' }} />  TryMatch

Attempts to match a request path to an MCP route.

#### Syntax

```csharp theme={"dark"}
public bool TryMatch(string path, out Microsoft.OData.Mcp.Core.Routing.McpRouteEntry route, out Microsoft.OData.Mcp.Core.Routing.McpCommand mcpCommand)
```

#### Parameters

| Name         | Type                                              | Description                              |
| ------------ | ------------------------------------------------- | ---------------------------------------- |
| `path`       | `string`                                          | The request path.                        |
| `route`      | `Microsoft.OData.Mcp.Core.Routing.McpRouteEntry?` | The matched route entry.                 |
| `mcpCommand` | `Microsoft.OData.Mcp.Core.Routing.McpCommand`     | The MCP command extracted from the path. |

#### Returns

Type: `bool`
True if a route was matched; otherwise, false.
