Skip to content

Make all constants case-insensitive if they can be #201

@Erudition

Description

@Erudition

Is your feature request related to a problem? Please describe.
The models I've used often get mislead by the tool documentation about the required case of the arguments. Ex:

 "content": "Error executing tool zammad_list_ticket_priorities: 1 validation error for zammad_list_ticket_prioritiesArguments\nparams.response_format\n  Input should be 'markdown' or 'json' [type=enum, input_value='MARKDOWN', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.11/v/enum",
    "id": "function-call-16147049927366973490",
    "is_error": true,
    "name": "mcp_zammad__zammad_list_ticket_priorities",
    "result": "Error executing tool zammad_list_ticket_priorities: 1 validation error for zammad_list_ticket_prioritiesArguments\nparams.response_format\n  Input should be 'markdown' or 'json' [type=enum, input_value='MARKDOWN', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.11/v/enum"
Rats! That's two errors in a row, and both were due to missing the precise schema requirements for the Zammad tools. I need to be more careful about the expected enum values. It seems the expected value for the default format is lowercase `'markdown'`, not `'MARKDOWN'`.\n\nLet's try this one more time to list the priorities correctly so I can confirm the exact string for \"low\" priority before updating the tickets.\n\nI will call `zammad_list_ticket_priorities` with `response_format: \"markdown\"`.

Describe the solution you'd like
If case doesn't change the meaning, make it not matter. Robustness Principle.

Describe alternatives you've considered
Listing every caveat in the system prompt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions