0Pricing
MCP Academy · Leçon

Implémenter des outils, des ressources et des instructions

Créez les trois primitives adaptées au cas d’utilisation.

Implémenter des outils, des ressources et des instructions est une leçon MCP Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage MCP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours MCP Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Build All Three Primitives

With a plan in hand, you now write real code. This lesson wires up your tools, resources, and prompts into one working server. 🛠️

Set Up the Backend

First, give the server something to act on. A tiny store, like a list or a SQLite file, holds the notes every primitive will share.

import sqlite3

db = sqlite3.connect("notes.db")
db.execute("CREATE TABLE IF NOT EXISTS notes(id INTEGER PRIMARY KEY, title TEXT, body TEXT)")

Write the Add Tool

Your first tool creates a note. The decorator publishes it, and the type hints turn the arguments into a schema the model can fill.

@mcp.tool()
def add_note(title: str, body: str) -> str:
    db.execute("INSERT INTO notes(title, body) VALUES (?, ?)", (title, body))
    db.commit()
    return "Saved."

Write the Search Tool

Add a second tool that searches notes by keyword. Returning a short list of matches keeps the result easy for the model to use.

@mcp.tool()
def search_notes(query: str) -> list[str]:
    rows = db.execute("SELECT title FROM notes WHERE body LIKE ?", (f"%{query}%",))
    return [r[0] for r in rows]

Describe Tools Clearly

Give each tool a plain docstring. That text becomes its description, and a clear one helps the model pick the right tool at the right time.

Expose a Resource

Now serve read-only context. A resource uri lets the model fetch one note without changing anything in your store.

@mcp.resource("note://{note_id}")
def get_note(note_id: int) -> str:
    row = db.execute("SELECT body FROM notes WHERE id = ?", (note_id,)).fetchone()
    return row[0] if row else "Not found."

Capture the URI Variable

The braces in the uri become a function argument. MCP pulls note_id straight from the path, so each read targets exactly one record.

Register a Prompt

Add a reusable prompt the user can trigger. It frames a request so callers get consistent, high-quality instructions every time.

@mcp.prompt()
def summarize(note_id: int) -> str:
    return f"Read note://{note_id} and summarize it in three bullet points."

Return Useful Text

Keep every result concise and human-readable. Short, clear strings save model tokens and make the user-facing output far easier to read.

Mix, But Keep Roles Clear

Tools act, resources read, and prompts instruct. Keeping each role distinct means clients and the model always know what to expect from each.

Wire the Entry Point

End the file by running the server so a client can connect. The run call starts the loop and hands control to the transport.

if __name__ == "__main__":
    mcp.run()

Quick Check

Let us check the resource uri detail.

Recap

You implemented all three primitives: tools that act, a resource that reads, and a prompt that instructs. The capstone server now does real work. 🎯

Questions Fréquemment Posées

La leçon « Implémenter des outils, des ressources et des instructions » est-elle gratuite ?

Oui — le texte complet de « Implémenter des outils, des ressources et des instructions » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours MCP Academy, passe à CoddyKit PRO. Le cours MCP Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Implémenter des outils, des ressources et des instructions » ?

Créez les trois primitives adaptées au cas d’utilisation. Tu pratiques MCP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer MCP Academy ?

Aucune expérience préalable n'est requise. MCP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Implémenter des outils, des ressources et des instructions » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon MCP Academy ?

Oui. Chaque leçon MCP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Définir le périmètre du projet et des outils
  2. Implémenter des outils, des ressources et des instructions
  3. Tester, inspecter et renforcer
  4. Documenter et publier le serveur
← Retour à MCP Academy