AI Wisdom
accepted2026-04-01

ADR-010: Tool Integration Protocol — MCP vs Custom Tool Calling

In this article

Context

Our AI agents need to call external tools — content search, user data lookup, web scraping, code execution. We must decide whether to build custom tool integrations using OpenAI function calling / Vercel AI SDK tools, or adopt the Model Context Protocol (MCP) as a standard integration layer.

Options Evaluated

Custom Tool Definitions (OpenAI Function Calling / Vercel AI SDK)

Pros
  • +Simple — define tools as TypeScript functions with Zod schemas
  • +No additional server required — tools run in-process
  • +Full control over tool implementation and error handling
  • +Already have patterns from existing tool use implementations
Cons
  • Each new tool requires code changes and deployments
  • No standard discovery mechanism — tools are hard-coded per agent
  • Cannot reuse tools across different AI hosts/clients

Model Context Protocol (MCP)

Pros
  • +Industry-standard protocol — tools work across any MCP-compatible AI client
  • +Dynamic tool discovery — agents can find new tools at runtime
  • +Growing ecosystem of pre-built MCP servers (GitHub, Slack, Google Drive, etc.)
  • +Separation of concerns — tool servers are independently deployable and versioned
Cons
  • Adds MCP client/server infrastructure complexity
  • Remote MCP servers add network latency
  • Protocol is still evolving — breaking changes possible
  • Overkill for simple, stable tool sets

Decision

We use custom Vercel AI SDK tools for internal, stable tool integrations (content search, database queries, user profile lookup) and adopt MCP for third-party and user-extensible integrations. We run a lightweight MCP host that wraps our custom tools, enabling future clients (Claude Desktop, Copilot, custom agents) to reuse them without code changes.

Consequences

  • Define all internal tools using Vercel AI SDK tool() with Zod schemas
  • Build a lightweight MCP server wrapper for tools that external agents may need
  • Adopt MCP for third-party integrations (GitHub, Slack, web search)
  • Publish our MCP server endpoints in a tools.json discovery file
  • Plan migration of custom tools to MCP standard as the ecosystem matures

Discussion

Sign in to share your feedback and join the discussion.