# 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://mcp.arthurdanjou.fr ## ๐ŸŽฏ 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 - **๐Ÿ“ˆ Activity** (`resource://artmcp/activity`) - Real-time coding activity (Discord integration) - **โฑ๏ธ Wakatime** (`resource://artmcp/wakatime`) - Coding statistics powered by Wakatime - **๐Ÿ  Status Page** (`resource://artmcp/status_page`) - Homelab services uptime and incidents ### MCP Tools - **`get_resume_link`** - Get download link for resume in English or French - **`get_uses_by_category`** - Filter uses by category (homelab, ide, hardware, software) ### 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 - **@modelcontextprotocol/sdk** for MCP server implementation - **NuxtHub** for edge deployment on Cloudflare Workers - **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/educations` - `GET /api/languages` - `GET /api/profile` - `GET /api/hobbies` - `GET /api/contact` - `GET /api/uses` - `GET /api/uses_by_category?categoryName={category}` - `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.json # Comprehensive profile info โ”œโ”€โ”€ contact.json # Contact information โ”œโ”€โ”€ hobbies.md # Personal interests โ”œโ”€โ”€ 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**: Model Context Protocol SDK - **Content**: Nuxt Content with better-sqlite3 - **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://mcp.arthurdanjou.fr/mcp` 2. Or use the API directly via REST endpoints Example MCP client configuration: ```json { "mcpServers": { "artmcp": { "url": "https://mcp.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** - Developer enjoying Artificial Intelligence and Machine Learning. Mathematics Student at Paris Dauphine-PSL University specialised in Statistics - ๐Ÿ“ 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