Wyjaśnienie Model Context Protocol

Przestań pisać w kółko ten sam kod integracyjny.

Jeśli łączysz LLM z bazą danych lub API, często musisz pisać dedykowany kod pośredniczący (glue code) dla każdego nowego modelu. Tworzy to chaos. Kończysz z zarządzaniem wieloma połączeniami dla wielu narzędzi.

Model Context Protocol (MCP) rozwiązuje ten problem. Działa jak port USB-C dla AI. Budujesz narzędzie raz, a każdy model może go używać.

Architektura składa się z trzech części:

• Host: Aplikacja, której używasz, np. Claude Code lub IDE. • Client: Konektor wewnątrz hosta. • Server: Program, który budujesz, aby udostępnić dane lub narzędzia.

Możesz zbudować serwer MCP, korzystając z trzech głównych prymitywów:

  • Tools: Funkcje, które model wywołuje, aby wykonać pracę, np. wysłanie e-maila.
  • Resources: Dane tylko do odczytu, które aplikacja pobiera, np. plik logów.
  • Prompts: Wielokrotnego użytku szablony do konkretnych zadań.

Oto jak zbudować podstawowy serwer w Pythonie przy użyciu SDK FastMCP:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("demo-tools")

@mcp.tool()
def word_count(text: str) -> int:
    """Count 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 code reviews."""
    return f"Review this {language} code: {code}"

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

Ten kod zajmuje się za Ciebie złożoną komunikacją. Twoje docstringi stają się instrukcjami dla modelu.

Trzy wskazówki dla środowiska produkcyjnego:

  1. Bezpieczeństwo: Zawsze proś użytkownika o zatwierdzenie przed uruchomieniem narzędzia, które zmienia dane.
  2. Kontekst: Trzymaj opisy narzędzi krótkie. Długie opisy marnują tokeny.
  3. Błędy: Zwracaj jasne komunikaty. Model potrafi naprawić błąd „User not found”, ale nie naprawi surowego błędu krytycznego kodu (crash).

Przestań budować dedykowane konektory. Zbuduj serwer MCP raz i pozwól każdemu modelowi go używać.

Source: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian