개발자는 아니지만, 업무 상 필요한 것들은 AI + Python을 활용하여 만드는 것을 좋아해서, AI가 만든 코드를 보면서 공부가 필요한 것들은 공부를 하고 남기는 공간
일단 현재, 문제가 되고 있는 부분은 다음과 같았다.
@mcp.tool()
async def create_jira_issues(
project_key: str,
summary: str,
description: str,
issue_type: str,
assignee: Optional[str] = None,
labels: Optional[Union[List[str]] = None,
components: Optional[Union[List[str] = None,
link_type: Optional[str] = None,
linked_issue_key: Optional[str] = None,
fix_versions: Optional[List[str]] = None,
attachments: Optional[List[str]] = None):
해당 코드는 MCP에서 labels, components가 받을려고 할 시 다음과 같은 이슈가 나오게 되었다.
Input validation error: '["example_code"]' is not valid under any of the given schemas
분명히 입력 시, 'example_code'로 받았지만, python jira api측에서는 '[example_code]' 이렇게 문자열로 받아들였기에 제대로 생성을 하지 못하는 것 이다.
그럼 처음부터 정상적으로 잘 받아들이기 위해서 입력 받을 시 다음과 같이 처리를 한다.
labels: Optional[Union[List[str], str]] = None,
components: Optional[Union[List[str], str]] = None,
즉 Union을 통해서 List[str], str 이 2개를 받았을 수 있도록 처리를 한다면, 조금은 유연하게 List 와 str를 편하게 처리를 할 수 있다.'
(* 물론 List 처리하는 것은 밑에 구현 부분에서 더 다양하게 분기처리가 필요한 것은 당연지사)