mirror of
https://github.com/ArthurDanjou/artmcp.git
synced 2026-01-14 16:44:23 +01:00
refactor: transition from MCP to REST API for portfolio data
- Removed MCP server integration and related components from index.vue and contact.json. - Updated project documentation to reflect the new ArtAPI server, including changes to project metadata and descriptions. - Eliminated MCP toolkit dependencies from nuxt.config.ts and package.json. - Introduced new REST API endpoints for chat prompts, replacing previous MCP prompts. - Deleted obsolete MCP resources and prompts, streamlining the codebase for a more focused API approach.
This commit is contained in:
71
server/api/chat/prompts.get.ts
Normal file
71
server/api/chat/prompts.get.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
interface Prompt {
|
||||
title: string
|
||||
description: string
|
||||
text: string
|
||||
}
|
||||
|
||||
export default defineCachedEventHandler(async () => {
|
||||
const prompts: Prompt[] = [
|
||||
{
|
||||
title: 'Real-time Activity Status',
|
||||
description: 'Generates a prompt to retrieve Arthur Danjou\'s current real-time activity status, including what he is currently working on.',
|
||||
text: `Provide me the realtime activity of Arthur Danjou.`
|
||||
},
|
||||
{
|
||||
title: 'Contact Information and Social Links',
|
||||
description: 'Generates a prompt to retrieve Arthur Danjou\'s contact information and social media links, including email, LinkedIn, GitHub, Twitter, Discord, and personal websites.',
|
||||
text: `How can I contact Arthur Danjou? Provide all contact methods and social links.`
|
||||
},
|
||||
{
|
||||
title: 'Hobbies and Interests',
|
||||
description: 'Generates a prompt to retrieve information about Arthur Danjou\'s personal hobbies, interests, and passions outside of professional work.',
|
||||
text: `What are the hobbies, interests and passions of Arthur Danjou?`
|
||||
},
|
||||
{
|
||||
title: 'Languages and Proficiency Levels',
|
||||
description: 'Generates a prompt to retrieve the languages spoken by Arthur Danjou along with detailed proficiency levels for each language.',
|
||||
text: `What languages does Arthur Danjou speak and at what proficiency level?`
|
||||
},
|
||||
{
|
||||
title: 'Comprehensive Professional Profile',
|
||||
description: 'Generates a prompt to retrieve comprehensive professional profile information about Arthur Danjou, including biography, location, availability status, career goals, and work preferences.',
|
||||
text: `Provide me comprehensive profile information about Arthur Danjou including his bio, location, availability, career goals, and work preferences.`
|
||||
},
|
||||
{
|
||||
description: 'Generates a prompt to retrieve a comprehensive list of personal and professional projects developed by Arthur Danjou, showcasing his technical skills and achievements.',
|
||||
title: 'Projects',
|
||||
text: `Provide me a list of projects done by Arthur Danjou.`
|
||||
},
|
||||
{
|
||||
description: 'Generates a prompt to request and retrieve Arthur Danjou\'s professional resume in the specified language (English or French).',
|
||||
title: 'Resume',
|
||||
text: `Provide me the link to download Arthur Danjou's resume in {lang}.`
|
||||
},
|
||||
{
|
||||
description: 'Generates a prompt to retrieve a comprehensive list of technical skills, programming languages, frameworks, and tools mastered by Arthur Danjou.',
|
||||
title: 'Skills',
|
||||
text: `Provide me a list of skills that Arthur Danjou masters.`
|
||||
},
|
||||
{
|
||||
description: 'Generates a prompt to retrieve Arthur Danjou\'s detailed coding statistics and analytics powered by WakaTime, including programming languages, time spent coding, and productivity metrics.',
|
||||
title: 'Stats',
|
||||
text: `Provide me the stats of Arthur Danjou powered by Wakatime.`
|
||||
},
|
||||
{
|
||||
description: 'Generates a prompt to retrieve the real-time status page of Arthur Danjou\'s homelab infrastructure, including uptime monitoring and incident reports powered by UptimeKuma.',
|
||||
title: 'Status Page Activity',
|
||||
text: `Provide me the status page activity of Arthur Danjou's homelab, including uptime and incidents.`
|
||||
},
|
||||
{
|
||||
description: 'Generates a prompt to retrieve tools, software, and hardware used by Arthur Danjou, filtered by a specific category (homelab, IDE, hardware, or software).',
|
||||
title: 'Uses by Category',
|
||||
text: `Provide me the tools, software, and hardware used by Arthur Danjou in the category of {categoryName}.`
|
||||
}
|
||||
]
|
||||
|
||||
return prompts
|
||||
},
|
||||
{
|
||||
maxAge: 60 * 60 * 24, // 24 hours
|
||||
name: 'chat-prompts'
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve Arthur Danjou\'s current real-time activity status, including what he is currently working on.',
|
||||
handler: async () => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `Provide me the realtime activity of Arthur Danjou.`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve Arthur Danjou\'s contact information and social media links, including email, LinkedIn, GitHub, Twitter, Discord, and personal websites.',
|
||||
handler: async () => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `How can I contact Arthur Danjou? Provide all contact methods and social links.`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve information about Arthur Danjou\'s personal hobbies, interests, and passions outside of professional work.',
|
||||
handler: async () => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `What are the hobbies, interests and passions of Arthur Danjou?`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve the languages spoken by Arthur Danjou along with detailed proficiency levels for each language.',
|
||||
handler: async () => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `What languages does Arthur Danjou speak and at what proficiency level?`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve comprehensive professional profile information about Arthur Danjou, including biography, location, availability status, career goals, and work preferences.',
|
||||
handler: async () => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `Provide me comprehensive profile information about Arthur Danjou including his bio, location, availability, career goals, and work preferences.`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve a comprehensive list of personal and professional projects developed by Arthur Danjou, showcasing his technical skills and achievements.',
|
||||
handler: async () => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `Provide me a list of projects done by Arthur Danjou.`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,19 +0,0 @@
|
||||
import { z } from 'zod'
|
||||
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to request and retrieve Arthur Danjou\'s professional resume in the specified language (English or French).',
|
||||
inputSchema: {
|
||||
lang: z.enum(['en', 'fr']).describe('The language for the resume: \'en\' for English or \'fr\' for French.')
|
||||
},
|
||||
handler: async ({ lang }) => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `Provide me the link to download Arthur Danjou's resume in ${lang === 'en' ? 'English' : 'French'}.`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve a comprehensive list of technical skills, programming languages, frameworks, and tools mastered by Arthur Danjou.',
|
||||
handler: async () => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `Provide me a list of skills that Arthur Danjou masters.`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve Arthur Danjou\'s detailed coding statistics and analytics powered by WakaTime, including programming languages, time spent coding, and productivity metrics.',
|
||||
handler: async () => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `Provide me the stats of Arthur Danjou powered by Wakatime.`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve the real-time status page of Arthur Danjou\'s homelab infrastructure, including uptime monitoring and incident reports powered by UptimeKuma.',
|
||||
handler: async () => {
|
||||
return {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `Provide me the status page activity of Arthur Danjou's homelab, including uptime and incidents.`
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,20 +0,0 @@
|
||||
import { z } from 'zod'
|
||||
|
||||
export default defineMcpPrompt({
|
||||
description: 'Generates a prompt to retrieve tools, software, and hardware used by Arthur Danjou, filtered by a specific category (homelab, IDE, hardware, or software).',
|
||||
inputSchema: {
|
||||
categoryName: z.enum(['homelab', 'ide', 'hardware', 'software']).describe('The category to filter by: \'homelab\', \'ide\', \'hardware\', or \'software\'.')
|
||||
},
|
||||
handler: async ({ categoryName }) => {
|
||||
return {
|
||||
messages: [
|
||||
{
|
||||
role: 'user',
|
||||
content: {
|
||||
type: 'text',
|
||||
text: `How can I view the setup of Arthur for this category : ${categoryName}?`
|
||||
}
|
||||
}
|
||||
] }
|
||||
}
|
||||
})
|
||||
@@ -1,17 +0,0 @@
|
||||
export default defineMcpResource({
|
||||
title: 'Arthur Danjou - Contact Information & Social Media Links',
|
||||
description: 'Contact information and social media links for Arthur Danjou, including email, LinkedIn, GitHub, Twitter, Discord, and personal websites',
|
||||
uri: 'resource://artmcp/contact',
|
||||
cache: '1 hour',
|
||||
handler: async (uri: URL) => {
|
||||
const result = await $fetch('/api/contact')
|
||||
|
||||
return {
|
||||
contents: [{
|
||||
uri: uri.toString(),
|
||||
mimeType: 'text/json',
|
||||
text: JSON.stringify(result, null, 2)
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,17 +0,0 @@
|
||||
export default defineMcpResource({
|
||||
title: 'Arthur Danjou - Education & Academic Background',
|
||||
description: 'Arthur Danjou\'s educational background, including degrees, institutions, and academic achievements',
|
||||
uri: 'resource://artmcp/education',
|
||||
cache: '1 hour',
|
||||
handler: async (uri: URL) => {
|
||||
const result = await $fetch('/api/education')
|
||||
|
||||
return {
|
||||
contents: [{
|
||||
uri: uri.toString(),
|
||||
mimeType: 'text/json',
|
||||
text: JSON.stringify(result)
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,17 +0,0 @@
|
||||
export default defineMcpResource({
|
||||
title: 'Arthur Danjou - Experiences',
|
||||
description: 'A detailed list of Arthur Danjou\'s professional work experiences, including roles, companies, and responsibilities',
|
||||
uri: 'resource://artmcp/experiences',
|
||||
cache: '1 hour',
|
||||
handler: async (uri: URL) => {
|
||||
const result = await $fetch('/api/experiences')
|
||||
|
||||
return {
|
||||
contents: [{
|
||||
uri: uri.toString(),
|
||||
mimeType: 'text/json',
|
||||
text: JSON.stringify(result)
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,17 +0,0 @@
|
||||
export default defineMcpResource({
|
||||
title: 'Arthur Danjou - Hobbies & Interests',
|
||||
description: 'Arthur Danjou\'s personal hobbies, interests, and passions outside of professional work',
|
||||
uri: 'resource://artmcp/hobbies',
|
||||
cache: '1 hour',
|
||||
handler: async (uri: URL) => {
|
||||
const result = await $fetch('/api/hobbies')
|
||||
|
||||
return {
|
||||
contents: [{
|
||||
uri: uri.toString(),
|
||||
mimeType: 'text/json',
|
||||
text: JSON.stringify(result, null, 2)
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,17 +0,0 @@
|
||||
export default defineMcpResource({
|
||||
title: 'Arthur Danjou - Spoken Languages & Proficiency Levels',
|
||||
description: 'Languages spoken by Arthur Danjou with detailed proficiency levels for each language',
|
||||
uri: 'resource://artmcp/languages',
|
||||
cache: '1 hour',
|
||||
handler: async (uri: URL) => {
|
||||
const result = await $fetch('/api/languages')
|
||||
|
||||
return {
|
||||
contents: [{
|
||||
uri: uri.toString(),
|
||||
mimeType: 'text/json',
|
||||
text: JSON.stringify(result, null, 2)
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,17 +0,0 @@
|
||||
export default defineMcpResource({
|
||||
title: 'Arthur Danjou - Professional Profile',
|
||||
description: 'Comprehensive professional profile of Arthur Danjou, including biography, location, availability status, career goals, and work preferences',
|
||||
uri: 'resource://artmcp/profile',
|
||||
cache: '1 hour',
|
||||
handler: async (uri: URL) => {
|
||||
const result = await $fetch('/api/profile')
|
||||
|
||||
return {
|
||||
contents: [{
|
||||
uri: uri.toString(),
|
||||
mimeType: 'text/json',
|
||||
text: JSON.stringify(result)
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,17 +0,0 @@
|
||||
export default defineMcpResource({
|
||||
title: 'Arthur Danjou - Projects Portfolio',
|
||||
description: 'A comprehensive collection of projects developed by Arthur Danjou, showcasing technical skills and achievements',
|
||||
uri: 'resource://artmcp/projects',
|
||||
cache: '1 hour',
|
||||
handler: async (uri: URL) => {
|
||||
const result = await $fetch('/api/projects')
|
||||
|
||||
return {
|
||||
contents: [{
|
||||
uri: uri.toString(),
|
||||
mimeType: 'text/json',
|
||||
text: JSON.stringify(result)
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,17 +0,0 @@
|
||||
export default defineMcpResource({
|
||||
title: 'Arthur Danjou - Skills',
|
||||
description: 'A comprehensive list of technical skills, programming languages, frameworks, and tools mastered by Arthur Danjou',
|
||||
cache: '1 hour',
|
||||
uri: 'resource://artmcp/skills',
|
||||
handler: async (uri: URL) => {
|
||||
const result = await $fetch('/api/skills')
|
||||
|
||||
return {
|
||||
contents: [{
|
||||
uri: uri.toString(),
|
||||
mimeType: 'text/json',
|
||||
text: JSON.stringify(result, null, 2)
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,17 +0,0 @@
|
||||
export default defineMcpResource({
|
||||
title: 'Arthur Danjou - Tech Stack & Tools',
|
||||
description: 'A curated list of tools, software, and hardware used by Arthur Danjou, organized by categories (homelab, IDE, hardware, software)',
|
||||
uri: 'resource://artmcp/uses',
|
||||
cache: '1 hour',
|
||||
handler: async (uri: URL) => {
|
||||
const result = await $fetch('/api/uses')
|
||||
|
||||
return {
|
||||
contents: [{
|
||||
uri: uri.toString(),
|
||||
mimeType: 'text/json',
|
||||
text: JSON.stringify(result, null, 2)
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user