Cryptographic User Authentication with JWKS Validation

OpenEdge MCP Server now supports cryptographic validation of user JSON Web Tokens (JWTs) against a remote JSON Web Key Set (JWKS) endpoint, enabling OAuth2/OIDC-compliant authentication. This enhancement replaces structural-only checks with full RSA signature verification and works with identity providers like Keycloak, Auth0, Azure AD, and Okta.

When user_auth.jwks_uri is configured, user JWTs are validated for signature verification, expiration and timing claims, issuer and audience validation against your configured values, and algorithm verification against your explicit allowlist, with scope extraction for fine-grained authorization. Tokens failing validation are rejected outright, with no fallback.

Existing deployments without JWKS configuration continue in passthrough mode—no changes required unless you opt in. Without user_auth.jwks_uri, user_auth.mode: "jwt" performs structural validation only, without establishing trusted claims or scopes.

For more information, see Configure user authentication.

File-Based Tool Arguments

The mcpgen client command now accepts tool arguments from a file, avoiding fragile shell quoting for large or complex JSON payloads. You can use either --args-file or --args with the @ prefix to pass JSON arguments from a file instead of inline on the command line. For example, use:
 ./mcpgen client my-profile --tool getCustomer --args-file request.json
or
./mcpgen client my-profile --tool getCustomer --args @request.json
to invoke tools with complex JSON payloads. Inline JSON and a file argument source cannot be combined, and relative argument file paths resolve from the directory in which mcpgen was invoked.

For more information, see Client.

JSON Output Mode for CLI

The mcpgen client now provides clean JSON-only output when using the --json flag, with all non-JSON progress messages suppressed. You can use mcpgen --json commands in CI/CD pipelines and automation scripts with confidence that the output contains only valid JSON, eliminating the need for complex output filtering. This enhancement provides reliable machine-readable output for automation pipelines without extraneous output from progress messages or warnings, simplifying integration with JSON parsing tools like jq.

For more information, see Client.

Request Timeout Adjustment

The default request timeout has been increased from 500ms to 30 seconds to better accommodate real-world API workload patterns. This change prevents healthy calls to remote OpenEdge services from failing under normal network latency. Deployments experiencing frequent timeout errors should see improved reliability without configuration changes. However, this changes the maximum time an unconfigured request can occupy server resources. You can also set an explicit value using runtime.middleware.request_timeout.timeout_ms in your configuration. Progress recommends that you set a value based on the latency of your downstream service and your caller's timeout requirements.

For more information, see Configure middleware settings.