MCP (Model Context Protocol) server
Glances can expose its system monitoring data through a Model Context Protocol (MCP) server, allowing AI assistants (Claude, Cursor, VS Code Copilot, …) to query real-time metrics and generate structured analyses directly from their chat interface.
The MCP server is mounted alongside the standard RESTful API when the web
server is started with the --enable-mcp flag. It uses Server-Sent
Events (SSE) as its transport layer, which means any MCP-compatible client
that supports SSE can connect to it.
Requirements
The mcp Python package must be installed:
pip install 'glances[mcp]'
Start the MCP server
Add --enable-mcp to any Glances web-server command:
glances -w --enable-mcp
The MCP server is then reachable at http://localhost:61208/mcp.
The SSE endpoint used by MCP clients is:
http://localhost:61208/mcp/sse
To change the mount path (default: /mcp):
glances -w --enable-mcp --mcp-path /monitoring/mcp
Authentication
The MCP endpoint inherits the authentication policy of the web server.
When Glances is started with --password, every MCP request must carry
valid credentials — either HTTP Basic Auth or a JWT Bearer token
(see Restful/JSON API documentation for how to obtain a JWT token).
When no password is configured the MCP endpoint is open.
Resources
MCP resources are read-only data sources that a client can list and read.
Static resources
URI |
Description |
|---|---|
|
JSON list of all active plugin names |
|
JSON object of all plugins’ current statistics |
|
JSON object of alert thresholds for all plugins |
Resource templates (parameterised)
URI template |
Description |
|---|---|
|
Current statistics for one plugin |
|
Historical time-series for one plugin |
|
Alert thresholds for one plugin |
Replace {plugin} with any name returned by glances://plugins
(e.g. cpu, mem, network, processlist, …).
Prompts
MCP prompts are pre-built analysis templates that embed live Glances data into a system prompt ready to be sent to an LLM.
Prompt name |
Description |
Parameters |
|---|---|---|
|
Overall health report: CPU, memory, swap, load, filesystems, network |
(none) |
|
Analysis of active alerts with remediation steps |
|
|
Report on the most CPU-intensive processes |
|
|
Disk usage and I/O statistics analysis |
(none) |
Connect an MCP client
Claude Desktop
Add the following entry to your claude_desktop_config.json
(~/Library/Application Support/Claude/claude_desktop_config.json on macOS,
%APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"glances": {
"url": "http://localhost:61208/mcp/sse"
}
}
}
For a password-protected server, use the headers field:
{
"mcpServers": {
"glances": {
"url": "http://localhost:61208/mcp/sse",
"headers": {
"Authorization": "Basic <base64(user:password)>"
}
}
}
}
Python MCP client (programmatic access)
import asyncio
from mcp.client.sse import sse_client
from mcp import ClientSession
async def main():
async with sse_client("http://localhost:61208/mcp/sse") as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# List available resources
resources = await session.list_resources()
print([str(r.uri) for r in resources.resources])
# Read CPU stats
from pydantic import AnyUrl
result = await session.read_resource(AnyUrl("glances://stats/cpu"))
print(result.contents[0].text)
# Run a health-summary prompt
prompt = await session.get_prompt("system_health_summary")
print(prompt.messages[0].content.text[:200])
asyncio.run(main())
See also
Restful/JSON API documentation — RESTful/JSON API documentation
Command Reference — full command-line reference