@@ -57,7 +57,7 @@ export async function initializeTools(agent: EpicMeMCP) {
5757 } ,
5858 )
5959
60- agent . server . registerTool (
60+ const getEntryTool = agent . server . registerTool (
6161 'get_entry' ,
6262 {
6363 title : 'Get Entry' ,
@@ -82,7 +82,7 @@ export async function initializeTools(agent: EpicMeMCP) {
8282 } ,
8383 )
8484
85- agent . server . registerTool (
85+ const listEntriesTool = agent . server . registerTool (
8686 'list_entries' ,
8787 {
8888 title : 'List Entries' ,
@@ -104,7 +104,7 @@ export async function initializeTools(agent: EpicMeMCP) {
104104 } ,
105105 )
106106
107- agent . server . registerTool (
107+ const updateEntryTool = agent . server . registerTool (
108108 'update_entry' ,
109109 {
110110 title : 'Update Entry' ,
@@ -134,7 +134,7 @@ export async function initializeTools(agent: EpicMeMCP) {
134134 } ,
135135 )
136136
137- agent . server . registerTool (
137+ const deleteEntryTool = agent . server . registerTool (
138138 'delete_entry' ,
139139 {
140140 title : 'Delete Entry' ,
@@ -211,7 +211,7 @@ export async function initializeTools(agent: EpicMeMCP) {
211211 } ,
212212 )
213213
214- agent . server . registerTool (
214+ const getTagTool = agent . server . registerTool (
215215 'get_tag' ,
216216 {
217217 title : 'Get Tag' ,
@@ -236,7 +236,7 @@ export async function initializeTools(agent: EpicMeMCP) {
236236 } ,
237237 )
238238
239- agent . server . registerTool (
239+ const listTagsTool = agent . server . registerTool (
240240 'list_tags' ,
241241 {
242242 title : 'List Tags' ,
@@ -255,7 +255,7 @@ export async function initializeTools(agent: EpicMeMCP) {
255255 } ,
256256 )
257257
258- agent . server . registerTool (
258+ const updateTagTool = agent . server . registerTool (
259259 'update_tag' ,
260260 {
261261 title : 'Update Tag' ,
@@ -282,7 +282,7 @@ export async function initializeTools(agent: EpicMeMCP) {
282282 } ,
283283 )
284284
285- agent . server . registerTool (
285+ const deleteTagTool = agent . server . registerTool (
286286 'delete_tag' ,
287287 {
288288 title : 'Delete Tag' ,
@@ -333,7 +333,7 @@ export async function initializeTools(agent: EpicMeMCP) {
333333 } ,
334334 )
335335
336- agent . server . registerTool (
336+ const addTagToEntryTool = agent . server . registerTool (
337337 'add_tag_to_entry' ,
338338 {
339339 title : 'Add Tag to Entry' ,
@@ -371,7 +371,7 @@ export async function initializeTools(agent: EpicMeMCP) {
371371 } ,
372372 )
373373
374- agent . server . registerTool (
374+ const createWrappedVideoTool = agent . server . registerTool (
375375 'create_wrapped_video' ,
376376 {
377377 title : 'Create Wrapped Video' ,
@@ -437,6 +437,44 @@ export async function initializeTools(agent: EpicMeMCP) {
437437 }
438438 } ,
439439 )
440+
441+ async function updateTools ( ) {
442+ const entries = await agent . db . getEntries ( )
443+ if ( entries . length > 0 ) {
444+ if ( ! deleteEntryTool . enabled ) deleteEntryTool . enable ( )
445+ if ( ! updateEntryTool . enabled ) updateEntryTool . enable ( )
446+ if ( ! listEntriesTool . enabled ) listEntriesTool . enable ( )
447+ if ( ! getEntryTool . enabled ) getEntryTool . enable ( )
448+ if ( ! createWrappedVideoTool . enabled ) createWrappedVideoTool . enable ( )
449+ } else {
450+ if ( deleteEntryTool . enabled ) deleteEntryTool . disable ( )
451+ if ( updateEntryTool . enabled ) updateEntryTool . disable ( )
452+ if ( listEntriesTool . enabled ) listEntriesTool . disable ( )
453+ if ( getEntryTool . enabled ) getEntryTool . disable ( )
454+ if ( createWrappedVideoTool . enabled ) createWrappedVideoTool . disable ( )
455+ }
456+
457+ const tags = await agent . db . getTags ( )
458+ if ( tags . length > 0 ) {
459+ if ( ! deleteTagTool . enabled ) deleteTagTool . enable ( )
460+ if ( ! updateTagTool . enabled ) updateTagTool . enable ( )
461+ if ( ! listTagsTool . enabled ) listTagsTool . enable ( )
462+ if ( ! getTagTool . enabled ) getTagTool . enable ( )
463+ } else {
464+ if ( deleteTagTool . enabled ) deleteTagTool . disable ( )
465+ if ( updateTagTool . enabled ) updateTagTool . disable ( )
466+ if ( listTagsTool . enabled ) listTagsTool . disable ( )
467+ if ( getTagTool . enabled ) getTagTool . disable ( )
468+ }
469+
470+ if ( entries . length > 0 && tags . length > 0 ) {
471+ if ( ! addTagToEntryTool . enabled ) addTagToEntryTool . enable ( )
472+ } else {
473+ if ( addTagToEntryTool . enabled ) addTagToEntryTool . disable ( )
474+ }
475+ }
476+ agent . db . subscribe ( updateTools )
477+ await updateTools ( )
440478}
441479
442480function createTextContent ( text : unknown ) : CallToolResult [ 'content' ] [ number ] {
0 commit comments