Powrót do: Playwright z AI
Implementujemy własny serwer MCP z VS Code Copilot
Nasz cel – czyli co nasz serwer MCP będzie robił?
Nasz serwer MCP ma dostarczać informacje o wskazanym kraju.
Informacje takie jak liczba ludności, waluta, powierzchnia i wiele innych.
Dzięki naszemu serwerowi Copilot Agent będzie miał dostęp do szczegółów o danym kraju i będzie mógł bazować na realnych danych.
Jaki REST API wykorzystamy?
Będziemy bazować na darmowym API: https://restcountries.com/
Udostępnia ono endpointy do pobrania informacji o danym kraju:
https://restcountries.com/v3.1/name/poland
Lub o wszystkich krajach (tu musimy podać interesujące nas pola):
https://restcountries.com/v3.1/all?fields=name,capital,region,population,area,flags,languages,currencies
Wymagane narzędzia i biblioteki
Node.js: środowisko uruchomieniowe dla JavaScript, TypeScript
- Link do pobrania Node.js – https://nodejs.org/en/
VS Code: środowisko do rozwijania oprogramowania
- Link do pobrania VS Code – https://code.visualstudio.com/
Konto na GitHub: serwis do dzielenia się kodem, ale też pozwala na dostęp do darmowego Copiloa do VS Code.
- Link do serwisu GitHub – https://github.com/
Copilot: klient AI do VS Code
- Link do oficjalnej dokumentacji jak aktywowac VS Code Copilot – https://docs.github.com/en/copilot/get-started/quickstart
- Wtyczka do VS Code Copilot – https://marketplace.visualstudio.com/items?itemName=GitHub.copilot
Startujemy z projektem
Szybkie przygotowanie projektu (w pustym katalogu z domyślnymi opcjami):
npm init -y
Polecenie npm init -y
przygotuje Ci nowy plik package.json z domyślnymi opcjami, które później możesz wyedytować.
Aby zainstalować wymagane zależności:
npm i @modelcontextprotocol/sdk npm i zod npm i typescript npm i @types/node
Albo wszystkie za jednym razem:
npm i @modelcontextprotocol/sdk zod typescript @types/node
Cały wynikowy kod
Struktura plików i katalogów:
mcp-server-example/ ├── main.ts ├── package.json └── .vscode/ └── mcp.json
Zawartość pliku package.json:
{ "name": "mcp-server-countries", "version": "1.0.0", "description": "", "type": "module", "scripts": { "test": "npx -y @modelcontextprotocol/inspector npx -y tsx main.ts" }, "keywords": [], "author": "jaktestowac.pl", "license": "ISC", "dependencies": { "@modelcontextprotocol/sdk": "^1.14.0", "zod": "^3.25.67", "tsx": "^4.19.2", "typescript": "^5.4.5" } }
Zawartość pliku main.ts:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { z } from "zod"; const server = new McpServer({ name: "mcp-server-countries", version: "1.0.0", }); server.registerTool( "get-a-country", { title: "Get a specific country details", description: "Tool to get a specific country details from the REST API based on country name", inputSchema: { countryName: z.string().describe("The name of the country to get"), }, }, async ({ countryName }) => { const response = await fetch( `https://restcountries.com/v3.1/name/${countryName}` ); const text = await response.text(); return { content: [ { type: "text", text, }, ], }; } ); const transport = new StdioServerTransport(); server.connect(transport);
Zawartość pliku mcp.json:
{ "servers": { "mcp-server-countries": { "type": "stdio", "command": "npx", "args": ["-y", "tsx", "main.ts"] } }, "inputs": [] }
Prompt do testów serwera MCP
Przykładowe prompty do testów:
Use tool to get information about country Poland and its population
Use tool to get information about country Poland and county Sweden and tell me what country has bigger area
Czym są tools (narzędzia)?
Tools to funkcje lub akcje udostępniane przez serwer, które model AI może wywoływać w trakcie konwersacji.
Zgodnie ze specyfikacją, narzędzia to funkcje wykonywane przez model AI (na żądanie model wygeneruje wywołanie takiego narzędzia). W praktyce narzędzia pozwalają modelowi wykonać obliczenia, operacje na danych lub działania w świecie zewnętrznym (np. pobranie informacji z API), których sam model nie może bezpośrednio wykonać.
Można je porównać do wywołań typu POST w tradycyjnym API – narzędzia mogą modyfikować stan lub wykonywać efekty uboczne (np. zapis pliku, wysłanie zapytania sieciowego).
Zewnętrzne linki i zasoby
- Oficjalna dokumentacja MCP: https://modelcontextprotocol.io/introduction
- Oficjalne repozytorium modelcontextprotocol/typescript-sdk (zestawu bibliotek dla języka TypeScript): https://github.com/modelcontextprotocol/typescript-sdk
-
Jak skonfigurować VSCode z GitHub Copilot?
Sprawdź rozdział: AI – wtyczki i pierwsze testy
TIP: Cały webinar znajdziesz…- Dla posiadaczy Programy Playwright:
Webinar: Playwright z AI 2025 – od czego zacząć? - Dla pozostałych kursantów:
Webinar: Playwright z AI – od czego zacząć?
- Dla posiadaczy Programy Playwright: