11import { toRaw } from 'vue'
22import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
33import type { ResourceItem , ResourceTemplateItem , IState } from './type'
4- import type { RegisteredResource , ReadResourceCallback } from '@modelcontextprotocol/sdk/server/mcp.d.ts '
4+ import type { RegisteredResource , ReadResourceCallback } from '@modelcontextprotocol/sdk/server/mcp.js '
55import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js'
66
77const logger = console
@@ -130,6 +130,12 @@ export const removeResource = (state: IState, uri: string) => {
130130 logger . error ( 'error when remove resource' , uri , e )
131131 } finally {
132132 map . delete ( uri )
133+
134+ try {
135+ state . server ?. sendResourceListChanged ( )
136+ } catch ( e ) {
137+ logger . error ( 'error when sendResourceListChanged after removeResource' , e )
138+ }
133139 }
134140}
135141
@@ -151,15 +157,21 @@ export const updateResource = (state: IState, uri: string, updates?: UpdateResou
151157
152158 if ( Object . prototype . hasOwnProperty . call ( updates , 'uri' ) ) {
153159 const newUri = updates . uri as string | null | undefined
154- try {
155- map . delete ( uri )
156- if ( typeof newUri === 'string' && newUri ) {
160+ if ( typeof newUri === 'string' && newUri && newUri !== uri ) {
161+ try {
162+ map . delete ( uri )
157163 map . set ( newUri , inst )
164+ } catch ( e ) {
165+ logger . error ( 'error when migrate resourceInstanceMap key' , uri , '->' , newUri , e )
158166 }
159- } catch ( e ) {
160- logger . error ( 'error when migrate resourceInstanceMap key' , uri , '->' , newUri , e )
161167 }
162168 }
169+
170+ try {
171+ state . server ?. sendResourceListChanged ( )
172+ } catch ( e ) {
173+ logger . error ( 'error when sendResourceListChanged after updateResource' , e )
174+ }
163175}
164176
165177// 注册资源与资源模板
0 commit comments