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
๐งฉ Requirements
Python โฅ 3.10
MCP SDK (FastMCP)
Install dependencies using either uv or pip:
# Option 1: using uv (recommended)
uv add "mcp[cli]"
# Option 2: using pip
python -m pip install "mcp[cli]"
โ๏ธ Running the server
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
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
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
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
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
{
"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