diff --git a/nuxt.config.ts b/nuxt.config.ts index 7fe433a..d25b43d 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -18,6 +18,7 @@ export default defineNuxtConfig({ id: '', token: '' }, + statusPage: '', wakatime: { userId: '', coding: '', diff --git a/server/api/status_page.get.ts b/server/api/status_page.get.ts new file mode 100644 index 0000000..5defefe --- /dev/null +++ b/server/api/status_page.get.ts @@ -0,0 +1,4 @@ +export default defineEventHandler(async (event) => { + const { statusPage } = useRuntimeConfig(event) + return await $fetch(statusPage) +}) diff --git a/server/routes/mcp.ts b/server/routes/mcp.ts index a6d6325..86beee8 100644 --- a/server/routes/mcp.ts +++ b/server/routes/mcp.ts @@ -180,6 +180,25 @@ function createServer() { } ) + server.registerResource( + 'artmcp-status_page', + 'resource://artmcp/status_page', + { + title: 'ArtMCP Status Page', + description: 'Get Status Page Activity of Arthur Danjou\'s Homelab including uptime and incidents, powered by UptimeKuma' + }, + async (uri) => { + const result = await $fetch('/api/status_page') + return { + contents: [{ + uri: uri.href, + mimeType: 'application/json', + text: JSON.stringify(result, null, 2) + }] + } + } + ) + // Tools server.registerTool( 'get_resume_link', @@ -358,7 +377,7 @@ function createServer() { ) server.registerPrompt( - 'get_uses_by_category', + 'artmcp-get_uses_by_category', { title: 'Get Uses by Category', description: 'Retrieves uses Arthur Danjou uses filtered by a specific category.', @@ -382,6 +401,25 @@ function createServer() { } ) + server.registerPrompt( + 'artmcp-status_page', + { + title: 'Get Status Page Activity of Arthur Danjou\'s Homelab', + description: 'Get Status Page Activity of Arthur Danjou\'s Homelab including uptime and incidents, powered by UptimeKuma' + }, + async () => { + return { + messages: [{ + role: 'user', + content: { + type: 'text', + text: `Provide me the status page activity of Arthur Danjou's homelab, including uptime and incidents.` + } + }] + } + } + ) + return server }