0Pricing
MCP Academy · Урок

Реализация инструментов, ресурсов и запросов

Создайте все три примитива для нужного сценария.

«Реализация инструментов, ресурсов и запросов» — бесплатный урок MCP Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения MCP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс MCP Academy содержит 4 уроков всего.

Создайте все три примитива

Имея план, вы теперь пишете настоящий код. На этом уроке вы объедините инструменты, ресурсы и промпты в один работающий сервер. 🛠️

Настройте серверный компонент

Сначала дайте серверу объект для работы. Небольшое хранилище, например список или файл SQLite, будет содержать заметки, общие для всех примитивов.

import sqlite3

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

Напишите инструмент добавления

Ваш первый tool создаёт заметку. Декоратор публикует его, а подсказки типов превращают аргументы в схему, которую сможет заполнить модель.

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

Напишите инструмент поиска

Добавьте второй tool, который ищет заметки по ключевому слову. Возврат краткого списка совпадений упрощает использование результата моделью.

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

Чётко опишите инструменты

Дайте каждому инструменту простой docstring. Этот текст становится его описанием, а ясное описание помогает модели выбрать нужный инструмент в нужный момент.

Предоставьте resource

Теперь предоставьте контекст только для чтения. URI resource позволяет модели получить одну заметку, ничего не меняя в вашем хранилище.

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

Получите переменную URI

Фигурные скобки в URI становятся аргументом функции. MCP извлекает note_id прямо из пути, поэтому каждое чтение обращается ровно к одной записи.

Зарегистрируйте prompt

Добавьте многоразовый prompt, который пользователь сможет запустить. Он формулирует запрос так, чтобы вызывающие каждый раз получали последовательные и качественные инструкции.

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

Возвращайте полезный текст

Делайте каждый результат кратким и понятным человеку. Короткие ясные строки экономят токены модели и значительно упрощают чтение вывода пользователем.

Сочетайте, но чётко разделяйте роли

Инструменты действуют, ресурсы читают, а промпты инструктируют. Разграничение каждой роли позволяет клиентам и модели всегда понимать, чего ожидать от каждой из них.

Подключите точку входа

Завершите файл запуском сервера, чтобы клиент мог подключиться. Вызов run запускает цикл и передаёт управление транспорту.

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

Быстрая проверка

Проверим деталь с URI ресурса.

Итоги

Вы реализовали все три примитива: инструменты, которые действуют, resource, который читает, и prompt, который инструктирует. Итоговый сервер теперь выполняет настоящую работу. 🎯

Часто задаваемые вопросы

Урок «Реализация инструментов, ресурсов и запросов» бесплатный?

Да — полный текст урока «Реализация инструментов, ресурсов и запросов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс MCP Academy, подпишись на CoddyKit PRO. Курс MCP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Реализация инструментов, ресурсов и запросов»?

Создайте все три примитива для нужного сценария. Ты практикуешь MCP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать MCP Academy?

Предыдущий опыт не требуется. MCP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Реализация инструментов, ресурсов и запросов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке MCP Academy?

Да. Каждый урок MCP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Определение границ проекта и инструментов
  2. Реализация инструментов, ресурсов и запросов
  3. Тестирование, проверка и усиление защиты
  4. Документирование и публикация сервера
← Назад к MCP Academy