OE MCP Connector i VS Code

W świecie aplikacji biznesowych opartych na technologii OpenEdge coraz częściej pojawia się pytanie, jak skutecznie wykorzystać sztuczną inteligencję w pracy z językiem Advanced Business Language. Choć narzędzia AI na stałe zadomowiły się już w wielu ekosystemach programistycznych, technologia OpenEdge pozostawała na uboczu. Głównym problemem była specyfika ABL, którego popularne modele językowe praktycznie nie znają. Z kolei budowa lub dostrajanie własnych modeli LLM to kosztowny i złożony proces, wymagający dużych zbiorów danych oraz specjalistycznej wiedzy.

W najnowszej wersji OE 12.8 deweloperzy dostają bardzo ciekawe narzędzie wspomagające ich pracę – Progress OpenEdge AI Coding Assistant. Jest ono specjalnie zaprojektowane z myślą o wsparciu programistów języka ABL. Zapewnia ono inteligentne, kontekstowe wsparcie w pisaniu, recenzowaniu i modernizowaniu kodu. Właściwie może powinienem napisać: wspaniałe, cudowne narzędzie… ale ten kto korzysta i testuje sztuczną inteligencję wie że trzeba jej “patrzyć na ręce”, bo tu i tam zdarzają się dziwne błędy. W sumie to chyba dobrze, bo programiści mogą jeszcze spać spokojnie. Zdarza się słyszeć opinię, że AI całkowicie zastąpi deweloperów, ale na to przyjdzie jeszcze trochę poczekać.

Asystent wykorzystuje architekturę Retrieval-Augmented Generation (RAG), która wzbogaca działanie modeli językowych poprzez pobieranie trafnych informacji z zewnętrznych źródeł jeszcze przed wygenerowaniem odpowiedzi. Mogą to być repozytoria kodu, dokumentacja projektowa, wewnętrzne standardy, bazy danych czy grafy wiedzy. Dzięki temu OpenEdge AI Coding Assistant nie udziela ogólnych, oderwanych od rzeczywistości podpowiedzi, lecz opiera swoje sugestie na faktycznym kontekście projektu — istniejącym kodzie, obowiązujących regułach i dokumentacji. Efektem są odpowiedzi bardziej precyzyjne, spójne z praktyką zespołu i możliwe do zweryfikowania.

Wykorzystanie Model Context Protocol (MCP) pozwala na ujednoliconą i skalowalną integrację asystenta z różnymi środowiskami programistycznymi, takimi jak Visual Studio Code, Windsurf czy Cursor. Takie podejście oddziela warstwę inteligencji od konkretnego IDE, co nie tylko upraszcza wdrożenie, ale także zapewnia elastyczność w przyszłości. MCP tworzy stabilne ramy do rozbudowy rozwiązania, umożliwiając wprowadzanie nowych narzędzi i adaptację do zmieniających się środowisk bez konieczności kosztownych zmian architektonicznych.

Choć mówimy o OpenEdge AI Coding Assistant, w praktyce instalujemy komponent o nazwie OE MCP Connector, ponieważ to właśnie on stanowi warstwę integracyjną całego rozwiązania. Sam asystent AI to logika i mechanizmy działające „w tle”, natomiast MCP Connector jest elementem technicznym, który łączy środowisko programistyczne (IDE) z silnikiem AI.

Connector wykorzystuje architekturę Model Context Protocol (MCP) do przekazywania kontekstu — kodu, metadanych, reguł czy informacji projektowych — między IDE a usługą AI. Dzięki temu asystent może działać w różnych narzędziach programistycznych w sposób spójny i standaryzowany.
Żeby używać tego produktu z wybranym IDE (ja pokażę na przykładzie VS CODE) trzeby wykonać sporo czynności, które po kolei pokażę.

Po pierwsze przed instalacja IDE, trzeba zainstalować Pythona w wersji 3.9 lub wyższej. Ważne żeby podczas instalacji zaznaczyć pole wyboru „Dodaj plik python.exe do ścieżki PATH”.
Oprócz tego trzeba posiadać ważną licencję OpenEdge 12.2 lub 12.8 i ważną umowę serwisową.
Po drugie musimy mieć konto w programie Progress Software Customer Validation Program (CVP). Logujemy się swoim Proghress ID i sprawdzamy grupę OpenEdge.
Powinniśmy widzieć zawartość a szczególnie dostęp do przypiętego postu: OpenEdge MCP Connector for ABL
Jeśli nie mamy dostępu to trzeba znaleźć na stronie link żeby poprosić o dostęp. Czasem dostęp dostajemy od razu a czasem trzeba poczekać do kilku dni.

Powyższy post zawiera wiele cennych informacji i, przede wszystkim, pliki do pobrania. Pobieramy plik: progress-openedge-mcp-connector-abl-1.0.0.vsix.
Jest on spakowany i musimy go po pobraniu rozpakować.
W VS Code przechodzimy do widoku Extensions i górnego menu po prawej stronie okienka () wybieramy: Install from VSIX… Znajdujemy nasz plik na dysku i po chwili instalacja jest zakończona. Restartujemy VS Code.

Teraz trzeba wygenerować API Key, żebyśmy mogli uwierzytelnić usługę MCP. Logujemy się do Progress Data Cloud. Cały proces jest dokładnie opisany w dokumentacji.
Po zalogowaniu klikamy na ikonę z ustawieniami (gear icon) i Services. Powinniśmy widzieć poniższy widok. Jeśli nie będzie usługi, musimy skontaktowac się z administratorem strony.

Nastęnie klikamy w prawym górnym rogu na ustawienia konta (ikona z ludzikiem), a następnie na nasz ProgressID.

W tych ustawieniach widzimy, że API Key nie jest jeszcze wygenerowany. Klikamy po prawej stronie na: Manage Your API Key i Generate. Wygenerowany klucz pojawi się i możemy go skopiować, aby użyć w naszym IDE.

W VS Code wchodzę w ustawienia pluginu i wpisuję email, który jest skojarzony z moim kontem ProgressID.

Plugin zawiera cały Help, co trzeba zrobić i w jakiej kolejności. I tak widzimy poniżej, że wciskając Ctrl+Shift+P otworzy się okienko poleceń w którym nalezy wpisać: Progress OpenEdge MCP:Login to MCP.

Wtedy pojawi się jeszcze jedno okienko w którym wklejamy nasz klucz API Key. Jesli połaczenie się powiodło widzimy w prawym dolnym rogu OE MCP Connected.
W poprzednim artykule pisałem o pliku z instrukcjami .github/instructions.md. Wykasowuję jego poprzednia zawartość i wpisuję coś jak poniżej. Oczywiście można wpisac o wiele instrukcji, ale na razie wystarczy tyle:

# Copilot Instructions for OpenEdge ABL

## OpenEdge ABL Coding Standards

- All code, scripts, and examples must use OpenEdge ABL syntax and conventions.
- Always use the MCP server OpenEdge and collection "12.8" as the authoritative source for syntax and code examples.

## AI Agent Guidance

- When generating code or documentation, always use OpenEdge ABL syntax and reference the MCP server OpenEdge, collection "12.8" for syntax, examples and best practices.

Restartuję IDE. Otwieram nowy plik procedury .p. W oknie Copilota wpisuję prompta:
Write a new program in OpenEdge ABL that:
1. Prompts the user for a customer number
2. Finds that customer in the Customer table
3. Calculates the total value of all orders for that customer by summing OrderLine.ExtendedPrice
4. Displays the results.

Po chwili dostaję kod programu z poprawną składnią, który generuje poprawny wynik.

/* customer_total.p
   Prompt for customer number, calculate total order value.
*/

DEF VAR iCustNum AS INTEGER NO-UNDO.
DEF VAR dTotal    AS DECIMAL   NO-UNDO INITIAL 0.

/* ask the user for the customer number */
DISPLAY iCustNum LABEL "Customer number".
UPDATE iCustNum.

/* locate the customer record */
FIND Customer WHERE Customer.CustNum = iCustNum NO-LOCK NO-ERROR.
IF NOT AVAILABLE Customer THEN DO:
    MESSAGE "Customer" iCustNum "not found." VIEW-AS ALERT-BOX.
    RETURN.
END.

/* sum extended prices for all order lines of the customer's orders */
FOR EACH Order OF Customer NO-LOCK:
    FOR EACH OrderLine OF Order NO-LOCK:
        dTotal = dTotal + OrderLine.ExtendedPrice.
    END.
END.

/* display the result */
DISPLAY dTotal LABEL "Total Order Value" FORMAT "->>,>>9.99".

RETURN.

Przykład jest dość prosty ale chodzi tu bardziej o instalację i konfigurację MCP Connectora. Zachęcam, jak zwykle, do testów.

W przeciwieństwie do uniwersalnych asystentów kodowania, które oferują szerokie, lecz często powierzchowne wsparcie, OpenEdge AI Coding Assistant został zaprojektowany z myślą o specyfice ABL i ekosystemu OpenEdge. Uwzględnia charakterystyczne wzorce, praktyki i wymagania biznesowe, dzięki czemu stanowi realne, a nie tylko deklaratywne wsparcie dla zespołów pracujących z tym środowiskiem.