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:

Hej hej,
Czad – mimo iż todh namęczyłem się z dziadem – miałem problem z ustaleniem połaczenia, gdy używałem repo gita, bo chciał autentykacji, której nie byłem w stanie nigdzie mu podać – ale jak stworzyłem projekt bez połączenia z gitem to na lokalu wszystko poszło zgodnie z planem – jednak zaczynałem od stanu 30% a mam już 84% chat message’y więc mocno zżera – zasoby a szkoda – może darmowe konto nie nadaje się za bardzo do pobawienia się serwerem mcp ale potencjał mają – myślę że takie narzędzia, dostosowane do bawienia się różnymi REST API, ale z tego co widziałem na którymś z webinarów ludzi od Playwrighta – dotyczącym serverów MCP i zabawie w scrfapowanie stron i tworzenie testów – to potęga 🙂 – czy w projekcie czy ogólnodostępnymi – mógłby znaleźć mcp potężne zastosowanie – nie wiem jeszcze jak dalej to pójdzie – ale rozwija się mocno więc można jeszcze z niego sporo wyciągnąć – tak w ogóle działałem na połączeniu z GPT-4.1 i bardzo podobały mi się raporty w VSCodzie – bo inspektor to pobiera tylko obiekt i wyświetla a jeśli chodzi o chata VSCode – to super zwięzły fajny obiekt opisany zwraca np :
Here is the information about Germany using the registered MCP tool:
Official name: Federal Republic of Germany (Bundesrepublik Deutschland)
Capital: Berlin
Population: 83,240,525
Region: Europe (Western Europe)
Official language: German
Currency: Euro (EUR)
Area: 357,114 km²
Let me know if you need more details!
Super temat – dzięki za jego opis i poruszenie super sprawa.
Pozdrawiam i spokojności życzę 😉
Jakub
Dzięki! 😁 Śmiało eksploruj dalej temat bo to tylko wierzchołek 😉
I fakt – na darmowym koncie Copilota bardzo szybko mozna aktualnie dobić do limitu – wtedy przydaje się wiedza z programowania 😀
Oj nie na to odpowiedziałem na co chciałem i tak masz rację to dopiero początki ale super jak zwykle przedstawione i nie omieszkam dalej eksplorować a i wiedza z programowania się podnośi – bo czasem jestem zmuszony doczytać z linków zewnętrznych rozwiązania i zastosowanie – aby sobie we łbie ułożyć 🙂
Pozdrawiam i spokojności życzę – do wkrótce jeśli chodzi o ten temat 🙂
Chętnie bym zastosował na apce z którą pracuje na co dzień, ale na ten moment jestem spragniony kolejnych lekcji 😉 natomiast bardzo mi się podobało wskazanie zastosowanych rozwiązań z dokumentacji, gdzie to znaleźć i jak zastosować to było naprawdę super. 😉
Ciesze się, że Ci się podobał ten materiał 😁
Cały koncept MCP bardzo dynamicznie się rozwija, więc najważniejsze jest aby wiedzieć, gdzie i jak szukać najnowszych informacji😉
Z doświadczenia wiem, że aktualnie dość niewiele projektów/firm decyduje się na stworzenie MCP do rozwijanych aplikacji… ale może się to zmienić.
Tymczasem w kolejnych lekcjach zobaczysz co jeszcze może nam zaoferować MCP i myślę że bardzo spodoba Ci się sekcja
Projekt integracji serwera MCP z aplikacją😁Super – jak tylko znów wyzeruje mi się copilot to będę zabierał się dalej za materiały – już nie mogę się doczekać – ale połowa września już niedługo 🙂
Pozdrawiam i spokojności życzę 🙂