Function: mcp--parse-tool-args
mcp--parse-tool-args is a natively compiled function defined in
mcp.el.
Signature
(mcp--parse-tool-args PROPERTIES REQUIRED)
Documentation
Parse tool arguments from PROPERTIES and REQUIRED lists.
PROPERTIES is a plist of tool argument properties. REQUIRED is a list of required argument names.
The function processes each argument in PROPERTIES, marking optional arguments if they are not in REQUIRED. Each argument is parsed into a structured plist with :name, :type, and :optional fields.
Returns a list of parsed argument plists.
Source Code
;; Defined in /nix/store/5m747x13pb1ddrvbq9raj91c4q1h1kl0-emacs-packages-deps/share/emacs/site-lisp/elpa/mcp-20260615.940/mcp.el
(defun mcp--parse-tool-args (properties required)
"Parse tool arguments from PROPERTIES and REQUIRED lists.
PROPERTIES is a plist of tool argument properties.
REQUIRED is a list of required argument names.
The function processes each argument in PROPERTIES, marking optional arguments
if they are not in REQUIRED. Each argument is parsed into a structured plist
with :name, :type, and :optional fields.
Returns a list of parsed argument plists."
(let ((need-length (- (/ (length properties) 2)
(length required))))
(cl-mapcar (lambda (arg-value required-name)
(pcase-let* ((`(,key ,value) arg-value))
`( :name ,(substring (symbol-name key) 1)
,@value
,@(unless required-name
`(:optional t)))))
(seq-partition properties 2)
(append required
(when (> need-length 0)
(make-list need-length nil))))))