Skip to main content

Definition

Assembly: Microsoft.OData.Mcp.Core.dll Namespace: Microsoft.OData.Mcp.Core.Tools

Syntax

Microsoft.OData.Mcp.Core.Tools.IMcpToolFactory

Summary

Factory for creating MCP tools dynamically from OData metadata.

Remarks

This factory generates MCP tools based on the parsed OData model, creating tools for CRUD operations, queries, and navigation between entities. The tools are generated dynamically to match the structure and capabilities of the OData service.

Methods

FilterToolsForUser Abstract

Filters tools based on user authorization context.

Syntax

System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition> FilterToolsForUser(System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition> tools, System.Collections.Generic.IEnumerable<string> userScopes, System.Collections.Generic.IEnumerable<string> userRoles, Microsoft.OData.Mcp.Core.Tools.McpToolGenerationOptions options = null)

Parameters

NameTypeDescription
toolsSystem.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>The tools to filter.
userScopesSystem.Collections.Generic.IEnumerable<string>The user’s OAuth2 scopes.
userRolesSystem.Collections.Generic.IEnumerable<string>The user’s roles.
optionsMicrosoft.OData.Mcp.Core.Tools.McpToolGenerationOptions?Options for authorization filtering.

Returns

Type: System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition> A collection of tools the user is authorized to access.

Exceptions

ExceptionDescription
ArgumentNullExceptionThrown when tools is null.

GenerateCrudToolsAsync Abstract

Generates CRUD operation tools for a specific entity type.

Syntax

System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> GenerateCrudToolsAsync(Microsoft.OData.Mcp.Core.Models.EdmEntityType entityType, Microsoft.OData.Mcp.Core.Models.EdmModel model, Microsoft.OData.Mcp.Core.Tools.McpToolGenerationOptions options = null)

Parameters

NameTypeDescription
entityTypeMicrosoft.OData.Mcp.Core.Models.EdmEntityTypeThe entity type to generate CRUD tools for.
modelMicrosoft.OData.Mcp.Core.Models.EdmModelThe complete OData model for context.
optionsMicrosoft.OData.Mcp.Core.Tools.McpToolGenerationOptions?Options for tool generation.

Returns

Type: System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> A collection of CRUD tool definitions.

Exceptions

ExceptionDescription
ArgumentNullExceptionThrown when entityType or model is null.

GenerateEntitySetToolsAsync Abstract

Generates tools for entity set operations (collection-level operations).

Syntax

System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> GenerateEntitySetToolsAsync(Microsoft.OData.Mcp.Core.Models.EdmEntitySet entitySet, Microsoft.OData.Mcp.Core.Models.EdmModel model, Microsoft.OData.Mcp.Core.Tools.McpToolGenerationOptions options = null)

Parameters

NameTypeDescription
entitySetMicrosoft.OData.Mcp.Core.Models.EdmEntitySetThe entity set to generate tools for.
modelMicrosoft.OData.Mcp.Core.Models.EdmModelThe complete OData model for context.
optionsMicrosoft.OData.Mcp.Core.Tools.McpToolGenerationOptions?Options for tool generation.

Returns

Type: System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> A collection of entity set tool definitions.

Exceptions

ExceptionDescription
ArgumentNullExceptionThrown when entitySet or model is null.

GenerateEntityToolsAsync Abstract

Generates MCP tools for a specific entity type.

Syntax

System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> GenerateEntityToolsAsync(Microsoft.OData.Mcp.Core.Models.EdmEntityType entityType, Microsoft.OData.Mcp.Core.Models.EdmModel model, Microsoft.OData.Mcp.Core.Tools.McpToolGenerationOptions options = null)

Parameters

NameTypeDescription
entityTypeMicrosoft.OData.Mcp.Core.Models.EdmEntityTypeThe entity type to generate tools for.
modelMicrosoft.OData.Mcp.Core.Models.EdmModelThe complete OData model for context.
optionsMicrosoft.OData.Mcp.Core.Tools.McpToolGenerationOptions?Options for tool generation.

Returns

Type: System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> A collection of generated MCP tool definitions for the entity type.

Exceptions

ExceptionDescription
ArgumentNullExceptionThrown when entityType or model is null.

GenerateNavigationToolsAsync Abstract

Generates navigation tools for entity relationships.

Syntax

System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> GenerateNavigationToolsAsync(Microsoft.OData.Mcp.Core.Models.EdmEntityType entityType, Microsoft.OData.Mcp.Core.Models.EdmModel model, Microsoft.OData.Mcp.Core.Tools.McpToolGenerationOptions options = null)

Parameters

NameTypeDescription
entityTypeMicrosoft.OData.Mcp.Core.Models.EdmEntityTypeThe entity type to generate navigation tools for.
modelMicrosoft.OData.Mcp.Core.Models.EdmModelThe complete OData model for context.
optionsMicrosoft.OData.Mcp.Core.Tools.McpToolGenerationOptions?Options for tool generation.

Returns

Type: System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> A collection of navigation tool definitions.

Exceptions

ExceptionDescription
ArgumentNullExceptionThrown when entityType or model is null.

GenerateQueryToolsAsync Abstract

Generates query tools for the OData model.

Syntax

System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> GenerateQueryToolsAsync(Microsoft.OData.Mcp.Core.Models.EdmModel model, Microsoft.OData.Mcp.Core.Tools.McpToolGenerationOptions options = null)

Parameters

NameTypeDescription
modelMicrosoft.OData.Mcp.Core.Models.EdmModelThe OData model to generate query tools for.
optionsMicrosoft.OData.Mcp.Core.Tools.McpToolGenerationOptions?Options for tool generation.

Returns

Type: System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> A collection of query tool definitions.

Exceptions

ExceptionDescription
ArgumentNullExceptionThrown when model is null.

GenerateToolsAsync Abstract

Generates all MCP tools for the specified OData model.

Syntax

System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> GenerateToolsAsync(Microsoft.OData.Mcp.Core.Models.EdmModel model, Microsoft.OData.Mcp.Core.Tools.McpToolGenerationOptions options = null)

Parameters

NameTypeDescription
modelMicrosoft.OData.Mcp.Core.Models.EdmModelThe OData model to generate tools for.
optionsMicrosoft.OData.Mcp.Core.Tools.McpToolGenerationOptions?Options for tool generation.

Returns

Type: System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>> A collection of generated MCP tool definitions.

Exceptions

ExceptionDescription
ArgumentNullExceptionThrown when model is null.

GetAvailableToolNames Abstract

Gets all available tool names.

Syntax

System.Collections.Generic.IEnumerable<string> GetAvailableToolNames()

Returns

Type: System.Collections.Generic.IEnumerable<string> A collection of all tool names that have been generated.

GetTool Abstract

Gets the tool definition by name.

Syntax

Microsoft.OData.Mcp.Core.Tools.McpToolDefinition GetTool(string toolName)

Parameters

NameTypeDescription
toolNamestringThe name of the tool to retrieve.

Returns

Type: Microsoft.OData.Mcp.Core.Tools.McpToolDefinition? The tool definition if found; otherwise, null.

ValidateTools Abstract

Validates that the generated tools are compatible with the MCP specification.

Syntax

System.Collections.Generic.IEnumerable<string> ValidateTools(System.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition> tools)

Parameters

NameTypeDescription
toolsSystem.Collections.Generic.IEnumerable<Microsoft.OData.Mcp.Core.Tools.McpToolDefinition>The tools to validate.

Returns

Type: System.Collections.Generic.IEnumerable<string> A collection of validation errors, or empty if all tools are valid.

Exceptions

ExceptionDescription
ArgumentNullExceptionThrown when tools is null.