Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak

Asystent AI dla ServiceFusion: Zapytaj o oferty pracy przez czat, a nie kliknięcia

Sytuacja
Operator serwisu polowego działający na ServiceFusion chciał, aby dyspozytorzy i pracownicy biura przestali klikać przez menu za każdym razem, gdy potrzebowali sprawdzić historię pracy klienta, otworzyć wyceny lub zobaczyć, który technik został przypisany do zadania. Zespół już korzystał z Claude do innych zadań. Oczywistym krokiem naprzód: pozwolić Claude rozmawiać bezpośrednio z ServiceFusion.

Problem
ServiceFusion udostępnia REST API, ale asystenci AI nie mogą wywoływać go bezpośrednio. Protokół Kontekst Modelu (MCP) jest nowym standardem umożliwiającym klientom AI strukturalny dostęp do zewnętrznych narzędzi, a żaden serwer MCP nie istniał dla ServiceFusion. Zbudowanie go poprawnie oznaczało rozwiązanie trzech problemów jednocześnie:

Cykl życia tokena OAuth2. ServiceFusion używa krótkoterminowych tokenów dostępu, które wygasają i muszą być odświeżane w sposób przezroczysty, aby AI nigdy nie napotkało błędu autoryzacji w trakcie rozmowy.
Wielu najemców. Jedna instancja serwera musiała izolować dane uwierzytelniające i wywołania API dla wielu firm, z każdą mającą swoje własne konto ServiceFusion.
Samodzielna rejestracja. Operator nie chciał konfigurować każdego nowego najemcy ręcznie.
Rozwiązanie
Zbudowałem serwer MCP dla wielu najemców w Node.js i TypeScript, który znajduje się pomiędzy klientami AI (Claude, Cursor, ChatGPT) a ServiceFusion. Udostępnia 13 strukturalnych narzędzi obejmujących podstawowe encje, z których rzeczywiście korzystają dyspozytorzy: klienci, zadania, wyceny, technicy i sprzęt.

Serwer obsługuje dwie niezależne warstwy OAuth2. Jedna uwierzytelnia przychodzące klientów AI do serwera MCP. Druga zarządza własnymi tokenami ServiceFusion serwera, w tym automatycznym odświeżaniem z blokadą współbieżności, aby jednoczesne żądania nigdy nie wywoływały podwójnych odświeżeń.

Wszystkie wrażliwe dane uwierzytelniające (identyfikatory klientów, sekrety, tokeny) są szyfrowane w spoczynku za pomocą AES-256-GCM w Supabase PostgreSQL. Nowi najemcy rejestrują się samodzielnie przez REST API, potwierdzają za pomocą OTP i dostarczają swoje dane uwierzytelniające ServiceFusion do aktywacji. Brak ręcznej pracy operatora przy rejestracji.

Lekki panel administracyjny pozwala operatorowi przeglądać wykorzystanie na najemcę, dostosowywać limity prędkości oraz aktywować lub dezaktywować konta.

Stos technologiczny: Node.js 20, TypeScript, @ modelcontextprotocol/sdk, Express, Supabase (PostgreSQL), szyfrowanie AES-256-GCM, Zod, Winston, Docker, nginx, Let's Encrypt

Wyniki
13 narzędzi MCP działa w obszarze klientów, zadań, wycen, techników i sprzętu
Brak ręcznej konfiguracji dla najemcy. Samodzielna rejestracja OTP i proces aktywacji
Przezroczysty OAuth2. Wygasłe tokeny odświeżają się automatycznie z ochroną przed warunkami wyścigu
Limity prędkości na najemcę (darmowe, pro, przedsiębiorstwo) egzekwowane na poziomie żądania
Pełne śledzenie wykorzystania (nazwa narzędzia, punkt końcowy, kod statusu, czas odpowiedzi) rejestrowane na najemcę do rozliczeń i analityki
Wdrożone do produkcji na Hetzner VPS za nginx z SSL, współistniejące z siostrzanym serwerem MCP na tym samym hoście

Jak to działa
1. Najemca wysyła POST do /api/register z nazwą firmy i adresem e-mail, otrzymuje 6-cyfrowy OTP
2. Najemca potwierdza przez /api/confirm, a następnie aktywuje, dostarczając dane uwierzytelniające OAuth ServiceFusion
3. Dane uwierzytelniające są szyfrowane za pomocą AES-256-GCM i przechowywane w Supabase
4. Klient AI (Claude, Cursor) wywołuje /mcp z tokenem dostępu; middleware identyfikuje najemcę i sprawdza limit prędkości
5. Przy wywołaniu narzędzia serwer sprawdza ważność tokena i automatycznie go odświeża, jeśli wygasł
6. Strukturalna odpowiedź wraca do klienta AI, a wywołanie jest rejestrowane do analityki wykorzystania
Szczegóły pracy
Dodana 7 kwietnia
69 wyświetleń
Freelancer
Andrey Boyko
Ukraina Charków
Brak opinii

Gotowy do podjęcia pracy Gotowy do podjęcia pracy
W serwisie 9 lat