mirror of
https://github.com/ArthurDanjou/artapi.git
synced 2026-01-14 16:34:22 +01:00
fix: mettre à jour les URL de l'API et ajouter la gestion des collections dans la configuration
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
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 [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
|
🔗 **Live Server**: https://api.arthurdanjou.fr/mcp
|
||||||
|
|
||||||
## 🎯 Features
|
## 🎯 Features
|
||||||
|
|
||||||
@@ -171,7 +171,7 @@ content/
|
|||||||
|
|
||||||
To use this server with an MCP client:
|
To use this server with an MCP client:
|
||||||
|
|
||||||
1. Configure your MCP client to connect to `https://mcp.arthurdanjou.fr/mcp`
|
1. Configure your MCP client to connect to `https://api.arthurdanjou.fr/mcp/mcp`
|
||||||
2. Or use the API directly via REST endpoints
|
2. Or use the API directly via REST endpoints
|
||||||
|
|
||||||
Example MCP client configuration:
|
Example MCP client configuration:
|
||||||
@@ -179,7 +179,7 @@ Example MCP client configuration:
|
|||||||
{
|
{
|
||||||
"mcpServers": {
|
"mcpServers": {
|
||||||
"artmcp": {
|
"artmcp": {
|
||||||
"url": "https://mcp.arthurdanjou.fr/mcp"
|
"url": "https://api.arthurdanjou.fr/mcp/mcp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,134 +1,19 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
const { data: documentation } = await useAsyncData('index', () =>
|
const { data: index } = await useAsyncData('index', () =>
|
||||||
queryCollection('documentation').first()
|
queryCollection('index').first()
|
||||||
)
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="documentation-page">
|
<div>
|
||||||
<ContentRenderer
|
<ContentRenderer
|
||||||
v-if="documentation"
|
v-if="index"
|
||||||
:value="documentation"
|
:value="index"
|
||||||
class="content"
|
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else
|
||||||
class="loading"
|
|
||||||
>
|
>
|
||||||
Loading documentation...
|
Loading index page...
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.documentation-page {
|
|
||||||
max-width: 800px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 2rem;
|
|
||||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
||||||
line-height: 1.6;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loading {
|
|
||||||
text-align: center;
|
|
||||||
padding: 2rem;
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(h1) {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
color: #1a1a1a;
|
|
||||||
border-bottom: 2px solid #e5e5e5;
|
|
||||||
padding-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(h2) {
|
|
||||||
font-size: 1.75rem;
|
|
||||||
margin-top: 2rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
color: #2a2a2a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(h3) {
|
|
||||||
font-size: 1.25rem;
|
|
||||||
margin-top: 1.5rem;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
color: #3a3a3a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(p) {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(hr) {
|
|
||||||
border: none;
|
|
||||||
border-top: 1px solid #e5e5e5;
|
|
||||||
margin: 2rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(code) {
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
padding: 0.2em 0.4em;
|
|
||||||
border-radius: 3px;
|
|
||||||
font-size: 0.9em;
|
|
||||||
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(pre) {
|
|
||||||
background-color: #1e1e1e;
|
|
||||||
color: #d4d4d4;
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 6px;
|
|
||||||
overflow-x: auto;
|
|
||||||
margin: 1rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(pre code) {
|
|
||||||
background-color: transparent;
|
|
||||||
padding: 0;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(ul),
|
|
||||||
.content :deep(ol) {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
padding-left: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(li) {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(a) {
|
|
||||||
color: #0066cc;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(a:hover) {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(strong) {
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
.documentation-page {
|
|
||||||
padding: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(h1) {
|
|
||||||
font-size: 1.75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(h2) {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content :deep(h3) {
|
|
||||||
font-size: 1.1rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|||||||
13
app/pages/mcp.vue
Normal file
13
app/pages/mcp.vue
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<script lang="ts" setup>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -104,9 +104,13 @@ export default defineContentConfig({
|
|||||||
type: 'data',
|
type: 'data',
|
||||||
source: 'profile.md'
|
source: 'profile.md'
|
||||||
}),
|
}),
|
||||||
documentation: defineCollection({
|
index: defineCollection({
|
||||||
type: 'page',
|
type: 'page',
|
||||||
source: 'index.md'
|
source: 'index.md'
|
||||||
|
}),
|
||||||
|
mcp: defineCollection({
|
||||||
|
type: 'page',
|
||||||
|
source: 'mcp.md'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -39,10 +39,10 @@
|
|||||||
{
|
{
|
||||||
"name": "MCP Server",
|
"name": "MCP Server",
|
||||||
"icon": "i-ph:globe-duotone",
|
"icon": "i-ph:globe-duotone",
|
||||||
"value": "https://mcp.arthurdanjou.fr"
|
"value": "https://api.arthurdanjou.fr/mcp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Status Page",
|
"name": "Status Page",
|
||||||
"icon": "i-ph:fire-duotone",
|
"icon": "i-ph:fire-duotone",
|
||||||
"value": "https://go.arthurdanjou.fr/status"
|
"value": "https://go.arthurdanjou.fr/status"
|
||||||
}
|
}
|
||||||
|
|||||||
325
content/index.md
325
content/index.md
@@ -1,195 +1,134 @@
|
|||||||
---
|
<script setup lang="ts">
|
||||||
title: ArtMCP Documentation
|
const { data: documentation } = await useAsyncData('index', () =>
|
||||||
description: Documentation for ArtMCP - Arthur Danjou's Model Context Protocol Server
|
queryCollection('documentation').first()
|
||||||
mcp: https://mcp.arthurdanjou.fr/mcp
|
)
|
||||||
---
|
</script>
|
||||||
|
|
||||||
# ArtMCP Documentation
|
<template>
|
||||||
|
<div class="documentation-page">
|
||||||
Welcome to **ArtMCP**, 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.
|
<ContentRenderer
|
||||||
|
v-if="documentation"
|
||||||
## Installation
|
:value="documentation"
|
||||||
|
class="content"
|
||||||
::install-button{:url="mcp"}
|
/>
|
||||||
::
|
<div
|
||||||
|
v-else
|
||||||
::install-button{:url="mcp" ide="vscode"}
|
class="loading"
|
||||||
::
|
>
|
||||||
|
Loading documentation...
|
||||||
## Overview
|
</div>
|
||||||
|
</div>
|
||||||
ArtMCP provides AI assistants and applications with structured access to Arthur Danjou's professional information through the Model Context Protocol. This includes profile data, skills, experiences, projects, and real-time activity information.
|
</template>
|
||||||
|
|
||||||
---
|
<style scoped>
|
||||||
|
.documentation-page {
|
||||||
## Tools
|
max-width: 800px;
|
||||||
|
margin: 0 auto;
|
||||||
Tools are executable functions that AI assistants can call to perform actions or retrieve dynamic data.
|
padding: 2rem;
|
||||||
|
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||||
### `activity`
|
line-height: 1.6;
|
||||||
|
color: #333;
|
||||||
**Description:** Real-time current activity and status of Arthur Danjou, including what he's currently working on.
|
}
|
||||||
|
|
||||||
### `resume-link`
|
.loading {
|
||||||
|
text-align: center;
|
||||||
**Description:** Retrieves a direct download link to Arthur Danjou's professional resume in the specified language.
|
padding: 2rem;
|
||||||
|
color: #666;
|
||||||
- **Input:** `lang` - The language for the resume: `'en'` for English or `'fr'` for French.
|
}
|
||||||
|
|
||||||
### `stats`
|
.content :deep(h1) {
|
||||||
|
font-size: 2.5rem;
|
||||||
**Description:** Detailed coding statistics and analytics from WakaTime, including programming languages, time spent coding, and productivity metrics.
|
margin-bottom: 1rem;
|
||||||
|
color: #1a1a1a;
|
||||||
### `status-page`
|
border-bottom: 2px solid #e5e5e5;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
**Description:** Real-time status, uptime monitoring, and incident reports for Arthur Danjou's homelab infrastructure, powered by UptimeKuma.
|
}
|
||||||
|
|
||||||
### `uses-by-category`
|
.content :deep(h2) {
|
||||||
|
font-size: 1.75rem;
|
||||||
**Description:** Retrieves a filtered list of tools, software, and hardware used by Arthur Danjou based on a specific category.
|
margin-top: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
- **Input:** `categoryName` - The category to filter by: `'homelab'`, `'ide'`, `'hardware'`, or `'software'`.
|
color: #2a2a2a;
|
||||||
|
}
|
||||||
### `weather`
|
|
||||||
|
.content :deep(h3) {
|
||||||
**Description:** Get current weather for a city.
|
font-size: 1.25rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
- **Input:** `city` - City name.
|
margin-bottom: 0.5rem;
|
||||||
|
color: #3a3a3a;
|
||||||
---
|
}
|
||||||
|
|
||||||
## Prompts
|
.content :deep(p) {
|
||||||
|
margin-bottom: 1rem;
|
||||||
Prompts are pre-configured conversation starters that guide AI assistants on how to query specific information.
|
}
|
||||||
|
|
||||||
### `activity`
|
.content :deep(hr) {
|
||||||
|
border: none;
|
||||||
**Description:** Generates a prompt to retrieve Arthur Danjou's current real-time activity status, including what he is currently working on.
|
border-top: 1px solid #e5e5e5;
|
||||||
|
margin: 2rem 0;
|
||||||
### `contact`
|
}
|
||||||
|
|
||||||
**Description:** Generates a prompt to retrieve Arthur Danjou's contact information and social media links, including email, LinkedIn, GitHub, Twitter, Discord, and personal websites.
|
.content :deep(code) {
|
||||||
|
background-color: #f5f5f5;
|
||||||
### `hobbies`
|
padding: 0.2em 0.4em;
|
||||||
|
border-radius: 3px;
|
||||||
**Description:** Generates a prompt to retrieve information about Arthur Danjou's personal hobbies, interests, and passions outside of professional work.
|
font-size: 0.9em;
|
||||||
|
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
||||||
### `languages`
|
}
|
||||||
|
|
||||||
**Description:** Generates a prompt to retrieve the languages spoken by Arthur Danjou along with detailed proficiency levels for each language.
|
.content :deep(pre) {
|
||||||
|
background-color: #1e1e1e;
|
||||||
### `profile`
|
color: #d4d4d4;
|
||||||
|
padding: 1rem;
|
||||||
**Description:** Generates a prompt to retrieve comprehensive professional profile information about Arthur Danjou, including biography, location, availability status, career goals, and work preferences.
|
border-radius: 6px;
|
||||||
|
overflow-x: auto;
|
||||||
### `projects`
|
margin: 1rem 0;
|
||||||
|
}
|
||||||
**Description:** Generates a prompt to retrieve a comprehensive list of personal and professional projects developed by Arthur Danjou, showcasing his technical skills and achievements.
|
|
||||||
|
.content :deep(pre code) {
|
||||||
### `resume`
|
background-color: transparent;
|
||||||
|
padding: 0;
|
||||||
**Description:** Generates a prompt to request and retrieve Arthur Danjou's professional resume in the specified language.
|
color: inherit;
|
||||||
|
}
|
||||||
- **Input:** `lang` - The language for the resume: `'en'` for English or `'fr'` for French.
|
|
||||||
|
.content :deep(ul),
|
||||||
### `skills`
|
.content :deep(ol) {
|
||||||
|
margin-bottom: 1rem;
|
||||||
**Description:** Generates a prompt to retrieve a comprehensive list of technical skills, programming languages, frameworks, and tools mastered by Arthur Danjou.
|
padding-left: 1.5rem;
|
||||||
|
}
|
||||||
### `stats`
|
|
||||||
|
.content :deep(li) {
|
||||||
**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.
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
### `status-page`
|
|
||||||
|
.content :deep(a) {
|
||||||
**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.
|
color: #0066cc;
|
||||||
|
text-decoration: none;
|
||||||
### `uses-by-category`
|
}
|
||||||
|
|
||||||
**Description:** Generates a prompt to retrieve tools, software, and hardware used by Arthur Danjou, filtered by a specific category.
|
.content :deep(a:hover) {
|
||||||
|
text-decoration: underline;
|
||||||
- **Input:** `categoryName` - The category to filter by: `'homelab'`, `'ide'`, `'hardware'`, or `'software'`.
|
}
|
||||||
|
|
||||||
---
|
.content :deep(strong) {
|
||||||
|
font-weight: 600;
|
||||||
## Resources
|
}
|
||||||
|
|
||||||
Resources are static or semi-static data endpoints that provide structured information about Arthur Danjou.
|
@media (max-width: 768px) {
|
||||||
|
.documentation-page {
|
||||||
### `resource://artmcp/profile`
|
padding: 1rem;
|
||||||
|
}
|
||||||
**Title:** Arthur Danjou - Professional Profile :br**Description:** Comprehensive professional profile of Arthur Danjou, including biography, location, availability status, career goals, and work preferences.
|
|
||||||
|
.content :deep(h1) {
|
||||||
### `resource://artmcp/contact`
|
font-size: 1.75rem;
|
||||||
|
}
|
||||||
**Title:** Arthur Danjou - Contact Information & Social Media Links :br**Description:** Contact information and social media links for Arthur Danjou, including email, LinkedIn, GitHub, Twitter, Discord, and personal websites.
|
|
||||||
|
.content :deep(h2) {
|
||||||
### `resource://artmcp/education`
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
**Title:** Arthur Danjou - Education & Academic Background :br**Description:** Arthur Danjou's educational background, including degrees, institutions, and academic achievements.
|
|
||||||
|
.content :deep(h3) {
|
||||||
### `resource://artmcp/experiences`
|
font-size: 1.1rem;
|
||||||
|
|
||||||
**Title:** Arthur Danjou - Experiences :br**Description:** A detailed list of Arthur Danjou's professional work experiences, including roles, companies, and responsibilities.
|
|
||||||
|
|
||||||
### `resource://artmcp/hobbies`
|
|
||||||
|
|
||||||
**Title:** Arthur Danjou - Hobbies & Interests :br**Description:** Arthur Danjou's personal hobbies, interests, and passions outside of professional work.
|
|
||||||
|
|
||||||
### `resource://artmcp/languages`
|
|
||||||
|
|
||||||
**Title:** Arthur Danjou - Spoken Languages & Proficiency Levels :br**Description:** Languages spoken by Arthur Danjou with detailed proficiency levels for each language.
|
|
||||||
|
|
||||||
### `resource://artmcp/projects`
|
|
||||||
|
|
||||||
**Title:** Arthur Danjou - Projects Portfolio :br**Description:** A comprehensive collection of projects developed by Arthur Danjou, showcasing technical skills and achievements.
|
|
||||||
|
|
||||||
### `resource://artmcp/skills`
|
|
||||||
|
|
||||||
**Title:** Arthur Danjou - Skills :br**Description:** A comprehensive list of technical skills, programming languages, frameworks, and tools mastered by Arthur Danjou.
|
|
||||||
|
|
||||||
### `resource://artmcp/uses`
|
|
||||||
|
|
||||||
**Title:** Arthur Danjou - Tech Stack & Tools :br**Description:** A curated list of tools, software, and hardware used by Arthur Danjou, organized by categories (homelab, IDE, hardware, software).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## MCP Integration
|
|
||||||
|
|
||||||
To use this server with an MCP client, configure your client to connect to:
|
|
||||||
|
|
||||||
```text
|
|
||||||
https://mcp.arthurdanjou.fr/mcp
|
|
||||||
```
|
|
||||||
|
|
||||||
### Example Configuration
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"mcpServers": {
|
|
||||||
"artmcp": {
|
|
||||||
"url": "https://mcp.arthurdanjou.fr/mcp"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
</style>
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## API Endpoints
|
|
||||||
|
|
||||||
All resources are also available as REST API endpoints:
|
|
||||||
|
|
||||||
- `GET /api/profile` - Profile information
|
|
||||||
- `GET /api/contact` - Contact information
|
|
||||||
- `GET /api/skills` - Technical skills
|
|
||||||
- `GET /api/experiences` - Work experiences
|
|
||||||
- `GET /api/education` - Education background
|
|
||||||
- `GET /api/projects` - Projects portfolio
|
|
||||||
- `GET /api/languages` - Spoken languages
|
|
||||||
- `GET /api/hobbies` - Hobbies and interests
|
|
||||||
- `GET /api/uses` - Tech stack and tools
|
|
||||||
- `GET /api/activity` - Real-time activity
|
|
||||||
- `GET /api/wakatime` - Coding statistics
|
|
||||||
- `GET /api/status-page` - Status page
|
|
||||||
- `GET /api/resumes/{en|fr}` - Download resume
|
|
||||||
|
|||||||
195
content/mcp.md
Normal file
195
content/mcp.md
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
---
|
||||||
|
title: ArtMCP Documentation
|
||||||
|
description: Documentation for ArtMCP - Arthur Danjou's Model Context Protocol Server
|
||||||
|
mcp: https://api.arthurdanjou.fr/mcp
|
||||||
|
---
|
||||||
|
|
||||||
|
# ArtMCP Documentation
|
||||||
|
|
||||||
|
Welcome to **ArtMCP**, 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.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
::install-button{:url="mcp"}
|
||||||
|
::
|
||||||
|
|
||||||
|
::install-button{:url="mcp" ide="vscode"}
|
||||||
|
::
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
ArtMCP provides AI assistants and applications with structured access to Arthur Danjou's professional information through the Model Context Protocol. This includes profile data, skills, experiences, projects, and real-time activity information.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tools
|
||||||
|
|
||||||
|
Tools are executable functions that AI assistants can call to perform actions or retrieve dynamic data.
|
||||||
|
|
||||||
|
### `activity`
|
||||||
|
|
||||||
|
**Description:** Real-time current activity and status of Arthur Danjou, including what he's currently working on.
|
||||||
|
|
||||||
|
### `resume-link`
|
||||||
|
|
||||||
|
**Description:** Retrieves a direct download link to Arthur Danjou's professional resume in the specified language.
|
||||||
|
|
||||||
|
- **Input:** `lang` - The language for the resume: `'en'` for English or `'fr'` for French.
|
||||||
|
|
||||||
|
### `stats`
|
||||||
|
|
||||||
|
**Description:** Detailed coding statistics and analytics from WakaTime, including programming languages, time spent coding, and productivity metrics.
|
||||||
|
|
||||||
|
### `status-page`
|
||||||
|
|
||||||
|
**Description:** Real-time status, uptime monitoring, and incident reports for Arthur Danjou's homelab infrastructure, powered by UptimeKuma.
|
||||||
|
|
||||||
|
### `uses-by-category`
|
||||||
|
|
||||||
|
**Description:** Retrieves a filtered list of tools, software, and hardware used by Arthur Danjou based on a specific category.
|
||||||
|
|
||||||
|
- **Input:** `categoryName` - The category to filter by: `'homelab'`, `'ide'`, `'hardware'`, or `'software'`.
|
||||||
|
|
||||||
|
### `weather`
|
||||||
|
|
||||||
|
**Description:** Get current weather for a city.
|
||||||
|
|
||||||
|
- **Input:** `city` - City name.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prompts
|
||||||
|
|
||||||
|
Prompts are pre-configured conversation starters that guide AI assistants on how to query specific information.
|
||||||
|
|
||||||
|
### `activity`
|
||||||
|
|
||||||
|
**Description:** Generates a prompt to retrieve Arthur Danjou's current real-time activity status, including what he is currently working on.
|
||||||
|
|
||||||
|
### `contact`
|
||||||
|
|
||||||
|
**Description:** Generates a prompt to retrieve Arthur Danjou's contact information and social media links, including email, LinkedIn, GitHub, Twitter, Discord, and personal websites.
|
||||||
|
|
||||||
|
### `hobbies`
|
||||||
|
|
||||||
|
**Description:** Generates a prompt to retrieve information about Arthur Danjou's personal hobbies, interests, and passions outside of professional work.
|
||||||
|
|
||||||
|
### `languages`
|
||||||
|
|
||||||
|
**Description:** Generates a prompt to retrieve the languages spoken by Arthur Danjou along with detailed proficiency levels for each language.
|
||||||
|
|
||||||
|
### `profile`
|
||||||
|
|
||||||
|
**Description:** Generates a prompt to retrieve comprehensive professional profile information about Arthur Danjou, including biography, location, availability status, career goals, and work preferences.
|
||||||
|
|
||||||
|
### `projects`
|
||||||
|
|
||||||
|
**Description:** Generates a prompt to retrieve a comprehensive list of personal and professional projects developed by Arthur Danjou, showcasing his technical skills and achievements.
|
||||||
|
|
||||||
|
### `resume`
|
||||||
|
|
||||||
|
**Description:** Generates a prompt to request and retrieve Arthur Danjou's professional resume in the specified language.
|
||||||
|
|
||||||
|
- **Input:** `lang` - The language for the resume: `'en'` for English or `'fr'` for French.
|
||||||
|
|
||||||
|
### `skills`
|
||||||
|
|
||||||
|
**Description:** Generates a prompt to retrieve a comprehensive list of technical skills, programming languages, frameworks, and tools mastered by Arthur Danjou.
|
||||||
|
|
||||||
|
### `stats`
|
||||||
|
|
||||||
|
**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.
|
||||||
|
|
||||||
|
### `status-page`
|
||||||
|
|
||||||
|
**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.
|
||||||
|
|
||||||
|
### `uses-by-category`
|
||||||
|
|
||||||
|
**Description:** Generates a prompt to retrieve tools, software, and hardware used by Arthur Danjou, filtered by a specific category.
|
||||||
|
|
||||||
|
- **Input:** `categoryName` - The category to filter by: `'homelab'`, `'ide'`, `'hardware'`, or `'software'`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
Resources are static or semi-static data endpoints that provide structured information about Arthur Danjou.
|
||||||
|
|
||||||
|
### `resource://artmcp/profile`
|
||||||
|
|
||||||
|
**Title:** Arthur Danjou - Professional Profile :br**Description:** Comprehensive professional profile of Arthur Danjou, including biography, location, availability status, career goals, and work preferences.
|
||||||
|
|
||||||
|
### `resource://artmcp/contact`
|
||||||
|
|
||||||
|
**Title:** Arthur Danjou - Contact Information & Social Media Links :br**Description:** Contact information and social media links for Arthur Danjou, including email, LinkedIn, GitHub, Twitter, Discord, and personal websites.
|
||||||
|
|
||||||
|
### `resource://artmcp/education`
|
||||||
|
|
||||||
|
**Title:** Arthur Danjou - Education & Academic Background :br**Description:** Arthur Danjou's educational background, including degrees, institutions, and academic achievements.
|
||||||
|
|
||||||
|
### `resource://artmcp/experiences`
|
||||||
|
|
||||||
|
**Title:** Arthur Danjou - Experiences :br**Description:** A detailed list of Arthur Danjou's professional work experiences, including roles, companies, and responsibilities.
|
||||||
|
|
||||||
|
### `resource://artmcp/hobbies`
|
||||||
|
|
||||||
|
**Title:** Arthur Danjou - Hobbies & Interests :br**Description:** Arthur Danjou's personal hobbies, interests, and passions outside of professional work.
|
||||||
|
|
||||||
|
### `resource://artmcp/languages`
|
||||||
|
|
||||||
|
**Title:** Arthur Danjou - Spoken Languages & Proficiency Levels :br**Description:** Languages spoken by Arthur Danjou with detailed proficiency levels for each language.
|
||||||
|
|
||||||
|
### `resource://artmcp/projects`
|
||||||
|
|
||||||
|
**Title:** Arthur Danjou - Projects Portfolio :br**Description:** A comprehensive collection of projects developed by Arthur Danjou, showcasing technical skills and achievements.
|
||||||
|
|
||||||
|
### `resource://artmcp/skills`
|
||||||
|
|
||||||
|
**Title:** Arthur Danjou - Skills :br**Description:** A comprehensive list of technical skills, programming languages, frameworks, and tools mastered by Arthur Danjou.
|
||||||
|
|
||||||
|
### `resource://artmcp/uses`
|
||||||
|
|
||||||
|
**Title:** Arthur Danjou - Tech Stack & Tools :br**Description:** A curated list of tools, software, and hardware used by Arthur Danjou, organized by categories (homelab, IDE, hardware, software).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## MCP Integration
|
||||||
|
|
||||||
|
To use this server with an MCP client, configure your client to connect to:
|
||||||
|
|
||||||
|
```text
|
||||||
|
https://api.arthurdanjou.fr/mcp/mcp
|
||||||
|
```
|
||||||
|
|
||||||
|
### Example Configuration
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"artmcp": {
|
||||||
|
"url": "https://api.arthurdanjou.fr/mcp/mcp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## API Endpoints
|
||||||
|
|
||||||
|
All resources are also available as REST API endpoints:
|
||||||
|
|
||||||
|
- `GET /api/profile` - Profile information
|
||||||
|
- `GET /api/contact` - Contact information
|
||||||
|
- `GET /api/skills` - Technical skills
|
||||||
|
- `GET /api/experiences` - Work experiences
|
||||||
|
- `GET /api/education` - Education background
|
||||||
|
- `GET /api/projects` - Projects portfolio
|
||||||
|
- `GET /api/languages` - Spoken languages
|
||||||
|
- `GET /api/hobbies` - Hobbies and interests
|
||||||
|
- `GET /api/uses` - Tech stack and tools
|
||||||
|
- `GET /api/activity` - Real-time activity
|
||||||
|
- `GET /api/wakatime` - Coding statistics
|
||||||
|
- `GET /api/status-page` - Status page
|
||||||
|
- `GET /api/resumes/{en|fr}` - Download resume
|
||||||
@@ -15,7 +15,7 @@ tags:
|
|||||||
|
|
||||||
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 [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
|
🔗 **Live Server**: https://api.arthurdanjou.fr/mcp
|
||||||
|
|
||||||
## 🎯 Features
|
## 🎯 Features
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@ content/
|
|||||||
|
|
||||||
To use this server with an MCP client:
|
To use this server with an MCP client:
|
||||||
|
|
||||||
1. Configure your MCP client to connect to `https://mcp.arthurdanjou.fr/mcp`
|
1. Configure your MCP client to connect to `https://api.arthurdanjou.fr/mcp/mcp`
|
||||||
2. Or use the API directly via REST endpoints
|
2. Or use the API directly via REST endpoints
|
||||||
|
|
||||||
Example MCP client configuration:
|
Example MCP client configuration:
|
||||||
@@ -192,7 +192,7 @@ Example MCP client configuration:
|
|||||||
{
|
{
|
||||||
"mcpServers": {
|
"mcpServers": {
|
||||||
"artmcp": {
|
"artmcp": {
|
||||||
"url": "https://mcp.arthurdanjou.fr/mcp"
|
"url": "https://api.arthurdanjou.fr/mcp/mcp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,7 +74,8 @@ export default defineNuxtConfig({
|
|||||||
|
|
||||||
mcp: {
|
mcp: {
|
||||||
name: 'ArtMCP',
|
name: 'ArtMCP',
|
||||||
version: '1.0.0'
|
version: '1.0.0',
|
||||||
|
browserRedirect: '/mcp'
|
||||||
},
|
},
|
||||||
|
|
||||||
studio: {
|
studio: {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export default defineMcpTool({
|
|||||||
lang: z.enum(['en', 'fr']).describe('The language for the resume: \'en\' for English or \'fr\' for French.')
|
lang: z.enum(['en', 'fr']).describe('The language for the resume: \'en\' for English or \'fr\' for French.')
|
||||||
},
|
},
|
||||||
handler: async ({ lang }) => {
|
handler: async ({ lang }) => {
|
||||||
const base_url = import.meta.dev ? 'http://localhost:3000/api' : 'https://mcp.arthurdanjou.fr/api'
|
const base_url = import.meta.dev ? 'http://localhost:3000/api' : 'https://api.arthurdanjou.fr/api'
|
||||||
const url = `${base_url}/resumes/${lang}`
|
const url = `${base_url}/resumes/${lang}`
|
||||||
return {
|
return {
|
||||||
content: [{ type: 'text', text: JSON.stringify(url) }]
|
content: [{ type: 'text', text: JSON.stringify(url) }]
|
||||||
|
|||||||
Reference in New Issue
Block a user