Admin Inventory Management MCP Server
by Balusanu
README.md
# π¦ Admin Inventory Management β Remote MCP Server
A production-ready **Remote MCP (Model Context Protocol) Server** built using **FastMCP**, enabling Claude Desktop to manage office inventory using natural language.
π **Live Endpoint:**
[https://admin-inventory-management-remote-mcp.onrender.com/](https://admin-inventory-management-remote-mcp.onrender.com/)
---
# π Project Overview
This project implements an AI-powered **Office Admin Inventory Management System** using the Model Context Protocol (MCP).
It allows Claude Desktop to:
* Add inventory items
* Issue stock
* Check stock availability
* List all items
* Trigger low-stock alerts
All operations are executed via structured tool calls and backed by a persistent database.
---
# π§ Architecture
## πΉ Local Architecture
```
Claude Desktop
β (stdio MCP)
FastMCP Server
β
SQLite Database
```
## πΉ Remote Architecture (Production)
```
Claude Desktop
β (HTTPS MCP Protocol)
Remote FastMCP Server (Render)
β
SQLite Database
```
---
# π οΈ Tech Stack
* **FastMCP** β MCP server implementation
* **SQLAlchemy** β ORM for database interaction
* **SQLite** β Persistent storage
* **Docker** β Containerization
* **Render** β Cloud deployment
* **Claude Desktop** β LLM client
---
# βοΈ How It Was Built
## 1οΈβ£ MCP Tool-Based Server
Inventory operations are exposed as structured tools:
```python
@mcp.tool()
def add_item(name: str, category: str, quantity: int, min_threshold: int):
```
Each tool:
* Validates inputs
* Executes deterministic business logic
* Updates the database
* Returns structured output
---
## 2οΈβ£ Database Layer
Built using SQLAlchemy ORM.
### Item Model Fields:
* `name`
* `category`
* `quantity`
* `min_threshold`
This ensures persistent and reliable inventory tracking.
---
## 3οΈβ£ HTTP Transport Mode
Converted from local stdio transport to HTTP transport for remote deployment:
```python
mcp.run(
transport="http",
host="0.0.0.0",
port=port
)
```
This allows Claude to communicate securely over HTTPS.
---
## 4οΈβ£ Dockerized Deployment
Dockerfile used for containerization:
```dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "server.py"]
```
Deployed as a Web Service on Render.
---
# π Live Endpoint Behavior
Opening the URL in a browser may show:
```
Not Found
```
This is expected behavior.
MCP servers expose protocol endpoints β not web UI routes.
---
# π How to Configure in Claude Desktop
## Step 1: Open Claude Settings
Go to:
```
Settings β Developer β MCP Servers
```
---
## Step 2: Edit Claude Configuration File
### Windows:
```
%APPDATA%\Claude\claude_desktop_config.json
```
### Mac:
```
~/Library/Application Support/Claude/claude_desktop_config.json
```
---
## Step 3: Add Remote MCP Server Configuration
```json
{
"mcpServers": {
"admin-inventory-remote": {
"transport": "http",
"url": "https://admin-inventory-management-remote-mcp.onrender.com"
}
}
}
```
---
## Step 4: Restart Claude Desktop
Claude will automatically:
* Discover available tools
* Enable natural language inventory management
---
# π§ͺ Example Usage in Claude
You can now say:
* βAdd 200 ball pens in Stationery category with threshold 40.β
* βIssue 30 ball pens.β
* βCheck stock of printer paper.β
* βList all items in inventory.β
Claude will:
1. Interpret intent
2. Select appropriate MCP tool
3. Send structured arguments
4. Execute backend logic
5. Return updated inventory status
---
# π― Key Design Principles
## πΉ Separation of Concerns
* LLM handles reasoning
* MCP handles structured execution
* Database ensures persistence
## πΉ Deterministic Backend
The LLM does not directly manipulate the database.
All operations pass through validated business logic.
## πΉ Secure Protocol Communication
Claude communicates with the server using MCP over HTTPS.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues