Skip to content

Configuration reference

Roslyn Workbench accepts command-line options and equivalent environment variables. A command-line scalar takes precedence over its environment variable; when a scalar option appears more than once, the last value wins. Invalid values fall back to the documented default and are reported as StartupConfigurationFallback warnings.

Command-line option Environment variable Default Meaning
--plugin-directory ROSLYN_WORKBENCH_MCP_PLUGIN_DIRECTORY None Adds plugin search roots. The option is repeatable; the environment value uses the platform path separator. Command-line and environment roots are combined and deduplicated.
--default-max-results ROSLYN_WORKBENCH_MCP_DEFAULT_MAX_RESULTS 100 Positive Host compatibility baseline for third-party tools that have not established a curated request default.
--code-action-reference-lifetime ROSLYN_WORKBENCH_MCP_CODE_ACTION_REFERENCE_LIFETIME 00:05:00 Positive invariant-culture TimeSpan controlling discovered Code Action reference lifetime, up to 1.00:00:00 (24 hours).
--workspace-query-cache-size-limit ROSLYN_WORKBENCH_MCP_WORKSPACE_QUERY_CACHE_SIZE_LIMIT 10000 Workspace query-result capacity in Host-calculated retained-result units; supported range 5000100000.
--plugin-query-cache-entry-limit ROSLYN_WORKBENCH_MCP_PLUGIN_QUERY_CACHE_ENTRY_LIMIT 10000 Plugin query-result capacity in entries; supported range 750050000.
--code-action-reference-cache-size-limit ROSLYN_WORKBENCH_MCP_CODE_ACTION_REFERENCE_CACHE_SIZE_LIMIT 75000 Replayable Code Action recipe capacity in retained-recipe units; supported range 40000250000.
--workspace-query-cache-sliding-expiration ROSLYN_WORKBENCH_MCP_WORKSPACE_QUERY_CACHE_SLIDING_EXPIRATION 01:00:00 Positive invariant-culture TimeSpan for idle Workspace query-result expiry, up to 24 hours.
--plugin-query-cache-sliding-expiration ROSLYN_WORKBENCH_MCP_PLUGIN_QUERY_CACHE_SLIDING_EXPIRATION 01:00:00 Positive invariant-culture TimeSpan for idle plugin query-result expiry, up to 24 hours.
--max-transaction-revisions ROSLYN_WORKBENCH_MCP_MAX_TRANSACTION_REVISIONS 20 Positive maximum number of retained staged transaction revisions.
--max-concurrent-queries ROSLYN_WORKBENCH_MCP_MAX_CONCURRENT_QUERIES 2 Positive maximum number of concurrent query leases.
--tool-output-schema-mode ROSLYN_WORKBENCH_MCP_TOOL_OUTPUT_SCHEMA_MODE Omit Omit keeps tools/list compact; Full publishes generated family-specific output schemas.
--state-directory ROSLYN_WORKBENCH_MCP_STATE_DIRECTORY Per-user application state directory Absolute or relative writable location for Host state and durable commit-recovery records. The directory must not be a symbolic link or reparse point; on Unix it must use owner-only 0700 permissions.
--error-reporting-consent None prompt Exact case-sensitive never, prompt or always. never and always must be supplied explicitly on the command line; the similarly named environment variable is ignored and reported as a fallback warning. Invalid input fails closed to never.
--error-record-capacity ROSLYN_WORKBENCH_MCP_ERROR_RECORD_CAPACITY 100 Temporary correlated local error records; supported range 101000.
--error-record-lifetime ROSLYN_WORKBENCH_MCP_ERROR_RECORD_LIFETIME 01:00:00 Absolute local error-record lifetime, up to 24 hours.
--error-record-max-bytes ROSLYN_WORKBENCH_MCP_ERROR_RECORD_MAX_BYTES 65536 Maximum captured local record size; supported range 16384262144 bytes.
--error-submission-capacity ROSLYN_WORKBENCH_MCP_ERROR_SUBMISSION_CAPACITY 50 Temporary prepared-submission records; supported range 5500.
--error-submission-lifetime ROSLYN_WORKBENCH_MCP_ERROR_SUBMISSION_LIFETIME 00:30:00 Absolute prepared-submission lifetime, up to four hours.
--error-report-max-bytes ROSLYN_WORKBENCH_MCP_ERROR_REPORT_MAX_BYTES 65536 Maximum canonical external payload size; supported range 8192262144 bytes.

At startup, the Host verifies that the recovery directory supports exclusive file creation, durable writes and deletion. Startup fails with an actionable configuration error if the selected state directory cannot support recovery data; commit retains its own validation because filesystem permissions and availability can change while the Host is running.

server-status with detail: Full reports the effective agent-relevant non-sensitive configuration and all startup fallback warnings. Its error-reporting projection includes only the built-in provider name, configured consent mode and effective configured consent state: Disabled for never, PromptRequired for prompt or AlwaysApproved for always. It never exposes the application-owned DSN or public submission key. Cache settings, plugin directories and the state-directory path are not included in that public configuration projection.

The Host includes its external error-report provider as application configuration. With consent set to never, the Host retains local correlated diagnostics but does not publish preparation or submission tools. always bypasses a consent prompt only: it never creates background traffic, and callers must still prepare, review and explicitly submit each report. See Error reporting and privacy for the complete workflow and data boundary.

Code Action references are temporary, process-local and snapshot-bound. Increasing their lifetime does not make them portable across server restarts or Workspace revisions; follow the Code Action workflow and rediscover when directed.

The default state directory is %LOCALAPPDATA%\roslyn-workbench-mcp\state on Windows, $XDG_STATE_HOME/roslyn-workbench-mcp on Linux when XDG_STATE_HOME is an absolute path, ~/.local/state/roslyn-workbench-mcp on Linux otherwise, and ~/Library/Application Support/roslyn-workbench-mcp/state on macOS. Unix state directories are created with 0700 permissions and recovery files with 0600; Windows state inherits the current user's local-application-data access controls.

The plugin set is discovered once during startup. Adding, removing or upgrading a plugin package requires a server restart.