Line of work

AI Agent Products & Remote MCP

Production AI agents on Vertex AI and LangGraph, exposed through a remote MCP server with its own OAuth 2.1 authorization server.

  • #work
  • #freelance
  • #ai
  • #mcp
  • #oauth

One of my Independent AI & Full-Stack Engineer (Freelance) lines of work: production AI agent products and the infrastructure that lets other AI clients use them.

Architecture

  • Agent — LangGraph (LangGraph.js) on Google Vertex AI. A tool-calling agent runs on Gemini models through Google Vertex AI, wired with the Vercel AI SDK and LangChain integrations; OpenAI models are a swappable alternative behind the same interface.
  • Generative UI. An earlier version streamed React components straight from the model with the AI SDK, so forms and results appeared inside the conversation instead of as text.
  • Remote MCP (Model Context Protocol) server. The same capabilities are exposed as an MCP server on Vercel (Streamable HTTP transport) with tools, resources and prompts designed around tasks rather than endpoints, so Claude, ChatGPT or Claude Code can connect to it as a custom connector.
  • OAuth 2.1 built in. The server is both the protected resource and its own authorization server: discovery metadata (RFC 9728 and RFC 8414), Dynamic Client Registration (RFC 7591), authorization code with PKCE (S256), refresh-token rotation, revocation (RFC 7009), Google sign-in for identity, and an account page listing connected apps.
  • Evals. A benchmark harness replays a corpus of conversations against simulated users, scores the agent's tool calls and answers, and produces comparable reports between versions.
  • Observability. Langfuse tracing over OpenTelemetry (OTLP export) for every model and tool call.
  • Backend and documents. A NestJS API on Firebase Cloud Functions; reports are rendered to PDF with serverless headless Chromium and templates, and delivered through signed storage URLs.
  • Companion apps. Flutter web apps with Bloc, go_router, i18n and a repository pattern split into packages, monitored with Sentry and protected with Firebase App Check.

Why these choices

Exposing an agent product over MCP with standards-based OAuth means any capable AI client can use it securely without custom integrations — the protocol does the plumbing. Evals and tracing from the start keep model upgrades and prompt changes measurable.

Related