Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Wrong Reasons to Build an MCP Server

Avatar for A N M Bazlur Rahman A N M Bazlur Rahman
October 06, 2026
4

The Wrong Reasons to Build an MCP Server

Not every AI integration needs an MCP server. Sometimes a direct API or SDK call is enough, and adding a protocol layer introduces complexity without solving a meaningful problem.

This talk will use an independent Java demonstration project to compare MCP-based and direct API integrations. Starting with the same task, I’ll explore what each approach requires and where the tradeoffs appear: authentication, deployment, latency, tool design, and maintenance.

The examples will examine when reuse across AI clients justifies an MCP server, when the resource model helps, and how to choose tool granularity. I’ll distinguish design expectations from observations gathered through the demonstration.

Attendees will leave with a practical checklist for deciding when to build an MCP server, when to use an existing one, and when a direct integration better fits their needs.

Avatar for A N M Bazlur Rahman

A N M Bazlur Rahman

October 06, 2026

More Decks by A N M Bazlur Rahman

Transcript

  1. The Wrong Reasons to Build an MCP Server One task.

    Two integrations. One decision. A N M Bazlur Rahman
  2. Disclaimer The opinions in this talk are my own and

    do not represent those of my employer. 02
  3. A tool call does not require MCP “We already have

    a REST or GraphQL API.” “Our AI needs tools.” “Everyone is building MCP servers.” Capability Protocol Deployment What work should the tool do? Which interface does the consumer need? Who should run the process? What requirement is still missing? 04
  4. One order. The same backend. Two paths. Why is ORD-1042

    delayed? in-process Java host DI REC T HTTP Local tool Order API tool call MCP client Java host MCP HTTP MCP server Order API Streamable HTTP Fixture PAID ON_ HOLD ADD RESS CH ECK TESTED DEMO ARCHITECT URE 05
  5. The direct integration already solves the task COMPILED JAVA 25

    EXCERP T CAP TURED RESULT getOrderSupportSummary("ORD-1042") Paid. Shipment on hold. // Direct adapter in the Java host return new SupportTool(client::summary); Next: ask the customer to confirm their address. 06
  6. Same capability. Another boundary. MCP client MCP Java host HTTP

    MCP server Order API Streamable HTTP 1 Discover the tool. 2 Call the same capability. 3 Return the same evidence. CAP TURED MCP EXCHAN GE → discovery tools/list → tools/call getOrderSupportSummary → backend request via shared client 07
  7. The boundary has an owner Deployment and compatibility Credentials and

    authorization MCP credential Java host Timeouts, errors, and observability backend credential MCP server Order API MCP support alone does not provide enterprise gateway controls. PRODUCT ION DESIGN EXPECTATION 08
  8. Tool count is not interface quality SHAPE CONTRACT CALLER RESPONSIBILITY

    Endpoints getOrder / getPayment / getShipment Combine the relevant facts Task getOrderSupportSummary(orderId) Supply the order ID Typed group getOrderData(kind, orderId) Use explicit choices and fields Opaque dispatcher call(operation, paramsJson) Construct and validate inner JSON Typed arguments Arguments inside a string {"kind":"shipment", "orderId":"ORD-1042"} {"operation":"shipment", "paramsJson":"{\"orderId\":\"ORD-1042\"}"} Keep operation-level validation and permissions explicit. 10
  9. Now another AI host needs the capability MCP Java host

    Same running MCP server Codex CLI 0.160.0 HTTP Order API MCP • Same running MCP server • A different, independently developed host • No shared Java client library in that host 11
  10. MCP does not mean “hosted service” stdio Streamable HTTP host-managed

    local subprocess network-accessible service stdin / stdout Host HTTP Child process Host MCP service The demo uses the transport we actually tested. 12
  11. Five more wrong reasons THE PROMISE: “MCP WILL…” WHAT YOU

    STILL NEED TO DO “Stop hallucinations” Check tool choices and final answers “Make our tools secure” Enforce access for each user and operation “Work the same in every host” Test the features each target host needs “Make workflows reliable” Handle retries without repeating side effects “Use fewer tokens and run faster” Measure model usage and end-to-end latency Each promise needs evidence beyond protocol support. 14
  12. Which integration fits the requirement? YOUR SITUATION STARTING POINT WHAT

    TO VERIFY You own the application. A direct tool meets its needs. Direct integration Workflow fit and required access controls A target host needs MCP. A suitable server exists. Reuse an MCP server Contracts, permissions, maintenance, compatibility A target host needs MCP. No suitable server exists. Build a focused server A clear capability, an owner, and tests with the actual host Several independent hosts need the same capability through MCP. Consider a shared MCP service Each host works with the required features and transport Choose deployment separately Host-managed process: stdio. Independently running service: Streamable HTTP. 15
  13. What requirement makes MCP worth adding here? • Keep the

    direct baseline honest. • Separate tool design from protocol choice. • Prove the reuse you need. Bazlur Rahman · bazlur.com · Thank you
  14. BA CKU P B 1 Two boundaries. Appropriate credentials. credential

    for MCP MCP Host backend credential MCP service in-process DI REC T Host Order API backend credential Local tool Order API Authorization remains operation-specific. 17
  15. ABOUT ME A N M Bazlur Rahman Java Champion Oracle

    ACE Pro Senior Staff Software Engineer Author, O’Reilly Editor, InfoQ bazlur.com @bazlur_rahman linkedin.com/in/bazlur