Skip to main content
Glama
vparlapalli490

ServiceNow MCP Server

list_workflow_versions

Retrieve and manage workflow versions in ServiceNow by specifying a workflow ID and optional limit or offset parameters for precise version control.

Instructions

List workflow versions from ServiceNow

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of records to return
offsetNoOffset to start from
workflow_idYesWorkflow ID or sys_id

Implementation Reference

  • The handler function implementing the core logic for listing workflow versions by querying the ServiceNow wf_workflow_version table via REST API.
    def list_workflow_versions( auth_manager: AuthManager, server_config: ServerConfig, params: Dict[str, Any], ) -> Dict[str, Any]: """ List versions of a specific workflow. Args: auth_manager: Authentication manager server_config: Server configuration params: Parameters for listing workflow versions Returns: Dict[str, Any]: List of workflow versions """ # Unwrap parameters if needed params = _unwrap_params(params, ListWorkflowVersionsParams) # Get the correct auth_manager and server_config try: auth_manager, server_config = _get_auth_and_config(auth_manager, server_config) except ValueError as e: logger.error(f"Error getting auth and config: {e}") return {"error": str(e)} workflow_id = params.get("workflow_id") if not workflow_id: return {"error": "Workflow ID is required"} # Convert parameters to ServiceNow query format query_params = { "sysparm_query": f"workflow={workflow_id}", "sysparm_limit": params.get("limit", 10), "sysparm_offset": params.get("offset", 0), } # Make the API request try: headers = auth_manager.get_headers() url = f"{server_config.instance_url}/api/now/table/wf_workflow_version" response = requests.get(url, headers=headers, params=query_params) response.raise_for_status() result = response.json() return { "versions": result.get("result", []), "count": len(result.get("result", [])), "total": int(response.headers.get("X-Total-Count", 0)), "workflow_id": workflow_id, } except requests.RequestException as e: logger.error(f"Error listing workflow versions: {e}") return {"error": str(e)} except Exception as e: logger.error(f"Unexpected error listing workflow versions: {e}") return {"error": str(e)}
  • Pydantic schema defining input parameters for the list_workflow_versions tool.
    class ListWorkflowVersionsParams(BaseModel): """Parameters for listing workflow versions.""" workflow_id: str = Field(..., description="Workflow ID or sys_id") limit: Optional[int] = Field(10, description="Maximum number of records to return") offset: Optional[int] = Field(0, description="Offset to start from")
  • Tool registration entry in get_tool_definitions() mapping the tool name to its handler, input schema, description, and serialization settings.
    "list_workflow_versions": ( list_workflow_versions_tool, ListWorkflowVersionsParams, str, # Expects JSON string "List workflow versions from ServiceNow", "json", # Tool returns list/dict ),
  • Import of the list_workflow_versions handler into the tools package namespace, exposing it for use in registrations.
    from servicenow_mcp.tools.workflow_tools import ( activate_workflow, add_workflow_activity, create_workflow, deactivate_workflow, delete_workflow_activity, get_workflow_activities, get_workflow_details, list_workflow_versions, list_workflows, reorder_workflow_activities, update_workflow, update_workflow_activity, )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vparlapalli490/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server