Skip to main content
Glama
Para-FR

satelia-mcp-starter

by Para-FR

satelia-mcp-starter

Une base de depart propre et minimale pour creer votre propre serveur MCP en TypeScript.

C'est quoi ?

Un serveur MCP (Model Context Protocol) 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.

Ce depot contient deja :

  • un serveur fonctionnel, pret a lancer ;

  • UN outil d'exemple, compter-mots, qui compte les mots et les caracteres d'un texte ;

  • un emplacement clairement balise pour ajouter vos propres outils.

L'idee : vous clonez ce depot, vous lancez quelques commandes, et vous construisez vos outils par-dessus sans avoir a tout recreer.

Related MCP server: MCP Calculator Server

Prerequis

  • Node.js version 18 ou superieure. Pour verifier, ouvrez un terminal et tapez : node --version

  • Si Node n'est pas installe, telechargez-le sur le site officiel : https://nodejs.org (choisissez la version "LTS").

Installation, etape par etape

  1. Cloner le depot, puis entrer dans le dossier :

    git clone <adresse-du-depot>
    cd satelia-mcp-starter
  2. Installer les dependances (les librairies dont le projet a besoin) :

    npm install
  3. Construire le projet (transformer le code TypeScript en JavaScript executable) :

    npm run build

    Si tout se passe bien, un dossier build apparait. Il contient le fichier build/index.js que Claude utilisera.

Connecter le serveur a Claude Desktop

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

  1. Recuperez le chemin ABSOLU vers build/index.js. Depuis le dossier du projet :

    pwd

    Cela affiche le chemin du dossier, par exemple /Users/vous/satelia-mcp-starter. Le chemin complet vers le fichier sera donc /Users/vous/satelia-mcp-starter/build/index.js.

  2. Ouvrez le fichier de configuration de Claude Desktop :

    • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows : %APPDATA%\Claude\claude_desktop_config.json

  3. Ajoutez votre serveur dans la section mcpServers (remplacez le chemin par le votre) :

    {
      "mcpServers": {
        "satelia-mcp-starter": {
          "command": "node",
          "args": ["/Users/vous/satelia-mcp-starter/build/index.js"]
        }
      }
    }
  4. Fermez puis rouvrez Claude Desktop. Votre outil compter-mots doit maintenant etre disponible. Essayez de demander a Claude : "Combien de mots dans cette phrase ?"

Note : a chaque fois que vous modifiez le code, relancez npm run build, puis redemarrez Claude Desktop pour qu'il prenne en compte la nouvelle version.

Ajouter votre propre outil

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

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

En 4 etapes simples :

  1. Copiez l'exemple commente situe juste sous ce bloc (l'outil saluer).

  2. Retirez les // en debut de ligne pour activer le code.

  3. Adaptez : le nom de l'outil, sa description, ses champs d'entree (inputSchema) et ce que renvoie le handler.

  4. Lancez npm run build pour verifier que tout compile, puis redemarrez Claude Desktop.

Conseil : decrivez chaque champ avec .describe("...") en francais. Plus la description est claire, mieux Claude saura quand et comment utiliser votre outil.

Tester sans rebuild

Pendant que vous developpez, vous pouvez lancer le serveur directement depuis le code source, sans passer par npm run build :

npm run dev

Le serveur demarre et affiche un message de confirmation. C'est pratique pour verifier rapidement qu'il n'y a pas d'erreur. Pour l'arreter, appuyez sur Ctrl + C.

Tester visuellement avec l'inspecteur

Pour voir vos outils et les essayer dans une petite interface, sans passer par Claude Desktop :

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

Une page s'ouvre dans le navigateur : vous y voyez la liste de vos outils et pouvez les appeler a la main pour verifier leur resultat.

Commandes utiles

  • npm run build : compile le projet dans le dossier build.

  • npm run start : lance la version compilee (build/index.js).

  • npm run dev : lance directement le code source, ideal pour tester pendant le developpement.

Licence

MIT. Voir le fichier LICENSE.

Available Tools

1 tool
compter-motsCompter les motsA

Compte le nombre de mots et de caracteres d'un texte fourni. Utile pour mesurer la longueur d'un message, d'un resume ou d'un paragraphe.

ParametersJSON Schema
NameRequiredDescriptionDefault
texteYesLe texte a analyser (le contenu dont on veut compter les mots et les caracteres).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the tool counts words and characters, implying a non-destructive read operation. However, it does not disclose the return format or whether it counts spaces/punctuation. Without annotations, the description could provide more behavioral detail, such as that the tool does not modify any data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loading the primary action and then providing context. Every sentence is informative and no extraneous words are present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter, no output schema, and no siblings, the description covers the core functionality and use case. It could improve by mentioning the output structure, but overall it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (one parameter fully described). The description's parameter elaboration ('Le texte a analyser...') adds no new information beyond the schema's definition, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool counts words and characters of a provided text, with specific verb 'compte' and resource 'mots et caracteres'. It also gives example use cases (message, summary, paragraph) to clarify purpose. No sibling tools exist, so differentiation is not needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool: for measuring length of a message, summary, or paragraph. However, it does not mention when not to use it or any alternatives, but given the simplicity and absence of siblings, the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.0
    • First observedcompter-mots

TDQS

A4/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion between tools. The single tool has a clear, unique purpose.

Naming Consistency5/5

The single tool follows a verb_noun pattern ('compter-mots'), which is consistent and descriptive. No other tools to create inconsistency.

Tool Count2/5

A server with only one tool feels too minimal for a general 'starter' server. While the tool itself is useful, the server would benefit from additional related tools to justify its existence.

Completeness4/5

The tool fully covers its stated purpose of counting words and characters. However, it lacks other text analysis features (e.g., sentence count, reading time) that might be expected in a text utility server.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A lightweight TypeScript-based MCP server that demonstrates how to build custom MCP tools by implementing a simple addition calculator. Serves as a starting point for building MCP-compatible tools.
    887 npm
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A TypeScript starter template for building MCP servers with example tools (echo, math operations, time, flight status) and resources (server info, greetings). Provides a modular architecture for easily extending with custom tools and resources.
    4
    6 npm
    ISC