Refocus README on API with MCP as a component

Co-authored-by: ArthurDanjou <29738535+ArthurDanjou@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-12-16 18:03:46 +00:00
parent b2b5f3ba94
commit ecd420e511

300
README.md
View File

@@ -1,89 +1,106 @@
# ArtMCP - Arthur Danjou's MCP Server
# ArtAPI - Arthur Danjou's Portfolio API
[![Nuxt](https://img.shields.io/badge/Nuxt-4.2.2-00DC82?logo=nuxt.js&logoColor=white)](https://nuxt.com)
![License](https://img.shields.io/badge/License-Private-red.svg)
[![Deployment](https://img.shields.io/badge/Deployed%20on-Cloudflare-F38020?logo=cloudflare&logoColor=white)](https://www.cloudflare.com/)
[![MCP](https://img.shields.io/badge/Protocol-MCP-blue)](https://modelcontextprotocol.io)
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.
A comprehensive REST API exposing professional profile information about Arthur Danjou. Built with [Nuxt](https://nuxt.com) and deployed on [NuxtHub](https://hub.nuxt.com) at the Edge. The API powers Arthur's portfolio and includes a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server component for AI assistant integration.
🔗 **Live Server**: https://api.arthurdanjou.fr/mcp
🔗 **Base URL**: https://api.arthurdanjou.fr
📚 **Documentation**: https://api.arthurdanjou.fr/docs
🤖 **MCP Server**: https://api.arthurdanjou.fr/mcp
---
## 📋 Table of Contents
- [What is ArtMCP?](#-what-is-artmcp)
- [Features](#-features)
- [Architecture](#-architecture)
- [Getting Started](#-getting-started)
- [What is ArtAPI?](#-what-is-artapi)
- [API Endpoints](#-api-endpoints)
- [MCP Integration](#-mcp-integration)
- [Getting Started](#-getting-started)
- [Architecture](#-architecture)
- [MCP Server Component](#-mcp-server-component)
- [Development](#-development)
- [Content Structure](#-content-structure)
- [Technologies](#-technologies)
- [Troubleshooting & FAQ](#-troubleshooting--faq)
- [Contributing](#-contributing)
- [License](#-license)
- [About](#-about)
---
## 💡 What is ArtMCP?
## 💡 What is ArtAPI?
ArtMCP is a **Model Context Protocol (MCP) server** that provides AI assistants and applications with structured, real-time access to professional information about Arthur Danjou. Instead of manually updating information across multiple platforms, this server acts as a single source of truth that can be queried by AI assistants, chatbots, or any application supporting MCP.
ArtAPI is a **comprehensive REST API** that serves as the backend for Arthur Danjou's portfolio. It provides structured access to professional information including skills, experiences, projects, education, and real-time activity data. The API is designed to power portfolio websites, applications, and integrations.
**Key Features:**
- 📊 **Portfolio Data**: Complete professional profile, skills, experiences, and projects
- 🎓 **Education & Background**: Academic history and achievements
-**Real-time Data**: Current activity status and coding statistics via integrations
- 📄 **Resume Access**: Download resumes in multiple languages
- 🤖 **MCP Integration**: Optional Model Context Protocol server for AI assistant access
- 🌐 **RESTful Design**: Clean, well-documented API endpoints
**Use Cases:**
- 🤖 Enable AI assistants to answer questions about Arthur's experience and skills
- 📄 Automatically generate customized resumes and cover letters
- 📊 Display real-time coding statistics and activity status
- 🔍 Query specific information (projects, education, contact details) programmatically
- 🌐 Integrate professional data into portfolios, websites, or applications
- 🌐 Power portfolio websites and applications
- 📱 Build mobile apps showcasing professional information
- 🤖 Enable AI assistants to answer questions about Arthur's experience
- 📊 Display real-time coding statistics and activity dashboards
- 🔍 Query specific information programmatically for integrations
## 🎯 Features
## 📚 API Endpoints
### MCP Resources
All API endpoints are available at the base URL: `https://api.arthurdanjou.fr`
The server exposes the following resources through the Model Context Protocol:
### Profile & Information
- `GET /api/profile` - Comprehensive profile with bio, location, availability, career goals
- `GET /api/contact` - Professional contact information and social links
- `GET /api/skills` - Complete list of technical skills (programming languages, frameworks, tools)
- `GET /api/languages` - Spoken languages with proficiency levels
- `GET /api/hobbies` - Personal interests and activities
- **📊 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
### Professional Experience
- `GET /api/experiences` - Professional work experience and projects
- `GET /api/projects` - Portfolio of personal and professional projects
- `GET /api/education` - Academic background and degrees
### MCP Tools
### Real-time Data
- `GET /api/activity` - Current activity and status (Discord integration)
- `GET /api/wakatime` - Detailed coding statistics and analytics from WakaTime
- `GET /api/status-page` - Homelab infrastructure status and uptime monitoring
- **`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
### Tools & Resources
- `GET /api/uses` - Tools, hardware, and software setup
- `GET /api/resumes/{en|fr}` - Download resume in English or French
### MCP Prompts
### Example Usage
Pre-configured prompts for common queries about:
- Resume generation
- Skills and expertise
- Projects showcase
- Real-time activity
- Contact information
- And more...
```bash
# Get profile information
curl https://api.arthurdanjou.fr/api/profile
## 🏗️ Architecture
# Get technical skills
curl https://api.arthurdanjou.fr/api/skills
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
# Get current activity
curl https://api.arthurdanjou.fr/api/activity
# Download English resume
curl -O https://api.arthurdanjou.fr/api/resumes/en
```
### Example Response
```json
{
"name": "Arthur Danjou",
"title": "Data Science & Applied AI Student",
"location": "Paris, France",
"availability": "Available for final-year internship (April 2026)",
"bio": "Rigorous, curious, and motivated...",
...
}
```
## 🚀 Getting Started
@@ -167,57 +184,100 @@ pnpm deploy
> **Note:** Make sure you have proper Cloudflare credentials configured. Run `wrangler login` to authenticate if this is your first deployment.
## 📚 API Endpoints
## 🏗️ Architecture
All resources are also available as REST API endpoints. Base URL: `https://api.arthurdanjou.fr`
ArtAPI is built with modern web technologies and follows a serverless architecture:
### Profile & Info
- `GET /api/profile` - Comprehensive profile with bio, location, availability, career goals
- `GET /api/contact` - Professional contact information and social links
- `GET /api/skills` - Complete list of technical skills
- `GET /api/languages` - Spoken languages with proficiency levels
- `GET /api/hobbies` - Personal interests and activities
**Core Stack:**
- **Nuxt 4** - Full-stack framework with Nitro for server-side rendering and API routes
- **Vue 3** - Frontend framework (for documentation pages)
- **Cloudflare Workers** - Edge deployment via NuxtHub for global low-latency access
- **TypeScript** - Type-safe development
### Professional Experience
- `GET /api/experiences` - Professional work experience and projects
- `GET /api/projects` - Portfolio of personal and professional projects
- `GET /api/education` - Academic background and degrees
**Data & Content:**
- **Nuxt Content** - Content management with markdown and JSON files
- **better-sqlite3** - SQLite database for content queries
- **Zod** - Schema validation for API responses
### Real-time Data
- `GET /api/activity` - Current activity and status (Discord integration)
- `GET /api/wakatime` - Detailed coding statistics and analytics
- `GET /api/status-page` - Homelab infrastructure status and uptime
**Additional Features:**
- **@nuxtjs/mcp-toolkit** - Model Context Protocol server implementation
- **nuxt-studio** - Content management studio interface
- **Discord/WakaTime APIs** - Real-time integrations for activity and stats
### Tools & Resources
- `GET /api/uses` - Tools, hardware, and software setup
- `GET /api/resumes/{en|fr}` - Download resume in English or French
**Architecture Benefits:**
- **Fast**: Edge deployment on Cloudflare's global network
- 🔒 **Type-safe**: Full TypeScript coverage
- 📝 **Content-first**: Easy to update via markdown/JSON files
- 🌐 **Multi-protocol**: REST API + MCP server in one package
- 🚀 **Scalable**: Serverless architecture with automatic scaling
### Example Request
## 🤖 MCP Server Component
```bash
# Get profile information
curl https://api.arthurdanjou.fr/api/profile
In addition to the REST API, ArtAPI includes a **Model Context Protocol (MCP) server** component that enables AI assistants and MCP-compatible applications to access the same data through the MCP protocol.
# Get technical skills
curl https://api.arthurdanjou.fr/api/skills
**MCP Endpoint**: `https://api.arthurdanjou.fr/mcp`
# Download English resume
curl -O https://api.arthurdanjou.fr/api/resumes/en
### Why MCP?
The MCP server allows AI assistants (like Claude Desktop, Cline, etc.) to directly query Arthur's professional information, making it easy to:
- Answer questions about experience and skills
- Generate customized resumes and cover letters
- Access real-time activity and coding statistics
- Query specific information through natural language
### MCP Resources
The MCP server exposes all API data as resources:
- **📊 Skills** (`resource://artmcp/skills`) - Technical skills and tools
- **💼 Experiences** (`resource://artmcp/experiences`) - Work experience
- **🚀 Projects** (`resource://artmcp/projects`) - Project portfolio
- **🎓 Education** (`resource://artmcp/education`) - Academic background
- **🌐 Languages** (`resource://artmcp/languages`) - Spoken languages
- **👤 Profile** (`resource://artmcp/profile`) - Complete profile
- **🎨 Hobbies** (`resource://artmcp/hobbies`) - Personal interests
- **📞 Contact** (`resource://artmcp/contact`) - Contact information
- **🛠️ Uses** (`resource://artmcp/uses`) - Tech stack and tools
### MCP Tools
Dynamic tools for AI assistants:
- **`activity`** - Get current real-time activity status
- **`resume-link`** - Get resume download link (English/French)
- **`stats`** - Retrieve WakaTime coding statistics
- **`status-page`** - Check homelab infrastructure status
- **`uses-by-category`** - Filter tools by category
- **`weather`** - Get weather for a city
### Connecting via MCP
**Option 1: Direct URL**
```
https://api.arthurdanjou.fr/mcp
```
### Example Response
**Option 2: Configuration File**
Add to your MCP client configuration:
```json
{
"name": "Arthur Danjou",
"title": "Data Science & Applied AI Student",
"location": "Paris, France",
"availability": "Available for final-year internship (April 2026)",
"bio": "Rigorous, curious, and motivated...",
...
"mcpServers": {
"artapi": {
"url": "https://api.arthurdanjou.fr/mcp"
}
}
}
```
**Usage Examples:**
```
"Show me Arthur's technical skills"
"What is Arthur currently working on?"
"Get Arthur's resume in French"
```
## 🧪 Development
### Linting
@@ -273,76 +333,6 @@ content/
└── 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
### Connecting to ArtMCP
To use this server with an MCP-compatible client:
**Option 1: Direct URL Connection**
```
https://api.arthurdanjou.fr/mcp
```
**Option 2: Configuration File**
Add to your MCP client configuration (e.g., Claude Desktop, Cline, etc.):
```json
{
"mcpServers": {
"artmcp": {
"url": "https://api.arthurdanjou.fr/mcp"
}
}
}
```
### Using MCP Features
Once connected, your AI assistant can:
**Query Resources:**
```
"Show me Arthur's technical skills"
"What projects has Arthur worked on?"
"Get Arthur's contact information"
```
**Call Tools:**
```
"What is Arthur currently working on?" → Uses activity tool
"Show Arthur's coding statistics" → Uses stats tool
"Get Arthur's resume in French" → Uses resume-link tool
```
**Use Prompts:**
```
Pre-configured prompts guide the AI on how to query specific information
about skills, experiences, projects, and more.
```
### Testing the Connection
You can test the MCP endpoint is working:
```bash
# Test MCP server availability
curl https://api.arthurdanjou.fr/mcp
# Or visit in browser (redirects to /docs)
open https://api.arthurdanjou.fr/mcp
```
## ❓ Troubleshooting & FAQ
### Common Issues