Configuration Reference

Extension configuration reference

Configuration property fixed at build time - All other configuration properties are overridable at runtime

Configuration property

Type

Default

If set to true then the @dev.langchain4j.agent.tool.Tool and @dev.langchain4j.agent.tool.P annotations from LangChain4j can be used instead of @Tool/@ToolArg.

Environment variable: QUARKUS_MCP_SERVER_SUPPORT_LANGCHAIN4J_ANNOTATIONS

boolean

true

Whether to use the SchemaGenerator’s Jackson Module. If this module is not present as a dependency, this module won’t be enabled.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_ENABLED

boolean

true

Corresponds to JacksonOption.RESPECT_JSONPROPERTY_ORDER.

If enabled, the order of properties in the generated schema will respect the order defined in a @JsonPropertyOrder annotation on a given type.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_RESPECT_JSON_PROPERTY_ORDER

boolean

true

Corresponds to JacksonOption.RESPECT_JSONPROPERTY_REQUIRED.

If enabled, a property will be marked as "required" in the schema if its corresponding field or method is annotated with @JsonProperty(required = true).

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_RESPECT_JSON_PROPERTY_REQUIRED

boolean

true

Corresponds to JacksonOption.FLATTENED_ENUMS_FROM_JSONVALUE.

If enabled, the schema for an enum will be a simple array of values (e.g., strings) derived from the method annotated with @JsonValue.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_FLATTENED_ENUMS_FROM_JSON_VALUE

boolean

true

Corresponds to JacksonOption.FLATTENED_ENUMS_FROM_JSONPROPERTY.

If enabled, the schema for an enum will be derived from @JsonProperty annotations on the enum’s constants.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_FLATTENED_ENUMS_FROM_JSON_PROPERTY

boolean

false

Corresponds to JacksonOption.INCLUDE_ONLY_JSONPROPERTY_ANNOTATED_METHODS.

If enabled, only methods explicitly annotated with @JsonProperty will be included in the schema.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_INCLUDE_ONLY_JSON_PROPERTY_ANNOTATED_METHODS

boolean

false

Corresponds to JacksonOption.IGNORE_PROPERTY_NAMING_STRATEGY.

If enabled, any configured PropertyNamingStrategy (e.g., snake_case) will be ignored, and field names from the Java class will be used directly.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_IGNORE_PROPERTY_NAMING_STRATEGY

boolean

false

Corresponds to JacksonOption.ALWAYS_REF_SUBTYPES.

If enabled, subtypes in a polymorphic hierarchy will always be represented by a $ref to a definition, rather than being inlined.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_ALWAYS_REF_SUBTYPES

boolean

false

Corresponds to JacksonOption.INLINE_TRANSFORMED_SUBTYPES.

A specialized option for handling subtypes that have been transformed.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_INLINE_TRANSFORMED_SUBTYPES

boolean

false

Corresponds to JacksonOption.SKIP_SUBTYPE_LOOKUP.

If enabled, subtype resolution via @JsonSubTypes will be disabled entirely.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_SKIP_SUBTYPE_LOOKUP

boolean

false

Corresponds to JacksonOption.IGNORE_TYPE_INFO_TRANSFORM.

If enabled, the transformation of the schema based on a @JsonTypeInfo annotation will be skipped.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_IGNORE_TYPE_INFO_TRANSFORM

boolean

false

Corresponds to JacksonOption.JSONIDENTITY_REFERENCE_ALWAYS_AS_ID.

If enabled, properties referencing an object that has an ID (via @JsonIdentityInfo) will be represented as a simple ID field, rather than a $ref.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JACKSON_JSON_IDENTITY_REFERENCE_ALWAYS_AS_ID

boolean

false

Whether to use the SchemaGenerator’s Jakarta Validation Module. If this module is not present as a dependency, this module won’t be enabled.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JAKARTA_VALIDATION_ENABLED

boolean

true

Corresponds to JakartaValidationOption.NOT_NULLABLE_FIELD_IS_REQUIRED.

If enabled, a field annotated with a "not-nullable" constraint (e.g., @NotNull, @NotEmpty, @NotBlank) will be marked as "required" in the generated schema.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JAKARTA_VALIDATION_NOT_NULLABLE_FIELD_IS_REQUIRED

boolean

true

Corresponds to JakartaValidationOption.NOT_NULLABLE_METHOD_IS_REQUIRED.

If enabled, a method (typically a getter) annotated with a "not-nullable" constraint (e.g., @NotNull, @NotEmpty, @NotBlank) will be marked as "required" in the generated schema.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JAKARTA_VALIDATION_NOT_NULLABLE_METHOD_IS_REQUIRED

boolean

true

Corresponds to JakartaValidationOption.PREFER_IDN_EMAIL_FORMAT.

If enabled, for properties annotated with @Email, the schema will use the "idn-email" format instead of the standard "email" format.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JAKARTA_VALIDATION_PREFER_IDN_EMAIL_FORMAT

boolean

false

Corresponds to JakartaValidationOption.INCLUDE_PATTERN_EXPRESSIONS.

If enabled, for properties annotated with @Pattern, the regular expression will be included in the schema as a "pattern" attribute.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_JAKARTA_VALIDATION_INCLUDE_PATTERN_EXPRESSIONS

boolean

true

Whether to use the SchemaGenerator’s Swagger 2 Module. If this module is not present as a dependency, this module won’t be enabled.

Environment variable: QUARKUS_MCP_SERVER_SCHEMA_GENERATOR_SWAGGER2_ENABLED

boolean

true

The strategy used when server features, such as tools, prompts, and resources, reference an non-existent server name.

Environment variable: QUARKUS_MCP_SERVER_INVALID_SERVER_NAME_STRATEGY

fail, ignore

fail

quarkus.mcp.server."server-name".tools.name-max-length

Maximum length of a tool name.

Environment variable: QUARKUS_MCP_SERVER_TOOLS_NAME_MAX_LENGTH

int

quarkus.mcp.server."server-name".server-info.name

The name of the server is included in the response to an initialize request.

By default, the value of the quarkus.application.name config property is used.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_NAME

string

quarkus.mcp.server."server-name".server-info.version

The version of the server is included in the response to an initialize request.

By default, the value of the quarkus.application.version config property is used.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_VERSION

string

quarkus.mcp.server."server-name".server-info.title

The human-readable name of the server is included in the response to an initialize request.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_TITLE

string

quarkus.mcp.server."server-name".server-info.icons.src

The URI pointing to an icon resource.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_ICONS_SRC

string

required

quarkus.mcp.server."server-name".server-info.icons.mime-type

The mime type.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_ICONS_MIME_TYPE

string

quarkus.mcp.server."server-name".server-info.icons.sizes

The list of sizes in WxH format.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_ICONS_SIZES

list of string

required

quarkus.mcp.server."server-name".server-info.icons.theme

The theme.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_ICONS_THEME

light, dark

quarkus.mcp.server."server-name".server-info.description

The human-readable description of the server.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_DESCRIPTION

string

quarkus.mcp.server."server-name".server-info.website-url

The URL of the website for this implementation.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_WEBSITE_URL

URL

quarkus.mcp.server."server-name".server-info.instructions

The instructions describing how to use the server and its features. These are hints for the clients.

Environment variable: QUARKUS_MCP_SERVER_SERVER_INFO_INSTRUCTIONS

string

quarkus.mcp.server."server-name".traffic-logging.enabled

If set to true then JSON messages received/sent are logged.

Environment variable: QUARKUS_MCP_SERVER_TRAFFIC_LOGGING_ENABLED

boolean

false

quarkus.mcp.server."server-name".traffic-logging.text-limit

The number of characters of a text message which will be logged if traffic logging is enabled.

Environment variable: QUARKUS_MCP_SERVER_TRAFFIC_LOGGING_TEXT_LIMIT

int

200

quarkus.mcp.server."server-name".client-logging.default-level

The default log level.

Environment variable: QUARKUS_MCP_SERVER_CLIENT_LOGGING_DEFAULT_LEVEL

debug, info, notice, warning, error, critical, alert, emergency

info

quarkus.mcp.server."server-name".auto-ping-interval

The interval after which, when set, the server sends a ping message to the connected client automatically.

Ping messages are not sent automatically by default.

Environment variable: QUARKUS_MCP_SERVER_AUTO_PING_INTERVAL

Duration 

quarkus.mcp.server."server-name".resources.page-size

If the number of resources exceeds the page size then pagination is enabled and the given page size is used. The pagination is disabled if set to a value less or equal to zero.

Environment variable: QUARKUS_MCP_SERVER_RESOURCES_PAGE_SIZE

int

50

quarkus.mcp.server."server-name".resource-templates.page-size

If the number of resource templates exceeds the page size then pagination is enabled and the given page size is used. The pagination is disabled if set to a value less or equal to zero.

Environment variable: QUARKUS_MCP_SERVER_RESOURCE_TEMPLATES_PAGE_SIZE

int

50

quarkus.mcp.server."server-name".tools.page-size

If the number of tools exceeds the page size then pagination is enabled and the given page size is used. The pagination is disabled if set to a value less or equal to zero.

Environment variable: QUARKUS_MCP_SERVER_TOOLS_PAGE_SIZE

int

50

quarkus.mcp.server."server-name".tools.structured-content.compatibility-mode

If set to true and a tool returns a structured content but no other content then the serialized JSON is also automatically set as a TextContent for backwards compatibility.

Environment variable: QUARKUS_MCP_SERVER_TOOLS_STRUCTURED_CONTENT_COMPATIBILITY_MODE

boolean

false

quarkus.mcp.server."server-name".tools.input-validation-error

The strategy used for input validation errors.

Environment variable: QUARKUS_MCP_SERVER_TOOLS_INPUT_VALIDATION_ERROR

protocol, tool

tool

quarkus.mcp.server."server-name".prompts.page-size

If the number of prompts exceeds the page size then pagination is enabled and the given page size is used. The pagination is disabled if set to a value less or equal to zero.

Environment variable: QUARKUS_MCP_SERVER_PROMPTS_PAGE_SIZE

int

50

quarkus.mcp.server."server-name".sampling.default-timeout

The default timeout for a sampling request. Negative and zero durations imply no timeout.

Environment variable: QUARKUS_MCP_SERVER_SAMPLING_DEFAULT_TIMEOUT

Duration 

60S

quarkus.mcp.server."server-name".roots.default-timeout

The default timeout to list roots. Negative and zero durations imply no timeout.

Environment variable: QUARKUS_MCP_SERVER_ROOTS_DEFAULT_TIMEOUT

Duration 

60S

quarkus.mcp.server."server-name".elicitation.default-timeout

The default timeout for an elicitation request. Negative and zero durations imply no timeout.

Environment variable: QUARKUS_MCP_SERVER_ELICITATION_DEFAULT_TIMEOUT

Duration 

60S

quarkus.mcp.server."server-name".dev-mode.dummy-init

If set to true then if an MCP client attempts to reconnect an SSE connection but does not reinitialize properly, the server will perform a "dummy" initialization; capability negotiation and protocol version agreement is skipped.

Environment variable: QUARKUS_MCP_SERVER_DEV_MODE_DUMMY_INIT

boolean

true

quarkus.mcp.server."server-name".connection-idle-timeout

The amount of time that a connection can be inactive. The connection might be automatically closed when the timeout expires. Negative and zero durations imply no timeout.

The stdio transport disables this timeout by default.

Environment variable: QUARKUS_MCP_SERVER_CONNECTION_IDLE_TIMEOUT

Duration 

30M

quarkus.mcp.server."server-name".metrics.enabled

If collection of metrics is enabled when the Micrometer extension is present.

Environment variable: QUARKUS_MCP_SERVER_METRICS_ENABLED

boolean

false

About the Duration format

To write duration values, use the standard java.time.Duration format. See the Duration#parse() Java API documentation for more information.

You can also use a simplified format, starting with a number:

  • If the value is only a number, it represents time in seconds.

  • If the value is a number followed by ms, it represents time in milliseconds.

In other cases, the simplified format is translated to the java.time.Duration format for parsing:

  • If the value is a number followed by h, m, or s, it is prefixed with PT.

  • If the value is a number followed by d, it is prefixed with P.

STDIO Transport

Configuration property fixed at build time - All other configuration properties are overridable at runtime

Configuration property

Type

Default

Flag to specify whether the MCP server should be automatically initialized. This can be useful in case where the MCP server should be conditionally started. For example: from a CLI that provides multiple commands including one for starting the MCP server.

Environment variable: QUARKUS_MCP_SERVER_STDIO_INITIALIZATION_ENABLED

boolean

true

If set to false then the stdio transport is completely disabled, i.e. the application does not read/write messages from/to the standard input/output.

Keep in mind that console logging is still automatically redirected to the standard error. You will need to set the quarkus.log.console.stderr to false to suppress this behavior.

Environment variable: QUARKUS_MCP_SERVER_STDIO_ENABLED

boolean

true

If set to true then the standard output stream is set to "null" when the app is started.

Environment variable: QUARKUS_MCP_SERVER_STDIO_NULL_SYSTEM_OUT

boolean

true

HTTP Transport

Configuration property fixed at build time - All other configuration properties are overridable at runtime

Configuration property

Type

Default

quarkus.mcp.server."server-name".http.root-path

The MCP endpoint (as defined in the specification 2025-03-26) is exposed at {rootPath}. By default, it’s /mcp.

The SSE endpoint (as defined in the specification 2024-11-05) is exposed at {rootPath}/sse. By default, it’s /mcp/sse.

Environment variable: QUARKUS_MCP_SERVER_HTTP_ROOT_PATH

string

/mcp

quarkus.mcp.server."server-name".http.message-endpoint.include-query-params

If set to true then the query params from the initial HTTP request should be included in the message endpoint.

Environment variable: QUARKUS_MCP_SERVER_HTTP_MESSAGE_ENDPOINT_INCLUDE_QUERY_PARAMS

boolean

false

quarkus.mcp.server."server-name".http.streamable.dummy-init

If set to true then the server performs a dummy initialization when the first message from the client is not initialize. A new MCP session is created for each request. The capability negotiation and protocol version agreement is completely skipped, so the dummy client supports no capabilities.

Dummy initialization can be used to simulate stateless communication. However, it’s not efficient and some features may not work properly.

This config property will be deprecated once the stateless mode is codified in the MCP specification.

Environment variable: QUARKUS_MCP_SERVER_HTTP_STREAMABLE_DUMMY_INIT

boolean

false

WebSocket Transport

Configuration property fixed at build time - All other configuration properties are overridable at runtime

Configuration property

Type

Default

quarkus.mcp.server."server-name".websocket.endpoint-path

The WebSocket MCP endpoint is exposed at {endpointPath}. By default, it’s /mcp/ws.

Environment variable: QUARKUS_MCP_SERVER_WEBSOCKET_ENDPOINT_PATH

string

/mcp/ws