Skip to content

Commit 2b5d6c5

Browse files
committed
improve docstrings
1 parent 63197bf commit 2b5d6c5

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

rsconnect/main.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -420,19 +420,9 @@ def mcp_server():
420420

421421
all_commands_info = discover_all_commands(cli)
422422

423-
@mcp.tool()
424423
def get_command_info(
425424
command_path: str,
426425
) -> Dict[str, Any]:
427-
"""
428-
Get the parameter schema for any rsconnect command.
429-
430-
Returns information about the parameters needed to construct an rsconnect command
431-
that can be executed in a bash shell. Supports nested command groups of arbitrary depth.
432-
433-
:param command_path: space-separated command path (e.g., 'version', 'deploy notebook', 'content build add')
434-
:return: dictionary with command parameter schema and execution metadata
435-
"""
436426
try:
437427
# split the command path into parts
438428
parts = command_path.strip().split()
@@ -482,6 +472,25 @@ def get_command_info(
482472
except Exception as e:
483473
raise ToolError(f"Failed to retrieve command info: {str(e)}")
484474

475+
# dynamically build docstring with top level commands
476+
# note: excluding mcp-server here
477+
available_commands = sorted(cmd for cmd in all_commands_info["commands"].keys() if cmd != "mcp-server")
478+
commands_list = "\n ".join(f"- {cmd}" for cmd in available_commands)
479+
480+
get_command_info.__doc__ = f"""Get the parameter schema for any rsconnect command.
481+
482+
Returns information about the parameters needed to construct an rsconnect command
483+
that can be executed in a bash shell. Supports nested command groups of arbitrary depth.
484+
485+
Available top-level commands:
486+
{commands_list}
487+
488+
:param command_path: space-separated command path (e.g., 'version', 'deploy notebook', 'content build add')
489+
:return: dictionary with command parameter schema and execution metadata
490+
"""
491+
492+
mcp.tool(get_command_info)
493+
485494
mcp.run()
486495

487496

0 commit comments

Comments
 (0)