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:
2025-12-19 16:48:42 +01:00
parent 30dedc2768
commit 33651945b8
27 changed files with 79 additions and 947 deletions

View File

@@ -36,11 +36,6 @@
"icon": "i-ph:globe-duotone",
"value": "https://arthurdanjou.fr"
},
{
"name": "MCP Server",
"icon": "i-ph:globe-duotone",
"value": "https://api.arthurdanjou.fr/mcp"
},
{
"name": "Status Page",
"icon": "i-ph:fire-duotone",

View File

@@ -1,126 +1,31 @@
---
slug: artmcp
title: 🤖 ArtMcp
description: A comprehensive Model Context Protocol (MCP) server exposing professional profile information about Arthur Danjou.
slug: artapi
title: 🤖 ArtAPI
description: Arthur Danjou's Professional API Server providing REST endpoints for portfolio data.
publishedAt: 2025/10/27
readingTime: 3
favorite: true
tags:
- web
- nuxt
- mcp
- chat
---
🤖 [ArtMcp](https://github.com/arthurdanjou/artmcp) - Arthur Danjou's MCP Server
🤖 [ArtAPI](https://github.com/arthurdanjou/artapi) - Arthur Danjou's Professional API Server
A comprehensive [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server exposing professional profile information about Arthur Danjou. Built with [Nuxt](https://nuxt.com) and deployed on [NuxtHub](https://hub.nuxt.com) at the Edge.
**ArtAPI** is a professional API server built with Nuxt 4 and Nitro, providing REST endpoints for Arthur Danjou's portfolio data. It serves as a backend for various applications, including AI assistants, personal projects, and integrations.
🔗 **Live Server**: https://api.arthurdanjou.fr/mcp
## 🎯 Features
### MCP Resources
The server exposes the following resources through the Model Context Protocol:
- **📊 Skills** (`resource://artmcp/skills`) - Complete list of technical skills (programming languages, frameworks, tools)
- **💼 Experiences** (`resource://artmcp/experiences`) - Professional work experience and projects
- **🚀 Projects** (`resource://artmcp/projects`) - Portfolio of personal and professional projects
- **🎓 Education** (`resource://artmcp/education`) - Academic background and degrees
- **🌐 Languages** (`resource://artmcp/languages`) - Spoken languages with proficiency levels
- **👤 Profile** (`resource://artmcp/profile`) - Comprehensive profile with bio, location, availability, career goals, and work preferences
- **🎨 Hobbies** (`resource://artmcp/hobbies`) - Personal interests and activities
- **📞 Contact** (`resource://artmcp/contact`) - Professional contact information and social links
- **🛠️ Uses** (`resource://artmcp/uses`) - Tools, hardware, and software setup
### MCP Tools
- **`activity`** - Real-time current activity and status of Arthur Danjou
- **`resume-link`** - Get download link for resume in English or French
- **`stats`** - Detailed coding statistics and analytics from WakaTime
- **`status-page`** - Real-time status and uptime monitoring for homelab infrastructure
- **`uses-by-category`** - Filter uses by category (homelab, ide, hardware, software)
- **`weather`** - Get current weather for a city
### MCP Prompts
Pre-configured prompts for common queries about:
- Resume generation
- Skills and expertise
- Projects showcase
- Real-time activity
- Contact information
- And more...
🔗 **Live Server**: https://api.arthurdanjou.fr/api
## 🏗️ Architecture
This project uses:
- **Nuxt 4** with Nitro for server-side rendering
- **@nuxt/content** for content management
- **@nuxtjs/mcp-toolkit** for MCP server implementation
- **NuxtHub** for edge deployment on Cloudflare Workers
- **nuxt-studio** for content management studio
- **Zod** for schema validation
## 🚀 Getting Started
### Prerequisites
- Node.js 18+ or Bun
- pnpm 10.12.1+
### Installation
```bash
# Install dependencies
pnpm install
```
### Environment Variables
Create a `.env` file (optional):
```bash
# Discord integration (optional)
NUXT_DISCORD_USER_ID=""
NUXT_DISCORD_ID=""
NUXT_DISCORD_TOKEN=""
# Wakatime integration (optional)
NUXT_WAKATIME_USER_ID=""
NUXT_WAKATIME_CODING=""
NUXT_WAKATIME_EDITORS=""
NUXT_WAKATIME_LANGUAGES=""
NUXT_WAKATIME_OS=""
# Status page (optional)
NUXT_STATUS_PAGE=""
```
### Development
Start the development server on `http://localhost:3000`:
```bash
pnpm dev
```
### Production
Build the application for production:
```bash
pnpm build
```
### Deployment
Deploy to NuxtHub/Cloudflare:
```bash
pnpm deploy
```
## 📚 API Endpoints
All resources are also available as REST API endpoints:
@@ -139,20 +44,6 @@ All resources are also available as REST API endpoints:
- `GET /api/status-page`
- `GET /api/resumes/{en|fr}` - Download resume
## 🧪 Development
### Linting
```bash
pnpm lint
```
### Type Checking
```bash
npx tsc --noEmit --skipLibCheck
```
## 📂 Content Structure
Content is managed in the `content/` directory:
@@ -164,40 +55,12 @@ content/
├── profile.md # Comprehensive profile info
├── contact.json # Contact information
├── hobbies.md # Personal interests
├── documentation.md # MCP documentation
├── experiences/*.md # Work experiences
├── projects/*.md # Project portfolio
├── education/*.md # Academic background
└── uses/*.md # Tools and setup
```
## 🔧 Technologies
- **Frontend/Backend**: Nuxt 4, Vue 3, Nitro
- **MCP**: @nuxtjs/mcp-toolkit
- **Content**: Nuxt Content with better-sqlite3
- **Content Studio**: nuxt-studio
- **Deployment**: Cloudflare Workers via NuxtHub
- **Validation**: Zod schemas
## 📖 MCP Integration
To use this server with an MCP client:
1. Configure your MCP client to connect to `https://api.arthurdanjou.fr/mcp/mcp`
2. Or use the API directly via REST endpoints
Example MCP client configuration:
```json
{
"mcpServers": {
"artmcp": {
"url": "https://api.arthurdanjou.fr/mcp/mcp"
}
}
}
```
## 🤝 Contributing
This is a personal portfolio project. Feel free to use it as inspiration for your own MCP server!