Wyjaśnienie Model Context Protocol

Jeśli łączysz LLM z bazą danych lub API, piszesz kod pośredniczący (glue code). Piszesz go dla jednego modelu. Potem piszesz go ponownie dla kolejnego modelu. Tworzy to chaos integracyjny.

Model Context Protocol (MCP) rozwiązuje ten problem. Działa jak port USB-C dla AI. Zamiast dedykowanych kabli dla każdego urządzenia, wszyscy używają jednego standardowego złącza.

MCP zmienia matematykę z M x N integracji na M + N.

  • Autorzy narzędzi piszą jeden serwer MCP.
  • Autorzy aplikacji dodają jednego klienta MCP.
  • Każdy host obsługujący MCP może korzystać z dowolnego serwera.

Architektura składa się z trzech ról:

• Host: Aplikacja AI, której używasz, np. Claude Code lub IDE. Decyduje, z jakimi serwerami się połączyć. • Klient: Konektor wewnątrz hosta. Utrzymuje połączenie z serwerem. • Serwer: Program, który budujesz. Udostępnia narzędzia, dane lub prompty.

Używasz trzech głównych prymitywów:

  • Narzędzia (Tools): Funkcje, które model wywołuje, aby podjąć działanie, np. wysłanie e-maila lub zapytanie do bazy danych.
  • Zasoby (Resources): Dane tylko do odczytu, które aplikacja pobiera do kontekstu, np. plik lub log.
  • Prompty (Prompts): Wielokrotnego użytku szablony, które pomagają użytkownikom uruchamiać konkretne zadania.

Możesz zbudować serwer w Pythonie, korzystając z SDK FastMCP. Oto prosty przykład:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("demo-tools")

@mcp.tool()
def word_count(text: str) -> int:
    """Count the words in a text."""
    return len(text.split())

@mcp.resource("notes://team")
def team_notes() -> str:
    """Expose team notes."""
    return "Release freeze starts Friday."

@mcp.prompt()
def code_review(language: str, code: str) -> str:
    """Template for reviewing code."""
    return f"Review this {language} code: {code}"

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

Budując serwery, pamiętaj o tych zasadach:

  • Bezpieczeństwo: Wymagaj zatwierdzenia przez użytkownika dla narzędzi o niszczycielskim działaniu. Waliduj wszystkie argumenty.
  • Kontekst: Dbaj o to, by opisy narzędzi były krótkie. Długie opisy zużywają Twój budżet tokenów.
  • Błędy: Zwracaj jasne komunikaty, aby model mógł samodzielnie naprawić swoje błędy.

MCP sprawia, że narzędzia stają się zasobem wielokrotnego użytku. Napisz je raz. Pozwól każdemu modelowi z nich korzystać.

Źródło: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian

Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi