satelia-mcp-lucca

satelia-mcp-lucca

A Model Context Protocol server that enables Claude to interact with a Lucca instance to list employees, departments, and view absences in natural language.

Category
Visit Server

README

satelia-mcp-lucca

Un serveur MCP (Model Context Protocol) qui permet a Claude d'interroger votre instance Lucca en langage naturel : lister les collaborateurs, les departements, consulter les absences et la consommation de conges par type.

🚀 Vous installez le projet sur votre Mac ? Suivez le guide pas a pas : SETUP.md.

C'est quoi ?

Un serveur MCP est un petit programme qui ajoute des « outils » a Claude. Une fois branche a Claude Desktop, vous pouvez demander a Claude d'utiliser ces outils pendant une conversation (ex. « Qui est absent la semaine prochaine dans l'equipe Sales ? »).

Ce serveur expose 4 outils, en lecture seule :

  • lister-collaborateurs — liste / recherche les salaries (par prenom, nom ou email) et donne, pour chacun : identifiant, poste, departement, manager, date d'anciennete, fin de periode d'essai et fin de 2nde periode d'essai (renouvellement). Par defaut, les anciens collaborateurs (contrat termine) sont masques.
  • lister-departements — liste les departements (services / equipes) avec leur identifiant et leur code.
  • lister-absences — liste les absences (conges, RTT, etc.) sur une periode donnee, pour un collaborateur (via son id) ou un departement (via son id).
  • consommation-conges — calcule les jours d'absence PRIS par type (conges payes, RTT, recuperation…) sur une periode, pour un collaborateur ou un departement. NB : c'est la consommation, pas le solde restant (l'API Lucca n'expose pas les soldes).

Enchainement typique : Claude appelle d'abord lister-collaborateurs pour trouver l'id d'une personne, puis lister-absences avec cet id.

Prerequis

  • Node.js version 18 ou superieure (node --version). Sinon : https://nodejs.org (version « LTS »).
  • Un acces a l'API Lucca : le sous-domaine de votre instance et une cle API.

Installation

npm install
npm run build

Si tout va bien, un dossier build apparait (build/index.js, build/lucca.js).

Acces Lucca (important)

Le serveur ne contient aucun secret. Les acces sont lus dans des variables d'environnement :

Variable Role Exemple
LUCCA_INSTANCE le sous-domaine de votre instance : https://<ICI>.ilucca.net satelia
LUCCA_API_KEY votre cle API (Parametres Lucca → Cles API) xxxxxxxx-xxxx-...
LUCCA_BASE_URL (optionnel) URL complete, pour surcharger (ex. environnement de test) https://satelia.ilucca-test.net

Pour recuperer une cle API : dans Lucca, Parametres → Cles API → creer une cle (une cle dediee par integration, avec le role/perimetre minimal necessaire).

Pour un test rapide en local, copiez .env.example en .env (ignore par git) et remplissez vos acces.

Connecter le serveur a Claude Desktop

Claude Desktop lit un fichier de configuration ou vous declarez vos serveurs MCP.

  • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows : %APPDATA%\Claude\claude_desktop_config.json

Ajoutez votre serveur dans mcpServers (remplacez le chemin et la cle). La cle va dans le bloc env, jamais dans le code :

{
  "mcpServers": {
    "satelia-mcp-lucca": {
      "command": "node",
      "args": ["/chemin/absolu/vers/satelia-mcp-lucca/build/index.js"],
      "env": {
        "LUCCA_INSTANCE": "satelia",
        "LUCCA_API_KEY": "votre-cle-api"
      }
    }
  }
}

Pour obtenir le chemin absolu, lancez pwd dans le dossier du projet et ajoutez /build/index.js.

Fermez puis rouvrez Claude Desktop. Essayez : « Liste-moi les departements Lucca » ou « Qui est absent en juillet dans l'equipe Sales ? ».

Note : apres toute modification du code, relancez npm run build puis redemarrez Claude Desktop.

Tester

Un smoke test verifie que le serveur demarre, expose les 3 outils, et — si les acces Lucca sont dans l'environnement — fait un vrai appel a l'API :

# sans acces : test structurel seulement
node test/smoke.mjs

# avec acces (charge le .env local) : test + vrais appels
set -a; . ./.env; set +a; node test/smoke.mjs

Pour explorer visuellement les outils :

npm run build
npx @modelcontextprotocol/inspector node build/index.js

Ajouter votre propre outil

Tout se passe dans src/index.ts, dans le bloc bien visible :

// ====== AJOUTEZ VOTRE OUTIL ICI ======

Copiez un des outils existants (ex. lister-departements), adaptez le nom, la description (en francais), les champs d'entree (inputSchema) et l'appel luccaFetch(...), puis relancez npm run build. Le client Lucca (src/lucca.ts) gere deja l'authentification et les erreurs.

Commandes utiles

  • npm run build : compile le projet dans build.
  • npm run start : lance la version compilee.
  • npm run dev : lance directement le code source (pratique en developpement).
  • node test/smoke.mjs : smoke test.

Licence

MIT. Voir le fichier LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured