You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Surface skill staleness, self-introspection, and skill-in-instructions (#28)
Addresses four pieces of Claude Desktop feedback:
* Skill freshness detection: capture a fingerprint (SHA-256 over sorted
tool+prompt names) and the downstream RemoteVersion when update_skill
is called, then compare against the live surface area on every
list_services / get_service_details to emit
skillFreshness=fresh|stale|unknown plus skillRecordedVersion and
skillRecordedAt. Skill docs are operator-authored, so the aggregator
detects rather than auto-rewrites drift.
* Aggregator self-introspection: populate remoteName / remoteTitle /
remoteVersion on the aggregator's own row in list_services from the
configured McpServerOptions.ServerInfo, instead of leaving them null.
* Skill in initialize handshake: read data/skills/{SelfName}.md at
server startup and append it (capped at 16KB) to
McpServerOptions.ServerInstructions, so MCP clients get aggregator
orientation during the initialize handshake without needing to know
to call get_service_skill.
* refresh_service semantics: tighten the tool description to spell out
that it clears the cached connection, ServerInfo, tools, and prompts,
and that it does NOT modify the skill document (admin-authored via
update_skill).
Copy file name to clipboardExpand all lines: src/McpAggregator.Core/Tools/ConsumerTools.cs
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -79,7 +79,7 @@ public static async Task<string> GetPrompt(
79
79
}
80
80
81
81
[McpServerTool(Name="refresh_service")]
82
-
[Description("Drop the cached metadata and connection for a registered MCP server, forcing a fresh reconnect and metadata reload on the next use. Use this after a downstream server has been updated.")]
82
+
[Description("Drop the cached connection, ServerInfo, tool list, and prompt list for a registered MCP server so the next call re-fetches them from the downstream. Does NOT touch the skill document — that is admin-authored via update_skill. Use this after a downstream server has been upgraded or restarted.")]
83
83
publicstaticasyncTask<string>RefreshService(
84
84
ToolIndextoolIndex,
85
85
ConnectionManagerconnectionManager,
@@ -88,7 +88,7 @@ public static async Task<string> RefreshService(
return$"Cache and connection cleared for '{serverName}'. Metadata will be reloaded on next use.";
91
+
return$"Cleared cached connection, ServerInfo, tools, and prompts for '{serverName}'. Skill document was not modified. Metadata will be reloaded on next use.";
0 commit comments