McpPluginToolAttribute had been updated, not it supports optional new inputs. Adding them below:
/// <summary>
/// If true, the tool only reads or queries data and does not modify system state.
/// When not set, null is passed to the MCP SDK, which will apply its own default.
/// </summary>
public bool ReadOnlyHint
{
get => _readOnlyHint;
set { _readOnlyHint = value; _readOnlyHintSet = true; }
}
/// <summary>
/// If true, the tool may perform destructive updates (e.g., deleting data, overwriting files).
/// When not set, null is passed to the MCP SDK, which will apply its own default.
/// </summary>
public bool DestructiveHint
{
get => _destructiveHint;
set { _destructiveHint = value; _destructiveHintSet = true; }
}
/// <summary>
/// If true, calling the tool multiple times with the same arguments will have no additional effect
/// on its environment beyond the first call.
/// When not set, null is passed to the MCP SDK, which will apply its own default.
/// </summary>
public bool IdempotentHint
{
get => _idempotentHint;
set { _idempotentHint = value; _idempotentHintSet = true; }
}
/// <summary>
/// If true, the tool may interact with an "open world" of external entities
/// (e.g., the web, external APIs, or real-world systems).
/// When not set, null is passed to the MCP SDK, which will apply its own default.
/// </summary>
public bool OpenWorldHint
{
get => _openWorldHint;
set { _openWorldHint = value; _openWorldHintSet = true; }
}
You need to go through all MCP tools in the project and to read their descriptions above to analyze what they are doing. Based on that information you need to set the true value to needed arguments. If you are not sure about some value, leave it default, don't set it. Let it to apply it's own default in that case.
McpPluginToolAttributehad been updated, not it supports optional new inputs. Adding them below:You need to go through all MCP tools in the project and to read their descriptions above to analyze what they are doing. Based on that information you need to set the
truevalue to needed arguments. If you are not sure about some value, leave it default, don't set it. Let it to apply it's own default in that case.