# =============================================================================
# Excel Range Test - excel_range Tool
# =============================================================================
#
# Tests: excel_range tool for reading and writing cell data
#
# Tools Covered:
# - excel_range with actions:
# - set-values: Write data to cells (2D array format)
# - get-values: Read data from cells
# - get-used-range: Get the used range in a worksheet
# - clear-all: Clear all content and formatting
#
# Key Validation:
# - LLM correctly uses 2D array format [[row1], [row2]] for data
# - LLM understands range addresses (A1:C3, etc.)
# - LLM uses incremental updates (set-values) instead of rebuild patterns
#
# Prerequisites:
# - Windows 10/11 with Excel installed
# - Excel MCP Server
# - Environment: AZURE_OPENAI_ENDPOINT
#
# =============================================================================
criteria:
success_rate: 1 # 100% required
providers:
- name: azure-openai-gpt41
type: AZURE
auth_type: entra_id
model: gpt-4.1
baseUrl: "{{AZURE_OPENAI_ENDPOINT}}"
version: 2025-01-01-preview
- name: azure-openai-gpt5-chat
type: AZURE
auth_type: entra_id # Uses DefaultAzureCredential - no API key needed
model: gpt-5.2-chat
baseUrl: "{{AZURE_OPENAI_ENDPOINT}}"
version: 2025-01-01-preview
# Provider for clarification detection judge (using gpt-4.1 for better accuracy)
- name: azure-openai-judge
type: AZURE
auth_type: entra_id
model: gpt-4.1
baseUrl: "{{AZURE_OPENAI_ENDPOINT}}"
version: 2025-01-01-preview
servers:
- name: excel-mcp
type: stdio
command: "{{SERVER_COMMAND}}"
server_delay: 30s
agents:
- name: gpt41-agent
servers:
- name: excel-mcp
provider: azure-openai-gpt41
clarification_detection:
enabled: true
judge_provider: azure-openai-judge
- name: gpt5-chat-agent
servers:
- name: excel-mcp
provider: azure-openai-gpt5-chat
clarification_detection:
enabled: true
judge_provider: azure-openai-judge
settings:
verbose: true
max_iterations: 15
sessions:
# ==========================================================================
# Session 1: Range Read/Write Operations (combined)
# ==========================================================================
- name: "Range Operations"
tests:
- name: "Write and read range data"
prompt: |
1. Create a new empty Excel file at {{TEMP_DIR}}/llm-test-range-{{randomValue type='UUID'}}.xlsx and open it
2. Put the following data in cells A1:C3:
Row 1: Name, Age, City
Row 2: Alice, 30, Seattle
Row 3: Bob, 25, Portland
3. Read the data back from cells A1:C3
4. Get the used range in the worksheet
5. Close the file without saving
assertions:
- type: no_hallucinated_tools
- type: no_rate_limit_errors
- type: no_clarification_questions
- type: tool_called
tool: excel_file
- type: tool_called
tool: excel_range
- type: output_regex
pattern: "(?i)(alice|bob|seattle|portland)"
# ==========================================================================
# Session 2: Single Cell Operations (combined)
# ==========================================================================
- name: "Single Cell Operations"
tests:
- name: "Write and read single cells"
prompt: |
1. Create a new empty Excel file at {{TEMP_DIR}}/llm-test-single-cell-{{randomValue type='UUID'}}.xlsx and open it
2. Put the value "Hello World" in cell A1
3. Put the number 42 in cell B1
4. Read the values from A1:B1 and report what you see
5. Close the file without saving
assertions:
- type: no_hallucinated_tools
- type: no_rate_limit_errors
- type: no_clarification_questions
- type: tool_called
tool: excel_file
- type: tool_called
tool: excel_range
- type: output_regex
pattern: "(?i)(hello|42)"