IT · Model Context Protocol
Host · Client · Server · Tools · MCP Flow
Урок 3
Блок 1
Що таке MCP і хто бере участь у протоколі
Архітектура MCP
Model Context Protocol — стандарт передачі контексту мовним моделям: промпт, інструкції для tools, додаткові дані.
MCP — універсальний інтерфейс (аналог USB-C): один Server підключається до різних AI-додатків без змін.
Архітектура MCP
Що це: AI-додаток, який використовує MCP для роботи з зовнішніми сервісами.
За що відповідає
Отримує запит користувача, визначає потрібні tools або дані, ініціює взаємодію через MCP і формує фінальну відповідь.
Приклади
Cursor, Claude Desktop, VS Code, кастомні AI-агенти.
Архітектура MCP
Що це: компонент всередині Host, який говорить із MCP Server мовою протоколу.
За що відповідає
Встановлює з'єднання з Server, надсилає запити і отримує відповіді. Один Client — один Server.
Приклади
Кілька серверів у Cursor → Host створює окремий Client для Notion, GitHub, Jira.
Архітектура MCP
Що це: програма, яка надає AI-додатку стандартизований доступ до зовнішньої функціональності.
За що відповідає
Експонує tools, resources і prompts; виконує дії і звертається до API, баз даних та інших сервісів.
Приклади
Notion MCP Server, GitHub MCP Server, PostgreSQL MCP Server, власний сервер на Python.
Архітектура MCP
Що це: стандарт взаємодії між Client і Server на основі JSON-RPC 2.0.
За що відповідає
Формат запитів і відповідей, правила handshake, виклик tools і читання resources.
Приклади
initialize, tools/list, tools/call, resources/read.
Архітектура MCP
Client і Server обмінюються JSON-повідомленнями за стандартом JSON-RPC 2.0:
method, params, id → result або error.
{ "jsonrpc": "2.0", "id": 1,
"method": "tools/list", "params": {} }
initialize, tools/list, tools/call, resources/read
Архітектура MCP
Запит користувача → вибір tool або resource
Зовнішні сервіси
Користувач → Host → Client → Server → зовнішній API → відповідь назад
Архітектура MCP
Що це: офіційні бібліотеки (Python, TypeScript тощо) для створення власного MCP Server без ручної реалізації протоколу.
Що робить SDK
initialize, handshake, відповідіtools/list і tools/callДе потрібен
Host і Client зазвичай уже вбудовані в AI-додаток. SDK потрібен для написання Server.
Архітектура MCP
Найпростіший MCP Server на Python з одним tool hello:
from mcp.server import Server
from mcp.server.stdio import stdio_server
app = Server("my-server")
@app.list_tools()
async def list_tools():
return [{"name": "hello", "description": "Say hello"}]
@app.call_tool()
async def call_tool(name, arguments):
return [{"type": "text", "text": "Hello, World!"}]
async with stdio_server() as streams:
await app.run(*streams)
Блок 2
Три інтерфейси MCP Server
Tools, Resources і Prompts
create_notion_page · search_jira_issues · run_sql_query ·
get_figma_design_context · create_github_issue
«Створи баг у Jira про помилку логіну» → LLM викликає create_jira_issue з title і description.
Tools, Resources і Prompts
Static: api-spec.json, schema.sql, README.md, PDF
Dynamic: статус CI/CD, відкриті PR, сторінка Notion, feature flags
«Які поля в таблиці users?» → читання db/schema.sql без виклику tool.
Tools, Resources і Prompts
code-review · summarize-meeting · design-to-code ·
write-api-test
Зробити → tools · Прочитати → resources · Стандартизувати → prompts
Tools, Resources і Prompts
Приклад MCP Server на Python: tool, resource і prompt в одному
server.py.
from fastmcp import FastMCP
mcp = FastMCP("demo-server")
# Tool — дія
@mcp.tool
def create_jira_issue(title: str, description: str) -> str:
"""Створити issue в Jira."""
return f"Issue created: {title}"
# Resource — контекст
@mcp.resource("db://schema.sql")
def db_schema() -> str:
"""Схема таблиць БД."""
return "CREATE TABLE users (id INT, email TEXT)"
# Prompt — шаблон
@mcp.prompt
def code_review(path: str) -> str:
"""Шаблон code review."""
return f"Review {path}: style, tests, security"
if __name__ == "__main__":
mcp.run()
Блок 3
Виконання tools та роль LLM
MCP Flow
Фінал заняття
На цій лекції ми розібрали архітектуру MCP: ролі Host, Client і Server, основу протоколу та три інтерфейси сервера — tools, resources і prompts.
Також побачили MCP Flow — як застосунок, LLM і MCP Server взаємодіють під час виконання запиту користувача.
У наступній лекції перейдемо до transport layer і створення власного MCP-сервера на Python.