Przejdź do głównej zawartości

Narzędzia MCP

Sinaptic® DROID+ wspiera protokół Model Context Protocol (MCP) do łączenia zewnętrznych narzędzi z Twoimi agentami. Serwery MCP zapewniają takie możliwości jak wyszukiwanie w sieci, dostęp do plików, zapytania do baz danych oraz dowolne niestandardowe API — wszystkie one są dostępne dla Twoich agentów jako narzędzia, które można wywołać.

Jak działa MCP w Sinaptic® DROID+

Serwery MCP działają jako podprocesy obok Sinaptic® DROID+. Komunikują się one poprzez stdio przy użyciu protokołu JSON-RPC 2.0. Gdy agent potrzebuje skorzystać z narzędzia, Sinaptic® DROID+ wysyła żądanie do odpowiedniego serwera MCP i zwraca wynik do modelu LLM.

Agent → DROID+ → Serwer MCP (podproces) → Usługa zewnętrzna
← Wynik

Każdy serwer MCP deklaruje zestaw narzędzi wraz z nazwami, opisami i schematami wejściowymi. Model LLM widzi je jako dostępne wywołania funkcji.

Konfiguracja

Serwery MCP konfiguruje się w pliku droid.yaml w sekcji mcp:

mcp:
servers:
web-search:
command: "npx"
args: ["-y", "@anthropic/mcp-web-search"]
env:
BRAVE_API_KEY: "${BRAVE_API_KEY}"

filesystem:
command: "npx"
args: ["-y", "@anthropic/mcp-filesystem", "/data"]

Każdy wpis serwera określa:

  • command — plik wykonywalny do uruchomienia
  • args — argumenty wiersza poleceń
  • env — zmienne środowiskowe przekazywane do podprocesu (obsługuje składnię ${VAR})

Używanie narzędzi MCP w agentach

Po globalnym skonfigurowaniu serwerów MCP, agenci mogą korzystać z ich narzędzi, odwołując się do nich:

# configs/agents/research-agent.yaml
name: "research-agent"
description: "Agent, który potrafi przeszukiwać sieć i czytać pliki"

model:
name: "gpt-4o-mini"

personality: |
Jesteś asystentem badawczym. Używaj wyszukiwarki internetowej, aby znaleźć aktualne informacje,
oraz systemu plików, aby czytać dokumenty źródłowe.

tools:
- name: "current_time"
type: "builtin"

# Narzędzia MCP ze skonfigurowanych serwerów są dostępne automatycznie

Gdy serwery MCP są skonfigurowane w droid.yaml, ich narzędzia są dostępne dla wszystkich agentów. Model LLM otrzymuje definicje narzędzi jako część schematu wywoływania funkcji i może je wywoływać w razie potrzeby.

Popularne serwery MCP

Wyszukiwanie w sieci (Brave)

mcp:
servers:
web-search:
command: "npx"
args: ["-y", "@anthropic/mcp-web-search"]
env:
BRAVE_API_KEY: "${BRAVE_API_KEY}"

Udostępnia narzędzie web_search. Wymaga klucza API Brave Search.

Dostęp do systemu plików

mcp:
servers:
filesystem:
command: "npx"
args: ["-y", "@anthropic/mcp-filesystem", "/data/docs"]

Udostępnia narzędzia read_file, write_file, list_directory. Argument ścieżki ogranicza dostęp do danego katalogu.

Baza danych (PostgreSQL)

mcp:
servers:
database:
command: "npx"
args: ["-y", "@anthropic/mcp-postgres"]
env:
DATABASE_URL: "${DATABASE_URL}"

Udostępnia narzędzie query do wykonywania zapytań SQL typu read-only w Twojej bazie danych.

Niestandardowe serwery MCP

Możesz napisać własny serwer MCP w dowolnym języku. Serwer musi jedynie:

  1. Akceptować komunikaty JSON-RPC 2.0 na wejściu stdin
  2. Zapisywać odpowiedzi na wyjściu stdout
  3. Deklarować dostępne narzędzia za pomocą metody tools/list

Przykład z serwerem MCP w Pythonie:

mcp:
servers:
my-tools:
command: "python"
args: ["./tools/my_server.py"]
env:
API_TOKEN: "${MY_API_TOKEN}"

Więcej informacji na temat budowania serwerów znajdziesz w specyfikacji MCP.

MCP + Docker

Uruchamiając Sinaptic® DROID+ w Dockerze, serwery MCP muszą mieć dostęp do swoich środowisk uruchomieniowych wewnątrz kontenera. W przypadku serwerów MCP opartych na npm, w obrazie potrzebny będzie Node.js.

Opcja 1: Użyj niestandardowego pliku Dockerfile, który dodaje Node.js:

FROM sinapticai/droid:latest AS base
# Dodaj zależności serwera MCP
COPY --from=node:20-alpine /usr/local/bin/node /usr/local/bin/
COPY --from=node:20-alpine /usr/local/bin/npx /usr/local/bin/

Opcja 2: Uruchom serwery MCP jako oddzielne kontenery i skonfiguruj Sinaptic® DROID+ tak, aby łączył się przez sieć zamiast stdio (wymaga transportu MCP obsługującego sieć).

Debugowanie MCP

Włącz logowanie debugowania, aby widzieć komunikację MCP:

logging:
level: "debug"

Spowoduje to logowanie wszystkich komunikatów JSON-RPC między Sinaptic® DROID+ a serwerami MCP, włączając wywołania narzędzi i ich wyniki.

Ograniczenia

  • Serwery MCP w Community Edition działają tak samo jak w wersjach Pro/Enterprise — nie ma ograniczeń funkcji dotyczących MCP.
  • Każdy serwer MCP działa jako oddzielny podproces. Staraj się utrzymywać ich rozsądną liczbę (zazwyczaj 2-5 serwerów).
  • Serwery MCP muszą być dostępne w systemie, w którym działa Sinaptic® DROID+ (lub w kontenerze).