Uber zbudował platformę MCP Gateway, aby ujednolicić sposób, w jaki agenci AI odkrywają i wywołują wewnętrzne usługi firmy. Rozwiązanie to odpowiada na wyzwania związane z pofragmentowanymi integracjami, powielaną infrastrukturą oraz niespójnymi praktykami w zakresie bezpieczeństwa, towarzyszącymi rosnącej adopcji agentów w organizacji. Platforma obsługuje ponad 800 serwerów MCP oraz ponad 5000 narzędzi, tworząc wspólną warstwę do odkrywania, translacji protokołów, autoryzacji i wykonywania operacji.
Inżynierowie firmy Uber opisują to podejście jako architekturę mikrousług, która udostępnia istniejące interfejsy API jako narzędzia MCP bez konieczności wprowadzania zmian w samych usługach bazowych. Architektura rozdziela Rejestr MCP (MCP Registry), pełniący funkcję płaszczyzny sterowania, od Bramki Proxy (Proxy Gateway), odpowiadającej za wykonywanie zadań w czasie rzeczywistym. Rejestr zarządza definicjami narzędzi, schematami, własnością i ustawieniami włączania, podczas gdy proxy tłumaczy żądania MCP na wywołania HTTP, gRPC lub TChannel i przekształca odpowiedzi na wyniki zgodne z MCP.
Architektura ta wywołała porównania do znanych wzorców bramek API. Ajay Sharma, Principal Software Engineer w Microsoft CoreAI, zauważył we wpisie na portalu LinkedIn, że Azure API Gateways realizuje podobne zadania od pewnego czasu, co stanowi sposób na wprowadzenie porządku w chaosie towarzyszącym dużym modelom językowym (LLM). Z kolei Kelly Goetsch, prezes Pipe17, wskazał, że nowa bramka MCP Ubera wygląda analogicznie do bramek budowanych przez dekady dla API oraz GraphQL. Tamir Dresher podkreślił natomiast na LinkedIn dalszą aktualność klasycznych zagadnień systemów rozproszonych, takich jak bezpieczeństwo, odkrywanie, obserwowalność i zarządzanie.
Automatyczne odkrywanie narzędzi realizowane jest przez narzędzie AutoCrawler przy użyciu Cadence. Skanuje ono wewnętrzne rejestry języka definicji interfejsów (IDL) i wyciąga definicje API ze schematów Protocol Buffers oraz Thrift. Następnie generuje schematy zgodne z MCP i wykorzystuje duży model językowy (LLM) do tworzenia opisów narzędzi. Nowo wykryte narzędzia pozostają wyłączone, dopóki zespoły odpowiedzialne za nie nie przejrzą ich i jawnie ich nie włączą. Zmiany konfiguracji trafiają do płaszczyzny danych bez konieczności restartowania lub ponownego wdrażania usług.
W zakresie bezpieczeństwa bramka egzekwuje autoryzację na poziomie serwera i narzędzi za pośrednictwem wewnętrznego systemu kontroli dostępu firmy Uber. Wspiera również anonimizację i usuwanie danych osobowych (PII) oraz innych wrażliwych informacji z odpowiedzi narzędzi. W przypadku integracji z zewnętrznymi dostawcami, takimi jak Jira czy Google, osobna usługa wymienia wewnętrzne tokeny użytkowników na odpowiednie tokeny uwierzytelniania stron trzecich.
Wraz ze wzrostem katalogu narzędzi ładowanie definicji tysięcy z nich do kontekstu agenta staje się niewydajne. Aby temu zapobiec, Uber opracował Omni MCP, który obsługuje przyrostowe odkrywanie – agenci mogą wyszukiwać serwery, odkrywać istotne narzędzia, pobierać pojedyncze schematy i wywoływać wybrane narzędzia według potrzeb. Funkcja Response Projection pozwala agentom żądać tylko określonych pól odpowiedzi zamiast całych struktur danych. Ponadto interfejs wiersza poleceń aifx umożliwia agentom programistycznym odkrywanie i wywoływanie narzędzi oraz zapisywanie wyników w plikach do selektywnej inspekcji.