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:
- Akceptować komunikaty JSON-RPC 2.0 na wejściu stdin
- Zapisywać odpowiedzi na wyjściu stdout
- 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).