What MCP Actually Does (Without the Marketing Fluff)
Model Context Protocol (MCP) is Anthropic's answer to "how do I connect Claude to my actual data without writing a bunch of custom API wrappers." Released in November 2024, it's basically a standardized way to let Claude talk to your databases, file systems, and internal APIs without you having to build custom connectors for everything.
Before MCP, connecting Claude to enterprise data meant building custom integrations for each system. Want Claude to read from your Postgres database? Custom code. Access your S3 buckets? More custom code. Query your internal APIs? You get the idea. MCP standardizes this so you write one MCP server and Claude can connect to it.
The architecture makes sense once you've banged your head against it for a week: Claude API acts as an MCP client, your MCP server runs in your environment with access to your data. Claude makes requests to your MCP server, which handles the actual data access and returns results. Your data never leaves your network, which makes the security team happy.
The Real MCP Setup (From Someone Who's Actually Done It)
Here's what setting up MCP actually looks like in a real enterprise environment:
You need to build MCP servers for each major data source:
- Database server (Postgres, MySQL, whatever you use)
- File storage server (S3, internal file shares)
- API gateway server (for your internal services)
- Documentation server (if you want Claude to read your internal docs)
The authentication story is... fine:
MCP servers handle their own auth to backend systems. Claude authenticates to your MCP server, your MCP server authenticates to your actual data sources. It's an extra layer but it gives you centralized control over what Claude can access.
What works well:
- Connecting to structured data (databases, APIs with clear schemas)
- Reading documentation and knowledge bases
- Accessing file systems with clear directory structures
What's still painful:
- Initial setup takes time - plan a week minimum for the first MCP server
- Debugging MCP connection issues will make you question your career choices - you'll get 'MCP server unreachable' errors that could mean network issues, auth failures, port conflicts, or the server just decided to take a nap
- Documentation is getting better but still has gaps that will cost you hours
- Performance can be shit if your MCP server isn't optimized - I've seen 30-second response times for simple queries
I've done MCP deployments a few times now. First one was brutal, took weeks because we kept hitting edge cases not covered in the docs. Now I know what breaks and can get it working faster by copying the working implementation.
Security Features (The Ones That Actually Matter)
Here's what I've learned about enterprise security - it's about not getting fired when the auditors show up. What you actually get beyond basic API key authentication:
SSO Integration That Doesn't Suck:
Works with SAML 2.0 and OAuth 2.0. I've tested it with Okta, Azure AD, and Auth0 - all work fine. Setup takes about 2 hours if you know what you're doing, longer if you don't. The integration is straightforward, no weird edge cases like some enterprise tools.
Role-Based Access Control (The Important Part):
You can actually control who can do what, down to specific model access and spending limits. Example: junior developers get Haiku access only, senior engineers get Sonnet, architect role gets Opus access. Finance team gets read-only usage reports. It's granular enough to be useful without being annoyingly complex.
Audit Logging (For When Compliance Asks Questions):
Every API call gets logged with user ID, timestamp, model used, token count, and request/response hashes. Logs go to your SIEM or whatever compliance tool you're using. I've had to pull these logs for SOC 2 audits - they contain exactly what auditors want to see.
The Network Security Story:
- VPC peering works but requires coordination with Anthropic's ops team
- Private endpoints are available but add latency (learned this the hard way)
- IP whitelisting is straightforward - just give them your IP ranges
What They Don't Tell You:
- Initial security setup adds 2-3 weeks to your timeline because their enterprise team moves at the speed of molasses
- You need to work with Anthropic's enterprise team for most of this, can't just flip switches in the console - expect weeks of back-and-forth emails
- Some features require minimum spending commitments ($10k/month+) that sales conveniently forgets to mention upfront
Files API: Actually Pretty Good for Document Processing
Claude can process files directly through the Files API now. It's their answer to "can you read this PDF without turning it into garbage text?" The answer is mostly yes, with some caveats.
What Works Well:
- PDFs with proper text (not scanned images) - Claude maintains formatting, tables, headers
- Excel files - reads formulas, preserves table structure, understands relationships between sheets
- Word docs - handles styles, embedded images, complex layouts better than most tools
- PowerPoint - extracts slide content, notes, maintains logical flow
What Breaks:
- Scanned PDFs without OCR - Claude can't magically read images as text
- Complex Excel files with macros - formulas work, VBA doesn't
- Documents over 200MB - hard limit, no workaround
- Files with weird encoding - seen this with older European documents
Real Performance Numbers:
I've processed maybe 8,000-10,000 enterprise documents through Files API over the past few months:
- Success rate is pretty good, maybe 80-something percent for actually understanding what's in the doc
- Processing time: anywhere from 30 seconds to 3-4 minutes for typical reports
- Cost: usually between 50 cents and $2 per document, sometimes more if it's complex
Where It's Actually Useful:
- Contract analysis (finds terms, extracts key dates, identifies risks)
- Financial report summarization (pulls key metrics, identifies trends)
- Technical documentation review (finds inconsistencies, suggests improvements)
- Compliance checking (identifies missing required sections)
Code Execution: Python Sandbox That Doesn't Suck
Claude can run Python code in a sandboxed environment. It's actually pretty useful for data analysis and report generation, but has some limitations you need to know about.
What's In the Sandbox:
- Python 3.11 with common libraries: pandas, numpy, matplotlib, requests
- 30-second execution timeout (generous for most tasks)
- No network access (can't call external APIs or download data)
- No persistent file system (everything gets wiped between runs)
- Memory limit of 512MB (enough for most data analysis, not enough for large datasets)
What Actually Works Well:
- Data analysis on CSV/Excel files you upload
- Creating charts and visualizations
- Simple data processing and transformation
- Mathematical calculations and statistical analysis
What Breaks:
- Anything requiring external network calls
- Processing large datasets (>100MB)
- Installing additional packages (you get what's pre-installed)
- Long-running operations (30-second timeout)
Real Example from Production:
We use it for quarterly financial report generation. Upload Excel files with financial data, Claude writes Python code to analyze trends, creates charts, generates insights. Takes about 2-3 minutes total, produces better analysis than our previous manual process that took 2 days.
The security is decent - code runs isolated, can't access your network or other systems. Logs show exactly what code ran and what it produced, which helps with compliance.
Cost Management: How Not to Accidentally Spend $50K
Enterprise billing for Claude API isn't just "here's your monthly bill." You get tools to actually track and control spending before it becomes a budget disaster.
Budget Controls That Work:
- Set spending limits per team/project/user
- Automatic alerts at 50%, 80%, 100% of budget
- Request blocking when limits hit (can be overridden by admins)
- Real-time usage tracking, not just end-of-month surprises
Cost Optimization Strategies That Actually Save Money:
## Use cheaper models for simple tasks
def route_request(prompt, estimated_complexity):
if estimated_complexity < 3:
return call_haiku(prompt) # $0.25/$1.25 per MTok
elif estimated_complexity < 7:
return call_sonnet(prompt) # $3/$15 per MTok
else:
return call_opus(prompt) # $15/$75 per MTok
Real Cost Savings from Deployments I've Done:
- Model routing: maybe 40-50% cost reduction if you're disciplined about using Haiku for simple stuff
- Prompt optimization: around 20-25% savings when you actually clean up all the unnecessary context
- Caching: 15-20% savings, but only if you build it right - most people screw this up
- Batch processing: solid 50% off, but only works if your use case can wait
What the Enterprise Dashboard Actually Shows:
- Cost per team/project/user with drill-down capability
- Token usage trends and patterns
- Model utilization (are you overusing expensive models?)
- Failed request costs (you pay for failures too)
I've seen companies go from $40K/month to $18K/month just by implementing proper model routing and prompt optimization. The tooling makes it straightforward to identify where money is being wasted.