Merge pull request #12968 from alpha-pet/feat-openapi-parameter-description

feat: support OpenAPI parameter description and enum values in tool spec
This commit is contained in:
Tim Jaeryang Baek 2025-04-17 22:02:50 -07:00 committed by GitHub
commit 477ac7de86
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 2 deletions

View File

@ -387,9 +387,18 @@ def convert_openapi_to_tool_payload(openapi_spec):
for param in operation.get("parameters", []):
param_name = param["name"]
param_schema = param.get("schema", {})
description = param_schema.get("description", "")
if not description:
description = param.get("description") or ""
if param_schema.get("enum") and isinstance(
param_schema.get("enum"), list
):
description += (
f". Possible values: {', '.join(param_schema.get('enum'))}"
)
tool["parameters"]["properties"][param_name] = {
"type": param_schema.get("type"),
"description": param_schema.get("description", ""),
"description": description,
}
if param.get("required"):
tool["parameters"]["required"].append(param_name)

View File

@ -1257,9 +1257,13 @@ export const convertOpenApiToToolPayload = (openApiSpec) => {
// Extract path and query parameters
if (operation.parameters) {
operation.parameters.forEach((param) => {
let description = param.schema.description || param.description || '';
if (param.schema.enum && Array.isArray(param.schema.enum)) {
description += `. Possible values: ${param.schema.enum.join(', ')}`;
}
tool.parameters.properties[param.name] = {
type: param.schema.type,
description: param.schema.description || ''
description: description
};
if (param.required) {