Simple MCP Server
A minimalist MCP server that provides a single tool to retrieve a developer name, demonstrating the basic structure for Claude's Model Completion Protocol integration.
README Documentation
MCP Server Orchestration Project
An intelligent Model Context Protocol (MCP) orchestration system that demonstrates dynamic server coordination and AI-powered query routing. This project showcases how a primary MCP server can intelligently analyze natural language queries and dynamically call specialized MCP servers to provide comprehensive responses.
🧠 Architecture Overview
graph TD
A[User Query] --> B[People-Info Orchestrator]
B --> C[Claude AI Analysis]
C --> D{Query Category}
D -->|Developer Query| E[Start Developer-Info Server]
D -->|Designer Query| F[Start Designer-Info Server]
D -->|Other| G[Direct Response]
E --> H[Call get_developer_name]
F --> I[Call get_designer_name]
H --> J[Claude Enhancement]
I --> J
G --> J
J --> K[Natural Language Response]
K --> A
🎯 How It Works
- User asks a natural language question like "What is the developer's name?"
- People-info orchestrator receives the query
- Claude AI analyzes the query to determine intent and category
- Orchestrator dynamically starts the appropriate specialized server
- MCP client calls the right tool on the specialized server
- Raw data is enhanced by Claude AI into a natural response
- User receives a conversational, helpful answer
🏗️ Project Structure
MCP-Server/
├── people-info-server/ # 🧠 Main orchestrator (ADD THIS TO CLAUDE DESKTOP)
│ ├── index.js # Intelligent routing and MCP client logic
│ ├── package.json # Dependencies including MCP client SDK
│ ├── .env.template # Environment template
│ └── README.md # Detailed orchestrator documentation
├── developer-info-server/ # 👨💻 Developer data server
│ ├── index.js # Returns developer information
│ └── package.json # Simple MCP server
├── designer-info-server/ # 🎨 Designer data server
│ ├── index.js # Returns designer information
│ └── package.json # Simple MCP server
├── setup.sh # One-command setup script
├── QUICK_START.md # Super simple setup guide
└── README.md # This file
🚀 Quick Start
🚨 IMPORTANT FOR NEW USERS: If you're setting up this project on a different machine, you need to update 2 critical paths. See the Path Configuration Guide below.
Option 1: One-Command Setup
./setup.sh
Option 2: Manual Setup
cd people-info-server
npm install
cp .env.template .env
# Edit .env and add your ANTHROPIC_API_KEY
Add to Claude Desktop
Add only the orchestrator to your Claude Desktop MCP settings:
{
"mcpServers": {
"people-info": {
"command": "node",
"args": ["/Users/banik/Desktop/Projects2025/MCP-Server/people-info-server/index.js"],
"env": {
"ANTHROPIC_API_KEY": "your_anthropic_api_key_here"
}
}
}
}
🎮 Usage Examples
Natural Language Queries
Ask about developers:
<use_mcp_tool>
<server_name>people-info</server_name>
<tool_name>get_people_info</tool_name>
<arguments>
{
"query": "What is the developer's name?"
}
</arguments>
</use_mcp_tool>
Ask about designers:
<use_mcp_tool>
<server_name>people-info</server_name>
<tool_name>get_people_info</tool_name>
<arguments>
{
"query": "Tell me about the designer on the team"
}
</arguments>
</use_mcp_tool>
General questions:
<use_mcp_tool>
<server_name>people-info</server_name>
<tool_name>get_people_info</tool_name>
<arguments>
{
"query": "Who is the frontend developer?"
}
</arguments>
</use_mcp_tool>
🔧 Technical Features
🧠 AI-Powered Query Analysis
- Uses Claude 3.5 Sonnet to understand user intent
- Categorizes queries as developer, designer, or other
- Determines appropriate action (get name, get info, etc.)
🔄 Dynamic Server Orchestration
- Starts specialized MCP servers on-demand
- Maintains connections for efficiency
- Proper cleanup and resource management
🌐 Real MCP Protocol Communication
- Uses official MCP SDK for client-server communication
- Proper JSON-RPC protocol implementation
- Error handling and fallback mechanisms
💬 Natural Language Enhancement
- Raw server responses enhanced by Claude AI
- Conversational, context-aware answers
- Maintains query context throughout the flow
📊 Data Separation
Developer-Info Server
- Name: "Neick"
- Purpose: Stores and provides developer information
- Tool:
get_developer_name
Designer-Info Server
- Name: "Jesse"
- Purpose: Stores and provides designer information
- Tool:
get_designer_name
People-Info Orchestrator
- No data storage - pure orchestration logic
- AI analysis and MCP client functionality
- Response enhancement and natural language processing
🎯 Benefits of This Architecture
- Separation of Concerns: Each server has a single responsibility
- Scalability: Easy to add new specialized servers
- Natural Interface: Users can ask questions in plain English
- Dynamic Resource Usage: Servers only run when needed
- AI Enhancement: Raw data becomes conversational responses
- Real MCP Protocol: Demonstrates proper MCP client-server communication
🔍 Example Interaction Flow
User Query: "What is the developer's name?"
- Orchestrator receives query
- Claude analyzes:
{"category": "DEVELOPER", "action": "GET_NAME"}
- Orchestrator starts developer-info server
- MCP client calls
get_developer_name
tool - Server responds:
{"content": [{"type": "text", "text": "Neick"}]}
- Claude enhances: "The developer's name is Neick."
- User receives natural response
🛠️ Development & Testing
Test Individual Servers
# Test developer server
cd developer-info-server && npm start
# Test designer server
cd designer-info-server && npm start
# Test orchestrator
cd people-info-server && npm start
Add New Specialized Servers
- Create new server directory (e.g.,
manager-info-server
) - Implement MCP server with appropriate tools
- Update orchestrator's analysis logic to recognize new categories
- Add MCP client calls for the new server
🏆 Advanced MCP Concepts Demonstrated
- Multi-server orchestration
- Dynamic server lifecycle management
- MCP client-server communication
- AI-powered request routing
- Natural language query processing
- Response enhancement and formatting
🔧 Path Configuration for Sharing
If you're setting up this project on a different machine than the original developer, you need to update these paths:
1. Update Node.js Path in Code
Edit people-info-server/index.js
line 84:
// Change this hardcoded path:
command: '/Users/banik/.nvm/versions/node/v22.16.0/bin/node',
// To use your system's Node.js:
command: 'node',
2. Update Project Path in Claude Desktop Settings
Replace the hardcoded path in your Claude Desktop MCP settings:
{
"mcpServers": {
"people-info": {
"command": "node",
"args": ["/YOUR/ACTUAL/PATH/TO/MCP-Server/people-info-server/index.js"],
"env": {
"ANTHROPIC_API_KEY": "your_anthropic_api_key_here"
}
}
}
}
Example paths:
- macOS:
"/Users/yourname/Desktop/MCP-Server/people-info-server/index.js"
- Windows:
"C:\\Users\\yourname\\Desktop\\MCP-Server\\people-info-server\\index.js"
- Linux:
"/home/yourname/Desktop/MCP-Server/people-info-server/index.js"
✅ What Doesn't Need Changes
- Developer-Info Server - Completely portable
- Designer-Info Server - Completely portable
- Internal server discovery - Uses relative paths automatically
📝 License
This project is open source and available under the MIT License.
This project showcases advanced MCP patterns and serves as a reference for building intelligent, AI-powered MCP orchestration systems. 🚀