get_job_parameters
Retrieve parameter definitions of a Jenkins job, including name, type, default value, and options for choice parameters, using server name and job full name as inputs.
Instructions
Get the parameter definitions of a Jenkins job.
Args:
server_name: Jenkins server name
job_full_name: Full job name
Returns:
List of parameter definitions, including parameter name, type, default value, and options (if choice parameter)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job_full_name | Yes | ||
| server_name | Yes |
Implementation Reference
- src/jenkins/tools/mcp_tools.py:89-102 (handler)MCP tool handler for get_job_parameters, decorated with @mcp.tool() for registration. It instantiates JenkinsAPIClient and calls its get_job_parameters method to execute the tool logic.@mcp.tool() def get_job_parameters(server_name: str, job_full_name: str) -> List[JobParameter]: """Get the parameter definitions of a Jenkins job. Args: server_name: Jenkins server name job_full_name: Full job name Returns: List of parameter definitions, including parameter name, type, default value, and options (if choice parameter) """ client = JenkinsAPIClient(server_name) return client.get_job_parameters(job_full_name)
- src/jenkins/tools/types.py:79-86 (schema)TypedDict schema defining the structure of each JobParameter returned by the tool, including name, type, default value, and choices.class JobParameter(TypedDict): """Job parameter definition.""" name: str type: str default: Optional[Any] choices: Optional[List[str]]
- src/jenkins/tools/client.py:190-246 (helper)Helper method in JenkinsAPIClient that performs the actual Jenkins API request to fetch and parse job parameters, used by the MCP tool handler.def get_job_parameters(self, job_full_name: str) -> List[JobParameter]: """Get job parameter definitions. Args: job_full_name: Full job name Returns: List of parameter definitions Raises: JenkinsError: API request failed """ job_url = self._build_job_url(job_full_name) api_url = ( f"{job_url}/api/json?tree=actions[parameterDefinitions[name,type," "defaultParameterValue[value],choices]],property[parameterDefinitions" "[name,type,defaultParameterValue[value],choices]]" ) response = self._make_request("GET", api_url) response.raise_for_status() data = response.json() params = [] def process_parameter(param_def: Dict[str, Any]) -> JobParameter: """Process parameter definition.""" param_info: JobParameter = { "name": param_def.get("name", ""), "type": param_def.get("type", ""), "default": param_def.get("defaultParameterValue", {}).get("value"), "choices": None, } # If Choice Parameter, add choices list if ( param_def.get("type") == "ChoiceParameterDefinition" and "choices" in param_def ): param_info["choices"] = param_def.get("choices", []) return param_info # Process property field for prop in data.get("property", []): if "parameterDefinitions" in prop: for param_def in prop["parameterDefinitions"]: params.append(process_parameter(param_def)) # Process actions field (compatibility) for action in data.get("actions", []): if "parameterDefinitions" in action: for param_def in action["parameterDefinitions"]: params.append(process_parameter(param_def)) return params