Bezpieczeństwo narzędzia WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Opublikowano: 9 czerwca 2026 r.

Za pomocą protokołu Web Model Context Protocol (WebMCP) możesz tworzyć i udostępniać strukturalne narzędzia agentom AI działającym w przeglądarce, w tym agentom opartym na rozszerzeniach. Agent wykorzystuje duży model językowy (LLM), reguły, pamięć i narzędzia do wykonywania działań w imieniu użytkownika.

Modele LLM traktują cały tekst, instrukcje i dane użytkowników jako pojedynczy ciąg tokenów, dlatego są podatne na pośrednie wstrzykiwanie promptów, czyli dodawanie przez atakującego złośliwych instrukcji. Nasz zespół przygotował ten dokument dotyczący bezpieczeństwa narzędzi, aby pomóc Ci chronić Twoją witrynę i użytkowników przed nieuczciwymi podmiotami.

Niektóre modele mają warstwy, które zapobiegają wstrzykiwaniu promptów, ale nie można zagwarantować bezpieczeństwa w dużym modelu językowym (LLM). Modele mają charakter probabilistyczny. Pamiętaj, że w przypadku systemów agentowych, które korzystają z najnowocześniejszych LLM, dochodziło już do powtarzalnych ataków typu wstrzykiwanie promptów.Częstość występowania ataków w internecie rośnie.

Aby rozwiać te obawy, przygotowaliśmy wstępne wskazówki dotyczące bezpieczeństwa dla osób, które tworzą narzędzia za pomocą WebMCP.

Korzystanie z podpowiedzi dotyczących adnotacji

Podczas tworzenia narzędzi warto dodać kilka wskazówek:

  • W razie potrzeby użyj untrustedContentHint. Jeśli narzędzie zwraca treści generowane przez użytkowników lub dane pochodzące z zewnętrznych źródeł, rozważ dodanie do niego ikony untrustedContentHint. To pole wyraźnie oznacza ładunek jako niezaufany, co pomaga chronić integralność witryny, a jednocześnie wysyła do agenta sygnał, że te dane wymagają większej uwagi.
  • Używaj ikony readOnlyHint w przypadku narzędzi, które nie zmieniają stanu. Dzięki temu agent może podejmować lepsze decyzje dotyczące tego, kiedy prosić użytkowników o potwierdzenie.

Udostępniaj narzędzia z rozwagą

Interfejs WebMCP document.modelContext.registerTool udostępnia funkcje narzędzia tylko agentom. Domyślnie inne witryny lub ramki iframe z innych domen nie mogą obserwować Twoich narzędzi ani wchodzić z nimi w interakcje.

Możesz przyznać dostęp do narzędzia za pomocą opcji exposedToregisterTool, aby umożliwić dostęp do tablicy konkretnych, bezpiecznych punktów początkowych. Udostępnia to narzędzie tym domenom, gdy jest ono osadzone w Twojej witrynie, oraz gdy Twoja witryna jest osadzona w tej domenie.

// https://partner.org

document.modelContext.registerTool({
  name: 'my_shared_tool',
  description: 'Shared across origins',
  // ...
}, {
  exposedTo: ['https://trusted.com', 'https://example.com']
});

Udostępniaj narzędzia tylko zaufanym źródłom. Jest to szczególnie ważne, gdy narzędzia zarządzają danymi użytkowników lub w inny sposób wpływają na użytkownika.

  • Narzędzie tylko do odczytu, takie jak getFavoriteProducts, może ujawniać informacje o użytkowniku. Udostępniaj te narzędzia tylko witrynom, którym w inny sposób udostępniasz te dane bezpośrednio.
  • Narzędzia z uprawnieniami do odczytu i zapisu wykonują działania w imieniu użytkownika. Te narzędzia powinny być udostępniane tylko źródłom, które uznasz za zaufane, gdy działają w imieniu użytkownika. Możesz na przykład chcieć udostępnić postComment użytkownikom trustedExample.com, ale nie użytkownikom evilExample.com.

Ustawianie budżetów znaków

Aby uniknąć ograniczeń dotyczących agentów, pisz zwięzłe opisy narzędzi i wyniki. Aby uzyskać lepsze rezultaty, zalecamy stosowanie tych limitów znaków:

  • 500 znaków na opis narzędzia
  • 150 znaków na opis parametru
  • 30 znaków w nazwie narzędzia i nazwie parametru
  • Limit 1500 znaków na wynik każdego narzędzia

Prawdopodobnie poszczególni agenci będą się różnić, więc możesz dostosować limity znaków na podstawie opinii użytkowników.

Dalsze kroki

Stale prowadzimy badania i pracujemy nad stworzeniem bezpiecznej infrastruktury dla sieci opartej na agentach. Na przykład trwa dyskusja na temat zarządzania zgodą między różnymi podmiotami, a projekt specyfikacji zawiera requestUserInteraction(), które umożliwiają asynchroniczne żądanie danych wejściowych użytkownika podczas wykonywania narzędzia.

Jak zamierzasz wdrożyć WebMCP w swojej aplikacji? Czy masz inne obawy, dotyczące bezpieczeństwa lub nie? Jeśli zarejestrujesz się w programie testów origin WebMCP, chcemy poznać Twoją opinię:

Jeśli tworzysz agenta, zalecamy zapoznanie się z artykułem Względy bezpieczeństwa dotyczące agentów w przypadku WebMCP.