Skip to content

Case Study · Engineering

Case Study: One MCP Server, Three AI Clients

How an internal platform team wrapped their admin API as an MCP server — Claude Desktop, Cursor, and a custom support bot shared the same tools.

FintechPaylane Internal (fictional)Stack: TypeScript MCP SDK, Internal REST API, Claude Desktop, Cursor, Langfuse
MCPInternal ToolsAgentsPlatform
Edited by The AIKnowHub team · Editorial team

Results

Tools exposed via MCP

12

Client integrations

3

Support lookup time

-62%

Duplicate integration code removed

~800 LOC

Background

Paylane's internal admin API powered support lookups, refund status, and feature flags. Three teams built separate Claude integrations with duplicate HTTP glue.

The problem

  • 800+ lines of duplicated tool wiring
  • Inconsistent auth and logging
  • New API endpoints took 3 client updates

They followed Build an MCP Server from Your API.

Architecture

MCP server (TypeScript, VPC)
  → Tools: get_account, list_invoices, refund_status,
           feature_flags, search_transactions (read-only)
  → mutating: issue_credit (dry_run default true)
  → Auth: service JWT, per-caller rate limits
  → Logs: Langfuse tool spans

Clients:
  → Claude Desktop (support)
  → Cursor (engineering incidents)
  → Custom Slack bot (same MCP over HTTP SSE)

Rollout

WeekMilestone
16 read-only tools, Claude Desktop pilot
2Cursor + Langfuse tracing
3Slack bot, mutating tools behind dry_run
4Deprecate old custom integrations

Results

MetricBeforeAfter
Support median lookup time8 min3 min
New endpoint client updates3 codebases1 MCP tool
Duplicate tool code~800 LOC0

Mutating tool policy

issue_credit shipped with dry_run: true default. Agent proposes action; human confirms in admin UI. Matches human-in-the-loop pattern.

July 2026 context

Zapier MCP beta and Dify MCP import landed the same month — external platforms caught up to patterns internal teams shipped in Q2. See July automation changelog.

Takeaway

MCP pays off when the same internal capabilities must work across multiple AI clients. Start read-only, instrument in Langfuse, add mutating tools with dry_run. Blueprint: MCP server workflow.

Lessons learned

  • 01

    Read-only tools shipped week one; mutating tools needed dry_run flag and approval.

  • 02

    OAuth to internal API from MCP server — not embedding keys in Claude config.

  • 03

    Tool descriptions mattered more than prompt tuning for correct tool selection.

  • 04

    Rate limits on admin API applied to agents too — added per-user quotas.

  • 05

    Langfuse traced tool calls across all three clients with one instrumentation layer.

Frequently asked questions

Engineers already lived in Claude Desktop and Cursor. MCP met them there instead of building another portal.