MCP Academy · Lekcja

Implementowanie narzędzi, zasobów i promptów

Zbuduj wszystkie trzy prymitywy na potrzeby danego zastosowania.

Lekcja 2 z 413 kroki

Implementowanie narzędzi, zasobów i promptów to bezpłatna lekcja MCP Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej MCP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs MCP Academy zawiera 4 lekcji w sumie.

Zbuduj wszystkie trzy podstawowe konstrukcje

Mając gotowy plan, napiszą Państwo teraz prawdziwy kod. W tej lekcji połączą Państwo narzędzia, zasoby i prompty w jeden działający serwer. 🛠️

Skonfiguruj backend

Najpierw należy zapewnić serwerowi dane, na których będzie działać. Niewielki magazyn, taki jak lista lub plik SQLite, przechowuje notatki współdzielone przez wszystkie podstawowe konstrukcje.

import sqlite3

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

Napisz narzędzie dodawania

Pierwsze narzędzie tworzy notatkę. Dekorator je publikuje, a adnotacje typów przekształcają argumenty w schemat, który może wypełnić model.

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

Napisz narzędzie wyszukiwania

Należy dodać drugie narzędzie wyszukujące notatki po słowie kluczowym. Zwracanie krótkiej listy wyników ułatwia modelowi wykorzystanie rezultatu.

@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]

Opisuj narzędzia jasno

Każdemu narzędziu należy dodać prosty docstring. Ten tekst staje się jego opisem, a jasny opis pomaga modelowi wybrać właściwe narzędzie we właściwym momencie.

Udostępnij zasób

Teraz należy udostępnić kontekst tylko do odczytu. Identyfikator URI zasobu pozwala modelowi pobrać jedną notatkę bez zmieniania zawartości magazynu.

@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."

Pobierz zmienną URI

Nawiasy klamrowe w URI stają się argumentem funkcji. MCP pobiera note_id bezpośrednio ze ścieżki, dzięki czemu każdy odczyt dotyczy dokładnie jednego rekordu.

Zarejestruj prompt

Należy dodać wielokrotnego użytku prompt, który użytkownik może uruchomić. Nadaje on strukturę żądaniu, dzięki czemu wywołujący za każdym razem otrzymuje spójne instrukcje wysokiej jakości.

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

Zwracaj użyteczny tekst

Każdy wynik powinien być zwięzły i czytelny dla człowieka. Krótkie, jasne ciągi znaków oszczędzają tokeny modelu i znacznie ułatwiają odczyt danych wyświetlanych użytkownikowi.

Łącz, ale zachowaj jasne role

Narzędzia wykonują działania, zasoby służą do odczytu, a prompty przekazują instrukcje. Zachowanie odrębnych ról sprawia, że klienci i model zawsze wiedzą, czego oczekiwać od każdej z nich.

Połącz punkt wejścia

Na końcu pliku należy uruchomić serwer, aby klient mógł się połączyć. Wywołanie run uruchamia pętlę i przekazuje sterowanie do transportu.

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

Szybkie sprawdzenie

Sprawdźmy szczegół dotyczący URI zasobu.

Podsumowanie

Zaimplementowali Państwo wszystkie trzy podstawowe konstrukcje: narzędzia, które wykonują działania, zasób, który odczytuje dane, oraz prompt, który przekazuje instrukcje. Serwer projektu końcowego wykonuje teraz rzeczywistą pracę. 🎯

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Implementowanie narzędzi, zasobów i promptów” jest bezpłatna?

Tak — pełny tekst „Implementowanie narzędzi, zasobów i promptów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu MCP Academy, przejdź na CoddyKit PRO. Kurs MCP Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Implementowanie narzędzi, zasobów i promptów”?

Zbuduj wszystkie trzy prymitywy na potrzeby danego zastosowania. Ćwiczysz MCP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć MCP Academy?

Nie wymagamy żadnego doświadczenia. MCP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Implementowanie narzędzi, zasobów i promptów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji MCP Academy?

Tak. Każda lekcja MCP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Określanie zakresu projektu i narzędzi
  2. Implementowanie narzędzi, zasobów i promptów
  3. Testowanie, inspekcja i wzmacnianie zabezpieczeń
  4. Dokumentowanie i publikowanie serwera
← Powrót do MCP Academy