README.mdโข2.5 kB
# Device Log MCP Server
A simple **Model Context Protocol (MCP)** server written in Python using the **FastMCP SDK**.
This server simulates reading logs from multiple device services and exposes them as MCP tools.
---
## ๐ Features
- Exposes 4 tools:
- `get_activation_logs(serial_number)`
- `get_lan_logs(serial_number)`
- `get_wlan_logs(serial_number)`
- `get_kafka_status(serial_number)`
- Simulates real logs for demo/testing.
- Runs in **stateless HTTP JSON mode** โ easy to test using `curl`.
- Default port: **4000**
---
## ๐งฉ Requirements
- Python โฅ 3.10
- MCP SDK (FastMCP)
Install dependencies using either `uv` or `pip`:
```bash
# Option 1: using uv (recommended)
uv add "mcp[cli]"
# Option 2: using pip
python -m pip install "mcp[cli]"
```
---
## โ๏ธ Running the server
```bash
uv run python mcp_server.py
```
Output example:
```
๐ Starting Device Log MCP Server on port 4000...
INFO: Uvicorn running on http://127.0.0.1:4000
```
---
## ๐งช Testing via curl
You can call each tool directly via `/mcp` endpoint.
### Activation logs
```bash
curl -X POST http://127.0.0.1:4000/mcp -H "Content-Type: application/json" -H "Accept: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_activation_logs","arguments":{"serial_number":"SN12345"}}}'
```
### LAN logs
```bash
curl -X POST http://127.0.0.1:4000/mcp -H "Content-Type: application/json" -H "Accept: application/json" -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_lan_logs","arguments":{"serial_number":"SN12345"}}}'
```
### WLAN logs
```bash
curl -X POST http://127.0.0.1:4000/mcp -H "Content-Type: application/json" -H "Accept: application/json" -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_wlan_logs","arguments":{"serial_number":"SN12345"}}}'
```
### Kafka status
```bash
curl -X POST http://127.0.0.1:4000/mcp -H "Content-Type: application/json" -H "Accept: application/json" -d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_kafka_status","arguments":{"serial_number":"SN12345"}}}'
```
---
## ๐งฐ Example response
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "[SN12345] Activation completed at step 4"
}
]
}
}
```
---
## ๐ฆ Project structure
```
device-log-server/
โโโ mcp_server.py
โโโ README.md
```