I spent a weekend setting up an MCP server so Claude could read my Google Sheets data. Configuration files, local server running, debugging connection issues, restarting when things broke. It worked eventually. Felt clever.
Then I realized something uncomfortable: I could have done the same thing with a single fetch call to a NoCodeAPI endpoint. No server. No protocol. No configuration files. Just a URL that returns JSON.
MCP is genuinely useful technology. It’s also genuinely overhyped. The gap between “this is powerful” and “you actually need this” has become a chasm filled with developers overengineering simple problems.
This post is about recognizing when you’re reaching for MCP out of habit versus necessity—and what to use instead when direct APIs are the better path.
First, What MCP Actually Is (30-Second Version)
Model Context Protocol is a standard created by Anthropic that lets AI models interact with external tools and data sources. It defines how an AI agent can discover available tools, call them, and receive results.
Think of it as a universal adapter between AI models and the outside world. Instead of every AI needing custom integration code for every tool, MCP provides a common protocol.
The architecture involves MCP servers (which expose tools) and MCP clients (the AI models that use them). When Claude needs to access your Google Sheets through MCP, it talks to an MCP server you’re running, which translates the request into actual Google API calls.
This is legitimately elegant for AI agent development. The problem is that “AI agent development” describes maybe 5% of what people are actually building.
The MCP Hype Cycle
Here’s what happened:
2024: Anthropic releases MCP. Developers building AI agents find it useful.
Early 2025: Tech Twitter decides MCP is the future of everything. Tutorials everywhere. Everyone adds “MCP-compatible” to their marketing.
Mid 2025: People start setting up MCP servers for basic integrations that don’t involve AI agents at all. Complexity explodes.
Late 2025: The backlash begins. “Why am I running a local server just to read a spreadsheet?”
Now, early 2026: We’re reaching sanity. MCP is finding its proper place—valuable for AI tooling, unnecessary for most other integrations.
The question you should be asking isn’t “how do I use MCP?” It’s “do I actually need MCP?”
What MCP Adds (And What It Costs)
Let’s be concrete about the overhead.
To set up a typical MCP integration:
- Install MCP server software
- Configure which tools to expose
- Set up authentication/credentials
- Run the server (locally or hosted)
- Configure your MCP client to connect
- Debug connection issues
- Handle server restarts and failures
- Manage updates when the protocol evolves
To use a direct API endpoint:
- Get the endpoint URL
- Call it
I’m not exaggerating the difference. MCP introduces a running process, a protocol layer, and configuration state. Direct APIs are stateless HTTP requests.
For AI agent builders, the MCP overhead pays for itself through standardized tool discovery and invocation. The AI can ask “what tools do you have?” and get structured responses. That’s valuable when you’re building systems where AI autonomously selects and uses tools.
But if you’re building a web app that needs to display spreadsheet data, or a mobile app that fetches Instagram posts, or an automation that syncs data between services—you don’t need tool discovery. You know exactly what you’re calling. The protocol layer adds nothing except complexity.
The Decision Framework
Here’s how I think about it now:
Use MCP when:
- You’re building an AI agent that needs to autonomously select and invoke tools
- Tool discovery matters (the AI doesn’t know in advance what’s available)
- You’re integrating with other MCP-native systems
- You’re building a product where AI-to-tool communication is the core feature
Use direct APIs when:
- You know exactly what integration you need
- The consumer is an application, not an AI model
- You want the simplest possible implementation
- You’re in a no-code/low-code environment
- You need predictable, cacheable responses
- You don’t want to manage running servers
That second list covers 90% of integration work. Probably more.
The Direct API Alternative: 50+ Integrations Without Protocol Overhead
NoCodeAPI exists precisely for the “I just need to call this service” use case. Instead of setting up MCP servers or writing backend code, you get instant REST endpoints for common services.
The list currently includes:
Data & Spreadsheets
- Google Sheets
- Airtable
- Supabase
- PostgreSQL
- MongoDB
- CSV to JSON conversion
Social & Content
- Instagram Feed
- Twitter/X
- YouTube
- Medium
- Ghost CMS
- WordPress
Communication
- Telegram
- Slack
- Discord
- Mailchimp
- Mailgun
- Zoho Mail
Commerce & Payments
- Stripe
- Gumroad
- Razorpay
- Shopify
Productivity & Storage
- Google Analytics
- Google Calendar
- AWS S3
- Cloudinary
- Notion
- Calendly
Developer Tools
- GitHub
- OpenAI/ChatGPT
- Open Graph API
- RSS to JSON
- Webhook receivers
Each of these becomes a REST endpoint you can call from anywhere—browser JavaScript, mobile apps, server code, no-code tools, automation platforms. No MCP server required. No protocol to learn.
Concrete Comparison: Google Sheets Access
Let me show the practical difference with a common use case.
The MCP Approach
bash
# Install MCP server
npm install -g @anthropic/mcp-server
# Create configuration file
# mcp-config.json
{
"servers": {
"google-sheets": {
"command": "npx",
"args": ["@anthropic/mcp-server-google-sheets"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/credentials.json"
}
}
}
}
# Start the server
mcp-server start
# Configure Claude to connect to your server
# (varies by client implementation)
```
Then you interact with it through Claude or another MCP client:
```
Claude, read the data from my Products spreadsheet
Claude discovers the tool, invokes it through MCP, returns results.
The Direct API Approach
javascript
const response = await fetch(
'https://v1.nocodeapi.com/yourname/google_sheets/abc123/getRows?tabId=Products'
);
const data = await response.json();
console.log(data.rows);
That’s it. One HTTP call. Works from any environment. No server running. No protocol layer.
The MCP approach makes sense if Claude is the consumer and you want Claude to autonomously decide when and how to use the spreadsheet.
The direct API approach makes sense if your application is the consumer and you know exactly when you need the data.
Real Scenarios: Which Approach Wins
Scenario 1: Webflow site displaying Instagram feed
MCP approach: Doesn’t even make sense. Webflow isn’t an MCP client.
Direct API: Fetch endpoint returns JSON, Webflow displays it. Done in 10 minutes.
Winner: Direct API
Scenario 2: Mobile app showing product catalog from Airtable
MCP approach: You’d need to proxy through a backend that runs MCP, or build MCP client support into your app. Neither is reasonable.
Direct API: Standard fetch calls from React Native/Flutter. Pagination built in.
Winner: Direct API
Scenario 3: AI assistant that can check calendar, send emails, and look up customer data
MCP approach: AI can discover available tools, choose which to invoke based on user request, chain multiple operations.
Direct API: You’d have to hardcode every possible combination of tool calls. Doesn’t scale.
Winner: MCP
Scenario 4: Zapier automation syncing Stripe payments to Google Sheets
MCP approach: Zapier isn’t an MCP client. You’d need a custom middleware layer.
Direct API: Direct HTTP calls in Zapier’s workflow. Native fit.
Winner: Direct API
Scenario 5: Building a custom GPT that accesses company data
MCP approach: If the GPT platform supports MCP, this is exactly what it’s for.
Direct API: Custom GPTs can call APIs directly through Actions. Also works, simpler setup.
Winner: Depends on platform, but direct API is often easier
Scenario 6: Developer testing API responses during development
MCP approach: Massive overkill. You don’t need AI tool discovery to test an endpoint.
Direct API: Postman, curl, or just the browser. Instant.
Winner: Direct API
The Complexity Tax
Here’s something that doesn’t get discussed enough: complexity has ongoing costs.
Every MCP server you run is:
- A process that can crash
- A configuration that can drift
- A dependency that can have security vulnerabilities
- A thing you have to explain to new team members
- A potential point of failure in your stack
Direct API calls are stateless. There’s nothing running. Nothing to maintain. Nothing to debug at 2am when the server silently died.
For AI agent products where MCP provides genuine value, this complexity is justified. For everything else, it’s technical debt disguised as sophistication.
“But What About AI Features in My App?”
Fair question. If you’re adding AI capabilities to an existing application, you might think MCP is required.
Usually it isn’t.
Most “AI features” in applications are one of these:
- Chat interface that answers questions — The AI doesn’t need to call external tools. It just needs context (which you provide in the prompt).
- AI that takes actions in your app — Your backend handles the actions. AI just decides what to do. No MCP needed.
- AI that accesses external data — Fetch the data, put it in context, let AI work with it. Still no MCP.
MCP becomes relevant when you want the AI to autonomously discover and invoke tools at runtime. That’s a specific architectural choice, not a requirement for “using AI.”
How NoCodeAPI Fits Both Worlds
Here’s where I should mention that NoCodeAPI actually offers an MCP server too. So they’re not anti-MCP—they recognize both use cases exist.
The positioning makes sense:
NoCodeAPI’s MCP Server: For when you’re building AI agents that need to access the 50+ services through a standardized protocol. Claude (or other MCP clients) can discover and use these tools.
NoCodeAPI’s Direct Endpoints: For when you’re building applications, websites, automations, or anything else where you know exactly what you need and want the simplest possible path.
Same integrations, different access patterns. Use what fits your actual requirements.
Making the Switch: From MCP to Direct APIs
If you’ve already built MCP infrastructure and realize direct APIs would be simpler, here’s the migration path:
Step 1: Inventory your MCP tools
List every tool you’ve exposed through MCP. For each one, ask: “Is an AI agent the consumer, or did I just set this up because MCP seemed like the modern way?”
Step 2: Identify direct API alternatives
Most MCP tools wrap existing APIs. NoCodeAPI likely has a direct endpoint for:
- Google Sheets → /google_sheets/ endpoints
- Airtable → /airtable/ endpoints
- Slack → /slack/ endpoints
- And so on
Step 3: Replace MCP calls with HTTP calls
Where your code was invoking MCP tools:
javascript
// MCP style (pseudocode)
const result = await mcpClient.invokeTool('google-sheets', 'getRows', params);
Replace with:
javascript
// Direct API style
const result = await fetch(`https://v1.nocodeapi.com/user/sheets/id/getRows?${params}`);
Step 4: Shut down unnecessary MCP servers
Once your applications are calling direct APIs, the MCP servers for those tools become dead weight. Remove them.
Step 5: Keep MCP where it matters
If you have legitimate AI agent use cases, keep those MCP servers. The goal isn’t MCP elimination—it’s right-sizing your architecture.
Performance Comparison
Beyond complexity, there’s raw performance to consider.
MCP request flow:
- Client sends request to MCP server
- MCP server parses protocol message
- MCP server calls underlying API
- Response travels back through protocol layer
- Client receives result
Direct API request flow:
- Client sends HTTP request
- API returns response
The MCP flow has inherent latency overhead from the protocol layer. For AI agents making occasional tool calls, this is negligible. For applications making frequent requests, it compounds.
NoCodeAPI also adds a caching layer to direct endpoints. Repeated requests for the same data serve from cache, often returning in under 50ms. MCP typically doesn’t cache at the protocol layer—each request goes through the full flow.
Frequently Asked Questions
Is MCP going away?
No. It’s finding its proper scope. MCP is genuinely valuable for AI agent development and will remain important in that domain. What’s going away is the misconception that everything needs MCP.
Can I use NoCodeAPI’s direct endpoints AND their MCP server?
Yes. Same underlying integrations, different access methods. Use direct APIs for your web app, MCP for your AI agent features.
What about authentication security?
With MCP, your credentials live in the MCP server configuration. With NoCodeAPI’s direct endpoints, credentials are encrypted on their servers and never exposed in your client code. Both approaches can be secure when implemented properly.
Is this just NoCodeAPI marketing disguised as advice?
Partially, sure—this is on their blog. But the underlying argument stands regardless of which direct API service you use. The point is architectural: MCP adds protocol overhead that’s only justified when you actually need protocol-level features like tool discovery.
What if I’m using Claude and want it to access tools?
If Claude is directly consuming tools (not your application consuming data that Claude then processes), MCP makes sense. But consider: do you need Claude to discover tools dynamically, or do you know exactly what tools Claude should use? If the latter, you can often just include API responses in Claude’s context rather than giving it live tool access.
How do I know if I’m overengineering?
Ask yourself: “What would the simplest working solution look like?” If you can describe it without mentioning MCP, you probably don’t need MCP.
The Bottom Line
MCP is a protocol for AI agents to interact with tools. If you’re building AI agents, learn it.
If you’re building anything else—web apps, mobile apps, automations, no-code projects, internal tools—direct APIs are faster to implement, simpler to maintain, and perform better.
The 50+ integrations available through NoCodeAPI’s direct endpoints cover the same services people typically access through MCP servers, without the protocol overhead. Same data, less infrastructure.
Don’t let hype cycles determine your architecture. Use MCP when you need what MCP provides. Use direct APIs when you just need data.
NoCodeAPI Direct Endpoints: https://nocodeapi.com/marketplace/
NoCodeAPI MCP Server (when you actually need it): https://nocodeapi.com/mcp/


