Skip to content

MCP-CustomTool: Execution and Permission Tests #3042

@souvikghosh04

Description

@souvikghosh04

Goal: Comprehensive execution testing with security validation

Files to Create:

src/Azure.DataApiBuilder.Mcp.Tests/CustomToolExecutionTests.cs

Successful execution with/without parameters
Parameter parsing from top-level properties
Default parameter handling from configuration
Result formatting (arrays, objects, empty results)
Query engine integration validation
src/Azure.DataApiBuilder.Mcp.Tests/CustomToolPermissionTests.cs

Anonymous vs authenticated role enforcement
Permission denied scenarios (execute not allowed)
Role-based filtering (entity not visible to role)
Multiple role header handling
Database policy enforcement
src/Azure.DataApiBuilder.Mcp.Tests/CustomToolErrorHandlingTests.cs

Invalid parameter types (string → int conversion)
Missing required parameters
SQL exceptions (FK constraint violations, syntax errors)
Database timeout scenarios
Cancellation token support
Non-existent entity/stored procedure errors
Test Coverage:

  • All exception types from ExecuteAsync implementation
  • Permission checks using McpAuthorizationHelper
  • Parameter mapping and default value application
  • Error response formatting

Deliverable: Full execution pipeline validation with security guarantees

Metadata

Metadata

Assignees

Labels

mcp-servermssqlan issue thats specific to mssql

Projects

Status

Todo

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions