Provides real-time system information and metrics, including CPU, memory, disk, network, and process status.
A Model Context Protocol (MCP) server that provides real-time system information and metrics. This server exposes CPU usage, memory statistics, disk information, network status, and running processes through a standardized MCP interface.
get_cpu_info
- Retrieve CPU usage, core counts, frequency, and load averageget_memory_info
- Get virtual and swap memory statisticsget_disk_info
- Disk usage information for all mounts or specific pathsget_network_info
- Network interface information and I/O statisticsget_process_list
- Running processes with sorting and filtering optionsget_system_uptime
- System boot time and uptime informationget_temperature_info
- Temperature sensors and fan speeds (when available)system://overview
- Comprehensive system overview with all metricssystem://processes
- Current process list resourceThe easiest way to install and use this MCP server is with uvx:
uvx install mcp-system-info
Then configure it in your MCP client (like Claude Desktop):
{
"mcpServers": {
"system-info": {
"command": "uvx",
"args": ["mcp-system-info"]
}
}
}
For local development:
Clone the repository:
git clone <repository-url>
cd mcp-system-info
Install dependencies:
uv sync
Run the server:
uv run mcp-system-info
mcp-system-info/
βββ src/
β βββ system_info_mcp/
β βββ __init__.py
β βββ server.py # Main FastMCP server
β βββ tools.py # Tool implementations
β βββ resources.py # Resource handlers
β βββ config.py # Configuration management
β βββ utils.py # Utility functions
βββ tests/ # Comprehensive test suite
βββ pyproject.toml # Project configuration
βββ README.md
Install development dependencies:
uv sync --dev
Run tests:
uv run pytest
Run tests with coverage:
uv run pytest --cov=system_info_mcp --cov-report=term-missing
Format code:
uv run black src/ tests/
Lint code:
uv run ruff check src/ tests/
Type checking:
uv run mypy src/
# Build distribution files
uv build
This creates distribution files in the dist/
directory:
mcp_system_info-*.whl
(wheel file)mcp_system_info-*.tar.gz
(source distribution)Test the package locally before publishing:
# Test running the command directly from wheel file
uvx --from ./dist/mcp_system_info-*.whl mcp-system-info
# Test with environment variables
SYSINFO_LOG_LEVEL=DEBUG uvx --from ./dist/mcp_system_info-*.whl mcp-system-info
# Publish to PyPI (requires PyPI account and token)
uv publish
# Or publish to TestPyPI first
uv publish --repository testpypi
Note: You'll need to:
The server supports configuration through environment variables:
SYSINFO_CACHE_TTL
- Cache time-to-live in seconds (default: 5)SYSINFO_MAX_PROCESSES
- Maximum processes to return (default: 100)SYSINFO_ENABLE_TEMP
- Enable temperature sensors (default: true)SYSINFO_LOG_LEVEL
- Logging level (default: INFO)SYSINFO_TRANSPORT
- Transport protocol: stdio
, sse
, or streamable-http
(default: stdio)SYSINFO_HOST
- Host to bind to for HTTP transports (default: localhost)SYSINFO_PORT
- Port to bind to for HTTP transports (default: 8001)SYSINFO_MOUNT_PATH
- Mount path for SSE transport (default: /mcp)1. STDIO (Default)
# Uses standard input/output - no network port
uv run mcp-system-info
2. SSE (Server-Sent Events)
# HTTP server with real-time streaming
SYSINFO_TRANSPORT=sse SYSINFO_PORT=8001 uv run mcp-system-info
# Server will be available at http://localhost:8001/mcp
3. Streamable HTTP
# HTTP server with request/response
SYSINFO_TRANSPORT=streamable-http SYSINFO_PORT=9000 uv run mcp-system-info
SYSINFO_TRANSPORT=sse \
SYSINFO_HOST=0.0.0.0 \
SYSINFO_PORT=8001 \
SYSINFO_CACHE_TTL=10 \
SYSINFO_LOG_LEVEL=DEBUG \
uv run mcp-system-info
# Basic CPU info
{
"name": "get_cpu_info_tool",
"arguments": {
"interval": 1.0,
"per_cpu": false
}
}
# Top 10 processes by memory usage
{
"name": "get_process_list_tool",
"arguments": {
"limit": 10,
"sort_by": "memory",
"filter_name": "python"
}
}
# All disk usage
{
"name": "get_disk_info_tool",
"arguments": {}
}
# Specific path
{
"name": "get_disk_info_tool",
"arguments": {
"path": "/home"
}
}
# Request comprehensive system overview
{
"uri": "system://overview"
}
# Get top processes resource
{
"uri": "system://processes"
}
Locate your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
Add the MCP server configuration:
{
"mcpServers": {
"system-info": {
"command": "uvx",
"args": ["mcp-system-info"],
"env": {
"SYSINFO_CACHE_TTL": "10",
"SYSINFO_LOG_LEVEL": "INFO"
}
}
}
}
{
"mcpServers": {
"system-info": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-system-info",
"run",
"mcp-system-info"
],
"env": {
"SYSINFO_TRANSPORT": "stdio",
"SYSINFO_CACHE_TTL": "10",
"SYSINFO_LOG_LEVEL": "INFO"
}
}
}
}
{
"mcpServers": {
"system-info-http": {
"command": "uvx",
"args": ["mcp-system-info"],
"env": {
"SYSINFO_TRANSPORT": "sse",
"SYSINFO_HOST": "localhost",
"SYSINFO_PORT": "8001",
"SYSINFO_MOUNT_PATH": "/mcp"
}
}
}
}
Once configured, you can ask Claude to:
# Run all tests
uv run pytest
# Run with verbose output
uv run pytest -v
# Run specific test file
uv run pytest tests/test_tools.py
# Run with coverage report
uv run pytest --cov=system_info_mcp --cov-report=html
tests/test_config.py
- Configuration validation teststests/test_tools.py
- Tool implementation teststests/test_resources.py
- Resource handler teststests/test_utils.py
- Utility function testsAll tests use mocked dependencies for consistent, fast execution across different environments.
Enable debug logging for troubleshooting:
SYSINFO_LOG_LEVEL=DEBUG uv run mcp-system-info
Test that tools work correctly:
uv run python -c "from system_info_mcp.tools import get_cpu_info; print(get_cpu_info())"
[Add your license information here]
[Add support information here]
An MCP server for fetching verifiable random numbers from the drand network.
Search for movies and manage playlists on your Plex Media Server using the Plex API.
Provides current time and timezone conversion capabilities using IANA timezone names, with automatic system timezone detection.
Fulcra Context MCP server for accessing your personal health, workouts, sleep, location, and more, all privately. Built around Context by Fulcra.
Access the Audius music platform via LLMs, with 105 tools covering most of the Audius Protocol API.
An integration for Claude Desktop to interact with Spotify using the Model Context Protocol (MCP).
An MCP server for analyzing product or service reviews.
Fetches PokΓ©mon data from the PokeAPI and exposes it through a standardized MCP interface.
Generates O'RLY? (O'Reilly parody) book covers.
MCP Server for DealX platform