Skip to content

Commit 87c01d8

Browse files
committed
Tighten MCP safety metadata wording
1 parent 6a4a27e commit 87c01d8

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

src/ServiceControl.AcceptanceTests.RavenDB/ApprovalFiles/When_mcp_server_is_enabled.Should_list_primary_instance_tools.approved.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
},
2727
{
2828
"name": "archive_failed_messages",
29-
"description": "Use this tool to dismiss multiple failed messages at once that do not need to be retried. This operation changes system state. Good for questions like: \u0027archive these messages\u0027, \u0027dismiss these failures\u0027, or \u0027archive messages msg-1, msg-2, msg-3\u0027. Prefer ArchiveFailureGroup when all messages share the same failure cause \u2014 use this tool when you have a specific set of message IDs to archive.",
29+
"description": "Use this tool to dismiss multiple failed messages at once that do not need to be retried. This operation changes system state. It may affect many messages. Good for questions like: \u0027archive these messages\u0027, \u0027dismiss these failures\u0027, or \u0027archive messages msg-1, msg-2, msg-3\u0027. Prefer ArchiveFailureGroup when all messages share the same failure cause \u2014 use this tool when you have a specific set of message IDs to archive.",
3030
"inputSchema": {
3131
"type": "object",
3232
"properties": {
@@ -54,7 +54,7 @@
5454
},
5555
{
5656
"name": "archive_failure_group",
57-
"description": "Use this tool to dismiss an entire failure group \u2014 all messages that failed with the same exception type and stack trace. This operation changes system state. Good for questions like: \u0027archive this failure group\u0027, \u0027dismiss all NullReferenceException failures\u0027, or \u0027archive the whole group\u0027. This is the most efficient way to archive many related failures at once. You need a group ID, which you can get from GetFailureGroups. Returns InProgress if an archive operation is already running for this group.",
57+
"description": "Use this tool to dismiss an entire failure group \u2014 all messages that failed with the same exception type and stack trace. This operation changes system state. It may affect many messages. Good for questions like: \u0027archive this failure group\u0027, \u0027dismiss all NullReferenceException failures\u0027, or \u0027archive the whole group\u0027. This is the most efficient way to archive many related failures at once. You need a failure group ID, which you can get from GetFailureGroups. Returns InProgress if an archive operation is already running for this group.",
5858
"inputSchema": {
5959
"type": "object",
6060
"properties": {
@@ -317,7 +317,7 @@
317317
},
318318
{
319319
"name": "retry_all_failed_messages",
320-
"description": "Use this tool to retry every unresolved failed message across all queues and endpoints. This operation changes system state. Good for questions like: \u0027retry everything\u0027, \u0027reprocess all failures\u0027, or \u0027retry all failed messages\u0027. It affects all unresolved failed messages across the instance. This is a broad operation \u2014 prefer RetryFailedMessagesByQueue, RetryAllFailedMessagesByEndpoint, or RetryFailureGroup when you can scope the retry more narrowly.",
320+
"description": "Use this tool to retry every unresolved failed message across all queues and endpoints. This operation changes system state. It may affect many messages. Good for questions like: \u0027retry everything\u0027, \u0027reprocess all failures\u0027, or \u0027retry all failed messages\u0027. It affects all unresolved failed messages across the instance. This is a broad operation \u2014 prefer RetryFailedMessagesByQueue, RetryAllFailedMessagesByEndpoint, or RetryFailureGroup when you can scope the retry more narrowly.",
321321
"inputSchema": {
322322
"type": "object",
323323
"properties": {}
@@ -334,7 +334,7 @@
334334
},
335335
{
336336
"name": "retry_all_failed_messages_by_endpoint",
337-
"description": "Use this tool to retry all failed messages for a specific NServiceBus endpoint. This operation changes system state. Good for questions like: \u0027retry all failures in the Sales endpoint\u0027, \u0027the bug in Shipping is fixed, retry its failures\u0027, or \u0027reprocess all errors for this endpoint\u0027. Useful when a bug in one endpoint has been fixed and all its failures should be reprocessed.",
337+
"description": "Use this tool to retry all failed messages for a specific NServiceBus endpoint. This operation changes system state. It may affect many messages. Good for questions like: \u0027retry all failures in the Sales endpoint\u0027, \u0027the bug in Shipping is fixed, retry its failures\u0027, or \u0027reprocess all errors for this endpoint\u0027. Useful when a bug in one endpoint has been fixed and all its failures should be reprocessed.",
338338
"inputSchema": {
339339
"type": "object",
340340
"properties": {
@@ -384,7 +384,7 @@
384384
},
385385
{
386386
"name": "retry_failed_messages",
387-
"description": "Use this tool to reprocess multiple specific failed messages at once. This operation changes system state. Good for questions like: \u0027retry these messages\u0027, \u0027reprocess messages msg-1, msg-2, msg-3\u0027, or \u0027retry this batch\u0027. Prefer RetryFailureGroup when all messages share the same failure cause \u2014 use this tool when you have a specific set of message IDs to retry.",
387+
"description": "Use this tool to reprocess multiple specific failed messages at once. This operation changes system state. It may affect many messages. Good for questions like: \u0027retry these messages\u0027, \u0027reprocess messages msg-1, msg-2, msg-3\u0027, or \u0027retry this batch\u0027. Prefer RetryFailureGroup when all messages share the same failure cause \u2014 use this tool when you have a specific set of message IDs to retry.",
388388
"inputSchema": {
389389
"type": "object",
390390
"properties": {
@@ -412,7 +412,7 @@
412412
},
413413
{
414414
"name": "retry_failed_messages_by_queue",
415-
"description": "Use this tool to retry all unresolved failed messages from a specific queue. This operation changes system state. Good for questions like: \u0027retry all failures in the Sales queue\u0027, \u0027reprocess everything from this queue\u0027, or \u0027the queue consumer is back, retry its failures\u0027. Useful when a queue\u0027s consumer was down or misconfigured and is now fixed. Only retries messages with unresolved status.",
415+
"description": "Use this tool to retry all unresolved failed messages from a specific queue. This operation changes system state. It may affect many messages. Good for questions like: \u0027retry all failures in the Sales queue\u0027, \u0027reprocess everything from this queue\u0027, or \u0027the queue consumer is back, retry its failures\u0027. Useful when a queue\u0027s consumer was down or misconfigured and is now fixed. Only retries messages with unresolved status.",
416416
"inputSchema": {
417417
"type": "object",
418418
"properties": {
@@ -437,7 +437,7 @@
437437
},
438438
{
439439
"name": "retry_failure_group",
440-
"description": "Use this tool to retry all failed messages that share the same exception type and stack trace. This operation changes system state. Good for questions like: \u0027retry this failure group\u0027, \u0027the bug causing these NullReferenceExceptions is fixed, retry them\u0027, or \u0027retry all messages in this group\u0027. This is the most targeted way to retry related failures after fixing a specific bug. You need a group ID, which you can get from GetFailureGroups. Returns InProgress if a retry is already running for this group.",
440+
"description": "Use this tool to retry all failed messages that share the same exception type and stack trace. This operation changes system state. It may affect many messages. Good for questions like: \u0027retry this failure group\u0027, \u0027the bug causing these NullReferenceExceptions is fixed, retry them\u0027, or \u0027retry all messages in this group\u0027. This is the most targeted way to retry related failures after fixing a specific bug. You need a failure group ID, which you can get from GetFailureGroups. Returns InProgress if a retry is already running for this group.",
441441
"inputSchema": {
442442
"type": "object",
443443
"properties": {
@@ -487,7 +487,7 @@
487487
},
488488
{
489489
"name": "unarchive_failed_messages",
490-
"description": "Use this tool to restore multiple previously archived failed messages back to the unresolved list. This operation changes system state. Good for questions like: \u0027unarchive these messages\u0027, \u0027restore these failures\u0027, or \u0027unarchive messages msg-1, msg-2, msg-3\u0027. Prefer UnarchiveFailureGroup when restoring an entire group \u2014 use this tool when you have a specific set of message IDs.",
490+
"description": "Use this tool to restore multiple previously archived failed messages back to the unresolved list. This operation changes system state. It may affect many messages. Good for questions like: \u0027unarchive these messages\u0027, \u0027restore these failures\u0027, or \u0027unarchive messages msg-1, msg-2, msg-3\u0027. Prefer UnarchiveFailureGroup when restoring an entire group \u2014 use this tool when you have a specific set of message IDs.",
491491
"inputSchema": {
492492
"type": "object",
493493
"properties": {
@@ -515,7 +515,7 @@
515515
},
516516
{
517517
"name": "unarchive_failure_group",
518-
"description": "Use this tool to restore an entire archived failure group back to the unresolved list. This operation changes system state. Good for questions like: \u0027unarchive this failure group\u0027, \u0027restore all archived NullReferenceException failures\u0027, or \u0027unarchive the whole group\u0027. All messages that were archived together under this group will become available for retry again. You need a group ID, which you can get from GetFailureGroups. Returns InProgress if an unarchive operation is already running for this group.",
518+
"description": "Use this tool to restore an entire archived failure group back to the unresolved list. This operation changes system state. It may affect many messages. Good for questions like: \u0027unarchive this failure group\u0027, \u0027restore all archived NullReferenceException failures\u0027, or \u0027unarchive the whole group\u0027. All messages that were archived together under this group will become available for retry again. You need a failure group ID, which you can get from GetFailureGroups. Returns InProgress if an unarchive operation is already running for this group.",
519519
"inputSchema": {
520520
"type": "object",
521521
"properties": {

src/ServiceControl/Mcp/ArchiveTools.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public async Task<string> ArchiveFailedMessage(
4343
[McpServerTool(ReadOnly = false, Idempotent = false, Destructive = true, OpenWorld = false), Description(
4444
"Use this tool to dismiss multiple failed messages at once that do not need to be retried. " +
4545
"This operation changes system state. " +
46+
"It may affect many messages. " +
4647
"Good for questions like: 'archive these messages', 'dismiss these failures', or 'archive messages msg-1, msg-2, msg-3'. " +
4748
"Prefer ArchiveFailureGroup when all messages share the same failure cause — use this tool when you have a specific set of message IDs to archive."
4849
)]
@@ -67,9 +68,10 @@ public async Task<string> ArchiveFailedMessages(
6768
[McpServerTool(ReadOnly = false, Idempotent = false, Destructive = true, OpenWorld = false), Description(
6869
"Use this tool to dismiss an entire failure group — all messages that failed with the same exception type and stack trace. " +
6970
"This operation changes system state. " +
71+
"It may affect many messages. " +
7072
"Good for questions like: 'archive this failure group', 'dismiss all NullReferenceException failures', or 'archive the whole group'. " +
7173
"This is the most efficient way to archive many related failures at once. " +
72-
"You need a group ID, which you can get from GetFailureGroups. " +
74+
"You need a failure group ID, which you can get from GetFailureGroups. " +
7375
"Returns InProgress if an archive operation is already running for this group."
7476
)]
7577
public async Task<string> ArchiveFailureGroup(
@@ -108,6 +110,7 @@ public async Task<string> UnarchiveFailedMessage(
108110
[McpServerTool(ReadOnly = false, Idempotent = false, Destructive = true, OpenWorld = false), Description(
109111
"Use this tool to restore multiple previously archived failed messages back to the unresolved list. " +
110112
"This operation changes system state. " +
113+
"It may affect many messages. " +
111114
"Good for questions like: 'unarchive these messages', 'restore these failures', or 'unarchive messages msg-1, msg-2, msg-3'. " +
112115
"Prefer UnarchiveFailureGroup when restoring an entire group — use this tool when you have a specific set of message IDs."
113116
)]
@@ -129,9 +132,10 @@ public async Task<string> UnarchiveFailedMessages(
129132
[McpServerTool(ReadOnly = false, Idempotent = false, Destructive = true, OpenWorld = false), Description(
130133
"Use this tool to restore an entire archived failure group back to the unresolved list. " +
131134
"This operation changes system state. " +
135+
"It may affect many messages. " +
132136
"Good for questions like: 'unarchive this failure group', 'restore all archived NullReferenceException failures', or 'unarchive the whole group'. " +
133137
"All messages that were archived together under this group will become available for retry again. " +
134-
"You need a group ID, which you can get from GetFailureGroups. " +
138+
"You need a failure group ID, which you can get from GetFailureGroups. " +
135139
"Returns InProgress if an unarchive operation is already running for this group."
136140
)]
137141
public async Task<string> UnarchiveFailureGroup(

0 commit comments

Comments
 (0)