Uber samler over 800 MCP-servere bak én gateway og lar en LLM skrive verktøybeskrivelsene
Generer MCP-verktøy fra API-skjemaene du allerede har og la agenten finne dem trinnvis, slik Uber nå gjør med over 800 MCP-servere bak én gateway.
«Eksisterende API-er er den raskeste måten å gi en agent verktøy på», skriver ingeniørene bak Ubers MCP Gateway i en gjennomgang på Ubers ingeniørblogg 1. oktober. Gatewayen er en mikrotjeneste som står mellom alle KI-agentene og backend-tjenestene i Uber, og den hoster nå over 800 MCP-servere og over 5 000 verktøy. De fleste er ikke skrevet for hånd.
Uber har tusenvis av interne tjenester som snakker HTTP, gRPC og TChannel. I stedet for å be hvert team skrive en MCP-server bygde Uber AutoCrawler, en Cadence-workflow som jevnlig skanner IDL-registeret etter nye tjenester og skjemaendringer. For hver tjeneste parser den Protobuf- eller Thrift-filene, lar en LLM skrive agentvennlige verktøybeskrivelser ut fra skjemaene og kommentarene, og oversetter skjemaene til JSON-RPC 2.0. Native MCP-servere bygget med Ubers rammeverk MCPFx oppdages via en heartbeat-metrikk og hentes inn med et listTools-kall.
Alt havner i registeret som deaktivert. Prinsippet er at oppdagelse ikke betyr eksponering: eierteamet må gå gjennom og slå på hvert verktøy, og hver endring i en verktøybeskrivelse gir en config-diff som eieren må godkjenne og kan rulle tilbake. Gatewayen håndhever autorisasjon per verktøy og fjerner persondata fra svarene før de når agenten.
Det mest overførbare er hvordan Uber løste kontekstproblemet.
«MCP har ikke noe innebygd konsept for søk på tvers av servere» — Uber Engineering, om MCP Gateway
En agent må vite hvilken server den skal snakke med før den kan spørre etter verktøy, og hundrevis av servere med verktøylister ville spist hele kontekstvinduet. Ubers svar er Omni MCP, én proxyserver med fire verktøy: discover_server, discover_tools, get_tool_schema og invoke_tool. Agenten graver seg ned trinnvis i stedet for å få alt servert. Response Projection legger til et felt i verktøyskjemaet der modellen oppgir hvilke nestede felt den trenger, og gatewayen trimmer svaret før det returneres.
For kodeagenter har Uber gått lenger. Code Mode går gjennom Ubers CLI aifx med tre kommandoer: aifx mcp list, aifx mcp search og aifx mcp call. Agenten kan lenke dem i én kommando og skrive svaret til fil, som den så søker i med grep. Code Mode er nå standard for MCP-bruk i kodeagenter i hele Uber.
Grepet ligner det Anthropic beskrev i en ingeniørartikkel om kodekjøring med MCP, der agenten leser verktøydefinisjoner fra filsystemet ved behov i stedet for å laste alt på forhånd. I Anthropics eksempel:
«Det reduserer tokenbruken fra 150 000 tokens til 2 000 tokens, en besparelse i tid og kostnad på 98,7 %» — Anthropic, om kodekjøring med MCP
Ubers gjennomgang er en designbeskrivelse, ikke en kodeutgivelse, så du må bygge mønstrene selv.
Hva bør du gjøre?
- Legg MCP-serverne bak én proxy med søk og trinnvis oppslag hvis agenten din har mer enn en håndfull, i stedet for å koble den direkte til alle.
- Generer verktøydefinisjoner fra OpenAPI-, Protobuf- eller Thrift-skjemaene du allerede har, men la dem starte deaktivert til et menneske har lest beskrivelsen.
- Gi kodeagenten et CLI som skriver verktøysvar til fil, slik at bare det den faktisk søker etter havner i konteksten.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.