list_tool_packages
Identify available and currently loaded tool packages on the ServiceNow MCP Server to manage integration and functionality efficiently.
Instructions
Lists available tool packages and the currently loaded one.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | Yes | Dummy parameter for no-parameter tools |
Implementation Reference
- src/servicenow_mcp/server.py:290-300 (handler)The core handler function that lists available tool packages and the currently loaded package based on configuration.def _list_tool_packages_impl(self) -> Dict[str, Any]: """Implementation logic for the list_tool_packages tool.""" available_packages = list(self.package_definitions.keys()) return { "current_package": self.current_package_name, "available_packages": available_packages, "message": ( f"Currently loaded package: '{self.current_package_name}'. " f"Set MCP_TOOL_PACKAGE env var to one of {available_packages} to switch." ), }
- src/servicenow_mcp/server.py:185-200 (registration)Registers the 'list_tool_packages' tool in the list_tools endpoint, including its name, description, and input schema.tool_list.append( types.Tool( name="list_tool_packages", description="Lists available tool packages and the currently loaded one.", inputSchema={ "type": "object", "properties": { "random_string": { "type": "string", "description": "Dummy parameter for no-parameter tools", } }, "required": ["random_string"], }, ) )
- src/servicenow_mcp/server.py:240-248 (handler)Dispatch logic in the call_tool handler that invokes the list_tool_packages implementation and serializes the result.if name == "list_tool_packages": if self.current_package_name == "none": raise ValueError( "Tool 'list_tool_packages' is not available in the 'none' package." ) result_dict = self._list_tool_packages_impl() serialized_string = json.dumps(result_dict, indent=2) # Return a list with a TextContent object return [types.TextContent(type="text", text=serialized_string)]