Class BowireMcpOptions
- Namespace
- Kuestenlogik.Bowire.Mcp
- Assembly
- Kuestenlogik.Bowire.Mcp.dll
Tunables for BowireMcpTools. Defaults are security-first: invocation is blocked unless either the URL is on the AllowedServerUrls list or AllowArbitraryUrls is explicitly opted into. The discover, env, and record-list tools stay available regardless because they are read-only.
public sealed class BowireMcpOptions
- Inheritance
-
BowireMcpOptions
- Inherited Members
Constructors
BowireMcpOptions()
public BowireMcpOptions()
Properties
AllowArbitraryUrls
Drop the allowlist entirely. Only safe in fully sandboxed contexts (CI containers without network access to internal infrastructure). The CLI prints a banner when this is set so the user can't claim ignorance.
public bool AllowArbitraryUrls { get; set; }
Property Value
AllowedServerUrls
URLs the agent may target via bowire.invoke /
bowire.subscribe. Default-loaded from the active Bowire
environments file (~/.bowire/environments.json) when
LoadAllowlistFromEnvironments is left at its default
of true. Add additional URLs explicitly when scripting the
server outside of an interactive Bowire session.
public IList<string> AllowedServerUrls { get; }
Property Value
DefaultSubscribeMs
Default sample window for bowire.subscribe when the agent
doesn't supply one. Five seconds is enough to see typical
heartbeat / event cadences without making the agent wait.
public int DefaultSubscribeMs { get; set; }
Property Value
LoadAllowlistFromEnvironments
When true (default), seed AllowedServerUrls
from every serverUrl field in ~/.bowire/environments.json
at server start. Disable when running fully detached (e.g. CI) and
configure AllowedServerUrls manually.
public bool LoadAllowlistFromEnvironments { get; set; }
Property Value
LoadAllowlistFromTypedUrls
When true, also seed AllowedServerUrls from
the user's typed-URL history (~/.bowire/typed-urls.json).
Wider than LoadAllowlistFromEnvironments — typed
URLs include every server the user has actually pointed Bowire at,
not just the ones they've saved as named environments. Default
false: opt-in via --allow-invoke on the CLI because
it materially widens what an agent can hit.
public bool LoadAllowlistFromTypedUrls { get; set; }
Property Value
Remarks
Strictly additive — combines with AllowedServerUrls
- the environments seed; never narrows the list. Tools also gain
a
bowire.allowlist.permit(url)entry point that appends to the typed-URL file so an agent can record "the user just typed this URL into the workbench" without re-reading the file.
MaxSubscribeFrames
Cap on how many frames bowire.subscribe returns in a single
tool result, regardless of how long the agent samples. Stops a
chatty stream from blowing up the JSON-RPC response.
public int MaxSubscribeFrames { get; set; }
Property Value
MaxSubscribeMs
Cap on how long bowire.subscribe will sample a streaming
call before returning the collected frames. The agent can pass a
shorter durationMs argument; values above this cap are
clamped so a buggy agent can't pin a stream open indefinitely.
public int MaxSubscribeMs { get; set; }
Property Value
RequireConfirmationForMutations
When true (default), tools that mutate live state
(bowire.mock.start, bowire.record.start,
bowire.env.switch) require an explicit second-step
confirmation: the first call returns { pending: true, token,
plan }; the agent re-invokes with confirm: true or
passes the confirmationToken to actually execute. Read-only
tools (bowire.discover, bowire.env.list) bypass
this gate. Set false for fully-autonomous agent runs that
have a higher-level approval layer of their own.
public bool RequireConfirmationForMutations { get; set; }
Property Value
ServerName
Server-info name advertised in the MCP initialize response.
public string ServerName { get; set; }
Property Value
ServerVersion
Server-info version advertised in the MCP initialize response.
public string ServerVersion { get; set; }