A lightweight, production-ready Model Context Protocol (MCP) server built with .NET 9, running as a Windows Service. Connect your AI assistant to your local machine — read system stats, monitor processes, scan your network, check the weather, and more.
Built by two curious minds who don't follow rules. 🚀
| Tool | Description |
|---|---|
get_system_info |
CPU usage, RAM, disk space, machine name |
get_top_memory_processes |
Top 10 processes by RAM usage |
list_processes |
List all running processes with optional filter |
kill_process |
Kill a process by PID |
get_network_info |
Active network interfaces and IP addresses |
ping_host |
Ping any host or IP, get round-trip time |
who_is_home |
Scan local network, find all online devices |
get_current_weather |
Current weather for any city via OpenWeatherMap |
read_file |
Read text content of any file (up to 2000 chars) |
search |
Search files by pattern in a directory |
This server speaks MCP — the open standard created by Anthropic. Any MCP-compatible client can connect:
| Client | Status |
|---|---|
| Claude Desktop | ✅ Tested & working |
| Claude Code | ✅ Native HTTP transport |
| Cursor | ✅ Native HTTP transport |
| VS Code + GitHub Copilot | ✅ Via mcp.json |
| Open WebUI + Ollama | ✅ Via mcpo proxy |
| Windsurf | ✅ MCP supported |
| Any OpenAPI client | ✅ Via mcpo |
Claude Desktop ──────────────────────────────┐
Cursor / VS Code ─────────────────────────── ┤
▼
ToolServer (.NET 9)
MCP HTTP Transport
http://localhost:5765/mcp
│
Open WebUI + Ollama ──► mcpo proxy ───────────┘
(http://localhost:8001)
- .NET 9 SDK
- Windows (uses Windows Service + PerformanceCounter)
- OpenWeatherMap API key (free tier works)
git clone https://github.com/yourusername/ToolServer
cd ToolServer
dotnet runServer starts at http://localhost:5765
dotnet publish -c Release -o ./publish
sc create ToolServer binPath="D:\Projects\ToolServer\publish\ToolServer.exe"
sc start ToolServerAdd your OpenWeatherMap API key to appsettings.json:
{
"OPENWEATHER_API_KEY": "your-api-key-here"
}Get a free key at openweathermap.org
Add to %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"ToolServer": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:5765/mcp"]
}
}
}Restart Claude Desktop — tools appear automatically.
uvx mcpo --port 8001 --server-type "streamable-http" -- http://localhost:5765/mcpThen in Open WebUI: Settings → Integrations → Manage Tool Servers → +
URL: http://localhost:8001
Swagger UI available at: http://localhost:8001/docs
Add to .cursor/mcp.json:
{
"mcpServers": {
"ToolServer": {
"url": "http://localhost:5765/mcp"
}
}
}ToolServer/
├── Program.cs # Entry point, MCP + HTTP setup
├── Tools/
│ ├── SystemTools.cs # CPU, RAM, disk, file, search
│ ├── ProcessTools.cs # Process list, kill, top memory
│ ├── NetworkTools.cs # Network info, ping, who is home
│ └── WeatherTools.cs # OpenWeatherMap integration
├── Helpers/
│ └── CpuHelper.cs # Windows PerformanceCounter
└── appsettings.json # API keys, configuration
http://localhost:5765/tools
Returns all registered MCP tools with descriptions and parameters.
- OllamaManager — list, pull, delete models
- ProcessWatcher — monitor and alert on process changes
- LogWatcher — tail log files, detect errors
- PortScanner — scan open ports on any host
- GitInfo — repo status, recent commits
- Cross-platform support (Linux/macOS)
We're just getting started and we don't follow rules. PRs welcome. Ideas welcome. Let's build.
MIT — do whatever you want with it.
Built with curiosity, .NET 9, and way too much coffee. ☕
👥 Contributors
Akın — Architecture, vision, and the guy who actually runs the hardware Claude (Anthropic) — Code, documentation, and occasional existential observations