Noor MCP Code Assistant
README.md
# š Noor MCP Code Assistant
> MCP (Model Context Protocol) Server that bridges Claude Desktop with your RAG-powered Code Agent API.
[](https://github.com/nooruddin-dev)
[](https://www.linkedin.com/in/nooruddin-dev/)
[](https://youtube.com/@noorcodelogics)
[](https://python.org)
---
## š Overview
This project creates an MCP server that allows **Claude Desktop** to communicate with your existing **RAG Code Agent API** running at `localhost:8900`. When you ask code-related questions in Claude Desktop, it can use this tool to fetch context-aware answers from your codebase.
### šÆ Features
- ā
Seamless integration with Claude Desktop
- ā
Connects to existing RAG API (`/api/chat/rag`)
- ā
Session management for conversation continuity
- ā
Comprehensive error handling
- ā
Configurable via environment variables
- ā
Ready for future agent extensions (SQL, React, Java)
---
## šļø Project Structure
```
noor_mcp_code_assistant_parent/
āāā env_container/ # Virtual environment
ā āāā bin/
ā āāā lib/
ā āāā ...
āāā noor_mcp_code_assistant/ # Project source
āāā mcp_server.py # Main MCP server
āāā config.py # Configuration management
āāā requirements.txt # Dependencies
āāā .env.example # Environment template
āāā .env # Your configuration (git-ignored)
āāā README.md # This file
```
---
## š Quick Start
### 1ļøā£ Create Virtual Environment
Navigate to the parent folder and create the environment:
```bash
cd noor_mcp_code_assistant_parent
python3.11 -m venv env_container
```
Activate the environment:
```bash
# Linux/WSL/macOS
source env_container/bin/activate
# Windows PowerShell
.\env_container\Scripts\Activate
```
---
### 2ļøā£ Install Requirements
```bash
cd noor_mcp_code_assistant
pip install -r requirements.txt
```
---
### 3ļøā£ Configure Environment Variables
Copy the example file and customize:
```bash
cp .env.example .env
```
Edit `.env` with your settings:
```bash
# Required
RAG_API_BASE_URL=http://localhost:8900
RAG_CHAT_ENDPOINT=/api/chat/rag
# Optional
DEFAULT_SESSION_ID=claude-desktop-session
REQUEST_TIMEOUT=120
```
---
### 4ļøā£ Configure Claude Desktop
Locate your Claude Desktop configuration file:
**Windows:**
```
%APPDATA%\Claude\claude_desktop_config.json
```
(Usually: `C:\Users\<YourUsername>\AppData\Roaming\Claude\claude_desktop_config.json`)
Add the MCP server configuration:
```json
{
"mcpServers": {
"noor-code-assistant": {
"command": "wsl",
"args": [
"-d", "Ubuntu-20.04",
"--",
"/home/<your-username>/noor_mcp_code_assistant_parent/env_container/bin/python",
"/home/<your-username>/noor_mcp_code_assistant_parent/noor_mcp_code_assistant/mcp_server.py"
],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
```
> ā ļø **Important:** Replace `<your-username>` with your actual WSL username and adjust paths accordingly.
#### š Find Your WSL Distribution Name
```powershell
wsl --list --verbose
```
Use the exact name shown (e.g., `Ubuntu-20.04`, `Ubuntu`, etc.)
---
### 5ļøā£ Verify Setup
**Step 1:** Ensure your RAG API is running:
```bash
# In WSL terminal
cd /path/to/your/rag-project
source env_container/bin/activate
uvicorn main:app --reload --port 8900
```
**Step 2:** Test the RAG API:
```bash
curl -X POST http://localhost:8900/api/chat/rag \
-H "Content-Type: application/json" \
-d '{"session_id": "test", "message": "hello"}'
```
**Step 3:** Restart Claude Desktop completely (check system tray)
**Step 4:** The `noor-code-assistant` tool should now appear in Claude Desktop!
---
## š¬ Usage Examples
Once configured, you can ask Claude Desktop:
> "Use the code assistant to create a C# function that gets employee requests by employee ID"
> "Ask the code assistant how pagination is implemented in my project"
> "Use code_assistant to show me the DTO structure for Employee entity"
---
## š® Adding Future Agents
When you're ready to add more agents (SQL, React, Java):
### Step 1: Add endpoints to your RAG API
```python
@app.post("/api/sql/agent")
async def sql_agent(request: SQLAgentRequest):
# Your SQL agent logic
pass
```
### Step 2: Update `.env`
```bash
SQL_AGENT_ENDPOINT=/api/sql/agent
```
### Step 3: Uncomment tool definitions in `mcp_server.py`
Look for the commented `sql_agent` tool and handler, then uncomment them.
### Step 4: Restart Claude Desktop
---
## š Troubleshooting
| Issue | Solution |
|-------|----------|
| **MCP server not appearing** | Check Claude Desktop logs at `%APPDATA%\Claude\logs\` |
| **Connection refused** | Ensure RAG API is running on `localhost:8900` |
| **WSL path issues** | Use full Linux paths (e.g., `/home/user/...`) |
| **Python not found** | Use full path to Python in venv |
| **Timeout errors** | Increase `REQUEST_TIMEOUT` in `.env` |
### š View Logs
**Claude Desktop Logs:**
```
C:\Users\<YourUsername>\AppData\Roaming\Claude\logs\
```
**Test MCP Server Standalone:**
```bash
cd noor_mcp_code_assistant
source ../env_container/bin/activate
python mcp_server.py
```
---
## š Configuration Reference
| Variable | Default | Description |
|----------|---------|-------------|
| `RAG_API_BASE_URL` | `http://localhost:8900` | Base URL of your RAG API |
| `RAG_CHAT_ENDPOINT` | `/api/chat/rag` | Chat endpoint path |
| `DEFAULT_SESSION_ID` | `claude-desktop-session` | Default session for continuity |
| `REQUEST_TIMEOUT` | `120` | API timeout in seconds |
---
## š Security Notes
- This MCP server only makes **outbound** HTTP requests to your local RAG API
- No sensitive data is stored or logged
- Session IDs are used only for conversation context
- All communication happens over localhost
---
## š License
MIT License - Feel free to use and modify!
---
## šØāš» Author
**Noor Uddin**
- š„ YouTube: [Noor Codelogics](https://youtube.com/@noorcodelogics)
- š¼ LinkedIn: [Noor Uddin](https://linkedin.com/in/nooruddin-dev)
- š CodeCanyon: 180+ Sales
---
## š Support
If you find this helpful, please:
- ā Star the repository
- šŗ Subscribe to [Noor Codelogics](https://youtube.com/@noorcodelogics)
- š Share with fellow developers
Happy Coding! šThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues