# ArtMCP - Arthur Danjou's MCP 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. ๐Ÿ”— **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... ## ๐Ÿ—๏ธ 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: - `GET /api/skills` - `GET /api/experiences` - `GET /api/projects` - `GET /api/education` - `GET /api/languages` - `GET /api/profile` - `GET /api/hobbies` - `GET /api/contact` - `GET /api/uses` - `GET /api/activity` - `GET /api/wakatime` - `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: ``` content/ โ”œโ”€โ”€ skills.json # Technical skills โ”œโ”€โ”€ languages.json # Spoken languages โ”œโ”€โ”€ 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` 2. Or use the API directly via REST endpoints Example MCP client configuration: ```json { "mcpServers": { "artmcp": { "url": "https://api.arthurdanjou.fr/mcp" } } } ``` ## ๐Ÿค Contributing This is a personal portfolio project. Feel free to use it as inspiration for your own MCP server! ## ๐Ÿ“ License Private project - All rights reserved ## ๐Ÿ‘ค About **Arthur Danjou** - Data Science & Applied AI student at Paris Dauphine-PSL University, passionate about machine learning and mathematical modelling - ๐Ÿ“ Paris, France - ๐Ÿ”— [LinkedIn](https://go.arthurdanjou.fr/linkedin) - ๐Ÿ™ [GitHub](https://go.arthurdanjou.fr/github) - ๐Ÿ“ง [Email](https://go.arthurdanjou.fr/mail-pro) --- Built with โค๏ธ using Nuxt and the Model Context Protocol