This guide walks through the process of deploying an MCP server that makes your enterprise product catalog accessible to AI agents across ChatGPT, Claude, Gemini, Perplexity, and other platforms.
Prerequisites
Before deployment, ensure you have:
- Node.js 18+ or Python 3.10+
- A product catalog or data source accessible via API or database
- A hosting environment (AWS, Google Cloud, Azure, Vercel, or Cloudflare Workers)
- An OAuth 2.1 identity provider for production authentication (Auth0, Okta, or equivalent)
Step 1: Choose Your Transport
For enterprise deployments, Streamable HTTP is the recommended transport. It works with serverless infrastructure, supports authentication, and allows any AI platform to connect remotely.
Use stdio only for local development and testing. It requires the client and server to run on the same machine.
Step 2: Define Your Tools
Design tools around agent workflows, not REST endpoint mirroring. Each tool should represent a meaningful action an AI agent would take during a conversation.
Follow the naming convention {service}_{action}_{resource} to avoid ambiguity when multiple servers are connected:
- catalog_search_products (not just "search")
- catalog_get_product_details (not just "get_details")
- cart_add_item (not just "add")
Write tool descriptions for AI agents, not humans. Explain when to use the tool, what it returns, and edge cases. Every description competes for context window space.
Step 3: Define Input Schemas
Use JSON Schema with explicit type, description, required, enum, and default values for every parameter. This helps AI models correctly populate tool inputs.
Avoid "mega-tools" with excessive parameters. If a tool has more than 5-6 parameters, consider splitting it into multiple focused tools.
Step 4: Implement and Test Locally
Build your server using the official MCP TypeScript or Python SDK. The SDKs handle protocol compliance, connection management, and capability negotiation.
Test locally using the MCP Inspector, an official developer tool for interactive MCP server testing. It allows you to list tools, invoke them, inspect responses, and debug issues before deploying remotely.
Step 5: Deploy to Production
For AWS deployments, follow the official AWS guidance for deploying MCP servers, which covers API Gateway, Lambda, and rate limiting configurations. For Google Cloud, Cloud Run provides a managed container environment. For edge deployments, Cloudflare Workers offers low-latency global distribution.
Configure your server's well-known endpoints for OAuth discovery:
- /.well-known/oauth-protected-resource (Protected Resource Metadata, RFC 9728)
- /.well-known/oauth-authorization-server (Authorization Server Metadata)
Step 6: Verify Cross-Platform Connectivity
Once deployed, verify your server is accessible from multiple AI platforms:
- Claude Desktop: Add the server URL in Claude's MCP settings.
- ChatGPT Desktop: Configure via the MCP integration panel.
- VS Code: Add to your workspace MCP configuration.
Each platform should be able to discover your tools, invoke them, and receive structured responses.
Common Deployment Pitfalls
- Generic tool names: When agents connect to multiple servers, generic names like "search" cause conflicts. Always namespace with your service name.
- Missing input validation: Always validate inputs server-side, regardless of what the AI model sends. LLMs can produce unexpected parameter values.
- Overloading a single server: One server should serve one domain. Split admin and user-facing tools into separate servers.
- Ignoring capability negotiation: Always implement proper initialization handshakes. Clients that skip negotiation will fail silently on advanced features.
Sources
- MCP TypeScript SDK: https://github.com/modelcontextprotocol/typescript-sdk
- MCP Python SDK: https://github.com/modelcontextprotocol/python-sdk
- MCP Inspector: https://github.com/modelcontextprotocol/inspector
- AWS MCP Deployment Guidance: https://aws.amazon.com/solutions/guidance/deploying-model-context-protocol-servers-on-aws/
- MCP Reference Server Implementations: https://github.com/modelcontextprotocol/servers