Azure MCP Inventory Server
README.md
# Azure MCP Inventory CRUD Server and Client
This project contains an MCP (Model Context Protocol) server and async client for managing inventory items in Azure Cosmos DB.
## Setup
1. Install dependencies:
```bash
pip install -r requirements.txt
```
2. Create a `.env` file with your Azure Cosmos DB credentials:
```env
COSMOS_ENDPOINT=https://<your-account>.documents.azure.com:443/
COSMOS_KEY=<your-primary-key>
COSMOS_DATABASE=<your-database-name>
```
## Running the Server
Start the MCP server with HTTP transport:
```bash
python server.py
```
The server will run on `http://127.0.0.1:8001` by default.
## Using the Client
The `client.py` module provides an `InventoryClient` class for consuming the server. It uses async/await and httpx for HTTP communication.
### Basic Usage
```python
import asyncio
from client import InventoryClient
async def main():
client = InventoryClient(server_url="http://127.0.0.1:8001")
async with client.connect():
# Create an item
result = await client.create_item(
item_id="ITEM001",
name="Laptop",
category="Electronics",
quantity=10,
price=999.99
)
print(result)
# Read an item
result = await client.read_item("ITEM001", "Electronics")
print(result)
# Update quantity
result = await client.update_quantity("ITEM001", "Electronics", 15)
print(result)
# List items in a category
result = await client.list_category_items("Electronics")
print(result)
# Delete an item
result = await client.delete_item("ITEM001", "Electronics")
print(result)
asyncio.run(main())
```
### Running the Example
To run the included example:
```bash
python client.py
```
## Client API
### InventoryClient
#### Constructor
- `__init__(server_url: str = "http://127.0.0.1:8001")` - Initialize the client
#### Methods
All methods are async and require using `async with client.connect():` context manager.
- `async create_item(item_id, name, category, quantity, price)` - Create a new item
- `async read_item(item_id, category)` - Read an item by ID and category
- `async update_quantity(item_id, category, new_quantity)` - Update item quantity
- `async delete_item(item_id, category)` - Delete an item
- `async list_category_items(category)` - List all items in a category
## Server API
The server exposes the following tools via MCP:
- `create_item` - Create a new inventory item
- `read_item` - Read an item from the database
- `update_quantity` - Update the quantity of an existing item
- `delete_item` - Delete an inventory item
- `list_category_items` - List all items in a specific category
## Architecture
- **server.py** - FastMCP server that manages inventory CRUD operations with Azure Cosmos DB
- **client.py** - Async HTTP client for consuming the MCP server
- **requirements.txt** - Python dependencies
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues