tencent/ai-infra-guard의 mcp-scan 모듈이 도구 호출 파서를 수정했다. 2026년 11월 3일 커밋(7e6df02, PR #739)은 OpenAI 호환 모델이 파라미터를 <parameter name="x"> 형태로 내보낼 때도 호출을 읽도록 정규식과 폴백 처리를 넓혔다. 저장소 설명에 따르면 이 프로젝트는 Agent Scan, Skills Scan, MCP 스캔, AI Infra 스캔, LLM 탈옥 평가를 묶은 AI 레드티밍 플랫폼이다.
문제는 호출이 조용히 깨지던 방식이었다. 문서에 적힌 형태는 <parameter=x>인데 일부 OpenAI 호환 모델, 특히 DeepSeek은 속성 형태를 내보낸다. mcp-scan 파서는 문서에 적힌 형태만 알아봤기 때문에 이런 호출은 인자 없는 상태로 파싱됐고, 모델은 값이 다시 채워질 때까지 재시도를 반복하며 비용이 커졌다. 이슈 보고에 따르면 한 번의 실행에서 잘못된 태그가 최대 48개 관측됐고, 코드 모드에서는 2.65배 느려졌다.
바뀐 파일은 두 개다. mcp-scan/mcp_scan/utils/parse.py에서 _parse_tags()의 파라미터 정규식과, 닫히지 않은 <function=finish>를 처리하는 폴백이 큰따옴표와 작은따옴표 양쪽의 속성 형태를 받아들이도록 바뀌었고, 파싱 결과는 이미 두 형태를 모두 처리하던 agent-scan 파서와 맞춰졌다. mcp-scan/pytests/test_parse.py에는 두 형태의 혼용, 파라미터 여러 개, 폴백 경로, mcp_function 호출, 기존 형태 유지를 다루는 회귀 테스트 7개가 추가됐다. 변경 통계는 77줄 추가와 3줄 삭제다.
여기서 판단은 선을 긋는 데서 멈춘다. 48개와 2.65배는 이슈 보고에 담긴 수치이지 이 커밋에서 다시 잰 측정값이 아니다. 수정은 mcp-scan의 파싱 단계에 한정되고 저장소 설명에 든 나머지 스캔 경로는 이 커밋에 없다. 속성 형태로 파라미터를 내보내는 모델을 상대로 MCP 스캔을 돌리는 팀이라면 파싱 불일치 원인은 사라졌다고 볼 만하지만, 스캔 시간이 기준선으로 돌아오는지는 주어진 기록에 없다.