MCP Customer Support AI
Provides persistence and data access for customer, order, and support ticket records via MongoDB, enabling the MCP server to manage customer-support data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Customer Support AICheck my latest order and create a support ticket if it is delayed."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Customer Support AI
A production-oriented Model Context Protocol (MCP) project built with Node.js, TypeScript, MongoDB, and an LLM.
This project demonstrates how an AI application can interact with external systems through MCP tools in a structured, secure, and scalable way.
The project is being developed incrementally, from a basic MCP server and tool to a production-style AI-powered customer support system.
๐ Project Overview
The goal of this project is to build an AI-powered customer support assistant that can understand user requests and use MCP tools to perform real-world operations.
Example
A user can ask:
"Check my latest order and create a support ticket if it is delayed."
The AI can determine that it needs to:
Find the customer.
Retrieve the customer's orders.
Identify the delayed order.
Create a support ticket.
The AI does not directly access the database.
Instead, it interacts with the application through MCP tools.
User
โ
โผ
AI / LLM
โ
โผ
MCP Client
โ
โผ
โโโโโโโโโโโโโโโ
โ MCP Server โ
โโโโโโโโฌโโโโโโโ
โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโ
โผ โผ โผ
Customer Tool Order Tool Ticket Tool
โ โ โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโ
โผ
Services
โ
โผ
MongoDB๐ฏ Project Objectives
This project demonstrates:
MCP server development
MCP tool creation
MCP client communication
AI tool calling
TypeScript architecture
MongoDB integration
Service-layer architecture
Input validation
Error handling
Authentication and authorization
Logging and monitoring
Audit logging
Production-oriented MCP architecture
AI agent workflows
๐ ๏ธ Tech Stack
Backend
Node.js
TypeScript
MCP SDK
Zod
MongoDB
Mongoose
AI
LLM integration
Tool calling
AI Agent workflow
Development
MCP Inspector
Git
GitHub
npm
Planned Production Infrastructure
Docker
Redis
Authentication
Rate limiting
Logging
Monitoring
CI/CD
๐ Project Structure
mcp-customer-support/
โ
โโโ src/
โ โ
โ โโโ index.ts
โ โ
โ โโโ tools/
โ โ โโโ customer.tools.ts
โ โ โโโ order.tools.ts
โ โ โโโ ticket.tools.ts
โ โ
โ โโโ services/
โ โ โโโ customer.service.ts
โ โ โโโ order.service.ts
โ โ โโโ ticket.service.ts
โ โ
โ โโโ models/
โ โ โโโ customer.model.ts
โ โ โโโ order.model.ts
โ โ โโโ ticket.model.ts
โ โ
โ โโโ db/
โ โ โโโ database.ts
โ โ
โ โโโ middleware/
โ โ โโโ auth.ts
โ โ
โ โโโ utils/
โ โโโ logger.ts
โ โโโ errors.ts
โ
โโโ tests/
โ
โโโ .env.example
โโโ .gitignore
โโโ package.json
โโโ package-lock.json
โโโ tsconfig.json
โโโ README.md๐๏ธ Development Phases
The project is intentionally divided into phases so each phase introduces an important MCP or production concept.
Phase 1 โ MCP Server Foundation
Objective
Create a basic MCP server and expose the first tool.
Implemented
Node.js project
TypeScript configuration
MCP SDK
MCP server
STDIO transport
Zod input validation
First MCP tool
MCP Inspector integration
First Tool
find_customerInput:
{
"email": "ashwani@example.com"
}Output:
{
"id": "customer_123",
"name": "Ashwani Yadav",
"email": "ashwani@example.com"
}Architecture
MCP Inspector
โ
โผ
MCP Client
โ
โ STDIO
โผ
MCP Server
โ
โผ
find_customer()
โ
โผ
Dummy DataStatus
Completed โ
Phase 2 โ Multiple MCP Tools
Objective
Create multiple tools representing real customer-support operations.
Tools
find_customer
get_customer_orders
create_support_ticketExample
find_customer
find_customer(email)get_customer_orders
get_customer_orders(customerId)create_support_ticket
create_support_ticket(
customerId,
orderId,
issue
)Expected Architecture
MCP Server
โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ
โผ โผ โผ
find_customer() get_orders() create_ticket()Status
Planned ๐ง
Phase 3 โ MongoDB Integration
Objective
Replace dummy data with real persistent data.
Database
MongoDB
Collections
customers
orders
support_ticketsArchitecture
MCP Tool
โ
โผ
Service Layer
โ
โผ
Mongoose
โ
โผ
MongoDBExample
find_customer()
โ
โผ
customer.service.ts
โ
โผ
Customer Model
โ
โผ
MongoDBBenefits
Persistent data
Proper database queries
Indexing
Schema validation
Scalable data access
Planned Index
customers.emailThis allows customer lookup by email to remain efficient as the dataset grows.
Status
Planned ๐ง
Phase 4 โ Service Layer & Clean Architecture
Objective
Keep MCP tools separate from business logic.
Instead of putting database logic directly inside the MCP tool:
Tool
โ
Service
โ
DatabaseExample
customer.tools.ts
โ
โผ
customer.service.ts
โ
โผ
customer.model.ts
โ
โผ
MongoDBWhy?
This gives us:
Separation of concerns
Testability
Reusability
Maintainability
Easier migration to REST/GraphQL/internal services
Status
Planned ๐ง
Phase 5 โ MCP Client
Objective
Build a dedicated MCP client that connects to the MCP server.
โโโโโโโโโโโโโโโโ
โ MCP Client โ
โโโโโโโโฌโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโ
โ MCP Server โ
โโโโโโโโโโโโโโโโThe client will be able to:
Discover tools
listTools()Execute tools
callTool()For example:
callTool(
"find_customer",
{
email: "ashwani@example.com"
}
)Status
Planned ๐ง
Phase 6 โ LLM Integration
Objective
Connect an LLM to the MCP client.
The architecture becomes:
User
โ
โผ
LLM
โ
โผ
MCP Client
โ
โผ
MCP Server
โ
โผ
Tools
โ
โผ
MongoDBThe LLM will decide which tool should be called based on the user's request.
Example
User:
Check my latest order.AI:
I need the customer's orders.Tool:
get_customer_orders()The tool returns the order data.
The AI then generates a natural-language response.
Status
Planned ๐ง
Phase 7 โ AI Agent Workflow
Objective
Allow the LLM to perform multi-step workflows.
Example request:
Check my latest order and create a support
ticket if it is delayed.The AI workflow:
User Request
โ
โผ
LLM
โ
โผ
find_customer()
โ
โผ
get_customer_orders()
โ
โผ
Analyze orders
โ
โผ
Is order delayed?
/ \
Yes No
โ โ
โผ โผ
create_support_ticket Response
โ
โผ
ResponseThis demonstrates the difference between simply exposing tools and building an AI agent capable of tool orchestration.
Status
Planned ๐ง
Phase 8 โ Authentication & Authorization
Objective
Secure MCP operations.
Authentication verifies:
Who is the user?
Authorization verifies:
What is the user allowed to do?
Example permissions:
customer.read
order.read
ticket.create
ticket.update
admin.refundExample:
Customer
โโโ find_customer โ
โโโ get_orders โ
โโโ create_ticket โ
โโโ refund_order โ
Admin
โโโ find_customer โ
โโโ get_orders โ
โโโ create_ticket โ
โโโ refund_order โ
Status
Planned ๐ง
Phase 9 โ Error Handling
Objective
Create consistent error handling across tools.
Example:
CustomerNotFoundError
OrderNotFoundError
UnauthorizedError
ValidationError
DatabaseError
ToolExecutionErrorMCP tool responses will clearly communicate failures.
Example:
{
"isError": true,
"message": "Customer not found"
}Status
Planned ๐ง
Phase 10 โ Logging & Observability
Objective
Track MCP operations in production.
Each tool execution should provide information such as:
Request ID
User ID
Tool name
Arguments
Execution time
Status
Error
TimestampExample:
INFO Tool Execution
tool: get_customer_orders
customerId: customer_123
duration: 85ms
status: successMonitoring Goals
Tool latency
Error rate
Database latency
AI response latency
Tool usage frequency
Failed tool calls
Status
Planned ๐ง
Phase 11 โ Rate Limiting
Objective
Protect the MCP server from excessive or abusive requests.
Potential strategy:
User
โ
โผ
Rate Limiter
โ
โโโ Allowed โโโ MCP Tool
โ
โโโ Blocked โโโ Rate Limit ErrorRedis can be introduced for distributed rate limiting.
Example:
100 requests / minute / userStatus
Planned ๐ง
Phase 12 โ Audit Logging
Objective
Record sensitive AI-driven operations.
For example:
User:
customer_123
AI requested:
create_support_ticket
Order:
order_123
Action:
Support ticket created
Timestamp:
2026-08-23T10:30:00ZThis is particularly important when AI agents can perform actions that modify business data.
Status
Planned ๐ง
Phase 13 โ Testing
Unit Tests
Test:
Services
Validation
Business logic
Error handling
Integration Tests
Test:
MCP Tool
โ
Service
โ
MongoDBMCP Tests
Test:
MCP Client
โ
MCP Server
โ
ToolExample
find_customer
โ
valid email
โ
customer returnedand:
find_customer
โ
invalid email
โ
validation errorStatus
Planned ๐ง
Phase 14 โ Dockerization
Objective
Containerize the application.
Docker
โ
โโโ MCP Server
โ
โโโ MongoDB
โ
โโโ RedisExample production architecture:
โโโโโโโโโโโโโโโ
โ AI App โ
โโโโโโโโฌโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโ
โ MCP Server โ
โโโโโโโโฌโโโโโโโ
โ
โโโโโโโโโโโโผโโโโโโโโโโโ
โผ โผ โผ
MongoDB Redis LogsStatus
Planned ๐ง
Phase 15 โ CI/CD
Objective
Automate testing and deployment.
Pipeline:
Developer
โ
โผ
Git Push
โ
โผ
GitHub Actions
โ
โโโ Install dependencies
โโโ Lint
โโโ Type check
โโโ Run tests
โโโ Build
โโโ DeployStatus
Planned ๐ง
๐ Environment Variables
Never commit .env to GitHub.
Use:
.envfor local development.
Example:
MONGODB_URI=mongodb://localhost:27017/mcp-support
OPENAI_API_KEY=your_api_key
JWT_SECRET=your_secretProvide:
.env.exampleinstead:
MONGODB_URI=
OPENAI_API_KEY=
JWT_SECRET=๐งช Development
Install dependencies:
npm installRun development server:
npm run devBuild:
npm run buildRun production build:
npm start๐ MCP Inspector
The MCP Inspector is used to test the MCP server and inspect available tools during development.
Example:
npx @modelcontextprotocol/inspector npx tsx src/index.tsThe Inspector allows us to:
Connect to the MCP server
Discover tools
Inspect tool schemas
Execute tools
Inspect responses
Debug MCP communication
๐ง MCP Concepts Demonstrated
This project demonstrates the following MCP concepts:
MCP Server
Provides capabilities to MCP clients.
MCP Client
Connects to MCP servers and invokes their capabilities.
Tools
Executable operations exposed to AI systems.
Examples:
find_customer
get_customer_orders
create_support_ticketResources
Read-only contextual data that can be exposed to an MCP client.
Potential future resources:
customer://customer_123
order://order_123Prompts
Reusable prompt templates/workflows that can be exposed through MCP.
Potential example:
customer_support_resolution๐ Production Architecture
The final architecture is planned to look like:
โโโโโโโโโโโโโโโโโ
โ User โ
โโโโโโโโโฌโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโ
โ LLM / AI โ
โโโโโโโโโฌโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโ
โ MCP Client โ
โโโโโโโโโฌโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Server โ
โ โ
โ Authentication โ
โ Authorization โ
โ Validation โ
โ Rate Limiting โ
โ Logging โ
โโโโโโโโโโโโโฌโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โผ โผ โผ
Customer Tool Order Tool Ticket Tool
โ โ โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โผ
Service Layer
โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ
โผ โผ โผ
MongoDB Redis Logging๐ Current Progress
Phase | Feature | Status |
1 | MCP Server Foundation | โ Completed |
2 | Multiple MCP Tools | ๐ง Planned |
3 | MongoDB Integration | ๐ง Planned |
4 | Service Layer | ๐ง Planned |
5 | MCP Client | ๐ง Planned |
6 | LLM Integration | ๐ง Planned |
7 | AI Agent Workflow | ๐ง Planned |
8 | Authentication & Authorization | ๐ง Planned |
9 | Error Handling | ๐ง Planned |
10 | Logging & Observability | ๐ง Planned |
11 | Rate Limiting | ๐ง Planned |
12 | Audit Logging | ๐ง Planned |
13 | Testing | ๐ง Planned |
14 | Dockerization | ๐ง Planned |
15 | CI/CD | ๐ง Planned |
๐ก Example Future Conversation
Once all phases are complete, the system should support conversations such as:
User
My latest order hasn't arrived. Can you check it and create a support ticket?
AI
1. Find customer
2. Retrieve orders
3. Identify delayed order
4. Create support ticket
5. Return ticket informationAI Response
Your order
ORD-123is delayed. I've created support ticketTICKET-456for you.
๐ Interview Topics Covered
This project can be used to demonstrate knowledge of:
Model Context Protocol
AI agents
LLM tool calling
Function calling
MCP servers
MCP clients
Tool discovery
Tool execution
TypeScript
Node.js
MongoDB
Mongoose
Clean architecture
Service-layer architecture
Authentication
Authorization
RBAC
Rate limiting
Redis
Logging
Observability
Docker
CI/CD
GitHub Actions
Testing
Scalable backend architecture
๐ Future Improvements
Potential future enhancements include:
Multiple MCP servers
Payment MCP tools
Email MCP tools
CRM integration
Slack integration
GitHub integration
Vector database
RAG
Semantic search
Human-in-the-loop approval
Tool permission policies
Tool execution tracing
Distributed MCP deployment
Kubernetes deployment
๐จโ๐ป Development Philosophy
The project follows these principles:
Separation of concerns
Strong typing
Input validation
Secure secret management
Testable business logic
Observable tool execution
Least-privilege tool access
Scalable architecture
Clear MCP boundaries
๐ License
This project is intended for learning, experimentation, and demonstrating MCP/AI engineering concepts.
Add an appropriate open-source license before distributing it publicly.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect e-commerce and marketing data to AI assistants via MCP.
Free public MCP for AI agents โ 193 tools, 44 workflows. No API key.
100+ MCP tools for AI agents: content metadata, trade intelligence, business-expertise analysis.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ashwani-yadav83602/First-Customer-MCP-PROJECT'
If you have feedback or need assistance with the MCP directory API, please join our Discord server