MCP System Information Server
An MCP server that provides system information, such as CPU and memory usage.
MCP System Information Server
Model Context Protocol (MCP) сервер для получения системной информации (CPU и память).
Спецификация
https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http
Reference
https://levelup.gitconnected.com/mcp-server-and-client-with-sse-the-new-streamable-http-d860850d9d9d
Возможности сервера
- Получение информации о CPU (количество ядер, модель, загрузка)
- Получение информации о памяти (общая, доступная, используемая)
- Структурированное логгирование с помощью zerolog
- Поддержка двух режимов работы:
- stdio - для интеграции с Cursor в режиме stdio и другими локальными MCP клиентами
- Streamable HTTP - новый протокол согласно спецификации 2025-03-26 на корневом маршруте
/ - Legacy HTTP/SSE - для обратной совместимости на маршруте
/sse
Конфигурация логгирования
Сервер использует структурированное логгирование с помощью zerolog с поддержкой следующих переменных окружения:
Переменные окружения
LOG_LEVEL- уровень логгирования:trace,debug,info,warn,error,fatal,panic,disabled(по умолчанию:info)ENVIRONMENTилиENV- режим окружения:development/devилиproduction/prod(по умолчанию:development)
Режимы логгирования
Режим разработки (development)
ENVIRONMENT=development LOG_LEVEL=debug ./system-info-server
- Красивый цветной вывод в консоль
- Читаемые временные метки (HH:MM:SS)
- Подробная информация о файлах и строках кода
Режим продакшена (production)
ENVIRONMENT=production LOG_LEVEL=info ./system-info-server
- JSON формат для парсинга логами агрегаторами
- RFC3339 временные метки
- Оптимизирован для производительности
Примеры конфигурации
# Минимальное логгирование для продакшена
ENVIRONMENT=production LOG_LEVEL=error PORT=8080 ./system-info-server
# Максимальная детализация для отладки
ENVIRONMENT=development LOG_LEVEL=trace ./system-info-server
# Стандартная конфигурация для разработки
LOG_LEVEL=debug ./system-info-server
Структура логов
Каждое логируемое событие содержит контекстные поля:
component- компонент системы (main, http, session, mcp, tools, sysinfo, sse, streamable)session_id- идентификатор сессии для отслеживания запросовmethod- HTTP метод или RPC методduration- время выполнения операцийstatus- HTTP статус кодerror- детали ошибок с контекстом
Пример лога в режиме разработки:
14:30:25 INF Starting Fiber server component=main port=8080 addr=:8080
14:30:30 INF Request started component=http method=POST path=/ session_id=session_20240614_143030_abc12345
14:30:30 DBG Processing JSON-RPC request component=mcp method=initialize session_id=session_20240614_143030_abc12345
Пример лога в JSON формате (продакшен):
{"level":"info","time":"2024-06-14T14:30:25+03:00","caller":"main.go:65","component":"main","port":"8080","addr":":8080","message":"Starting Fiber server"}
{"level":"info","time":"2024-06-14T14:30:30+03:00","caller":"middleware/logging.go:35","component":"http","method":"POST","path":"/","session_id":"session_20240614_143030_abc12345","message":"Request started"}
Установка и запуск
Сборка из исходников
go build -o system-info-server .
Запуск в режиме stdio (для Cursor и других локальных MCP клиентов)
./system-info-server
Запуск в режиме HTTP сервера
PORT=8080 ./system-info-server
Интеграция с Cursor
Добавьте в файл ~/.cursor/mcp.json:
Вариант 1: Локальный stdio сервер
{
"mcpServers": {
"system-info-local": {
"command": "/path/to/system-info-server",
"args": []
}
}
}
Вариант 2: Remote Streamable HTTP (новая спецификация 2025-03-26)
{
"mcpServers": {
"system-info-remote": {
"url": "https://your-domain.com/"
}
}
}
Вариант 3: Legacy HTTP+SSE (для обратной совместимости)
{
"mcpServers": {
"system-info-legacy": {
"url": "https://your-domain.com/sse"
}
}
}
Интеграция с n8n
Новый формат (Streamable HTTP)
При добавлении MCP сервера в n8n укажите:
- MCP Endpoint:
https://your-domain.com/
Legacy формат (для обратной совместимости)
При добавлении MCP сервера в n8n укажите:
- SSE Endpoint:
https://your-domain.com/sse
Streamable HTTP API (новая спецификация 2025-03-26)
Инициализация
POST /
Content-Type: application/json
Accept: application/json, text/event-stream
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": {
"name": "client-name",
"version": "1.0.0"
}
}
}
Ответ содержит заголовок Mcp-Session-Id, который нужно использовать во всех последующих запросах.
Получение списка инструментов
POST /
Content-Type: application/json
Accept: application/json
Mcp-Session-Id: <session-id>
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
Вызов инструмента
POST /
Content-Type: application/json
Accept: application/json
Mcp-Session-Id: <session-id>
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_system_info",
"arguments": {}
}
}
SSE поток (Streamable HTTP)
GET /
Accept: text/event-stream
Mcp-Session-Id: <session-id>
POST с SSE ответом
POST /
Content-Type: application/json
Accept: text/event-stream
Mcp-Session-Id: <session-id>
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_system_info",
"arguments": {}
}
}
Завершение сессии
DELETE /
Mcp-Session-Id: <session-id>
Legacy HTTP API (для обратной совместимости)
Инициализация
POST /sse
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "client-name",
"version": "1.0.0"
}
}
}
SSE подключение (Legacy)
GET /sse?sessionId=<session-id>
Accept: text/event-stream
Docker
Сборка образа
docker build -t mcp-system-info .
Запуск контейнера
# HTTP режим
docker run -p 8080:8080 -e PORT=8080 mcp-system-info
# stdio режим
docker run -it mcp-system-info
Docker Compose
docker-compose up -d
Развертывание на сервере
При развертывании за nginx добавьте в конфигурацию:
# Для нового Streamable HTTP endpoint
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_cache off;
proxy_set_header X-Accel-Buffering no;
proxy_read_timeout 86400;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Для Legacy SSE endpoint (обратная совместимость)
location /sse {
proxy_pass http://localhost:8080/sse;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_cache off;
proxy_set_header X-Accel-Buffering no;
proxy_read_timeout 86400;
}
Протокольные изменения
Streamable HTTP (2025-03-26) vs Legacy HTTP+SSE (2024-11-05)
Новая спецификация (/):
- Единый endpoint для всех операций
- POST и GET методы на одном маршруте
- Поддержка
Accept: application/json, text/event-stream - Session Management через
Mcp-Session-Idзаголовок - Resumable streams с
Last-Event-Id - DELETE для явного завершения сессии
Legacy спецификация (/sse):
- Отдельные endpoints для POST и SSE
- Событие
endpointпри подключении к SSE - Параметр
sessionIdв query string - Старый формат событий SSE
Лицензия
MIT
相關伺服器
Adfin
The only platform you need to get paid - all payments in one place, invoicing and accounting reconciliations with Adfin.
Scrapbox/CoSense
A server for the Scrapbox/CoSense platform to retrieve, list, search, and create pages.
OneNote
Interact with Microsoft OneNote using AI language models like Claude and other LLMs.
Resume Generator
Generates professional PDF resumes using LaTeX templates.
PocketMCP
Turn your Android phone into an MCP (Model Context Protocol) server. AI agents and desktop scripts can call your phone for live data and actions over LAN
roampal-core
Persistent memory for Claude Code with outcome-based learning. Tracks what helped vs failed, auto-injects context via hooks.
n8n MCP Server
Automate workflows with n8n, a powerful workflow automation tool.
HubSpot MCP Server
Interact with the HubSpot CRM API for sales analysis and insights.
Google Sheets
Interact with Google Sheets using a Python-based MCP server and Google Apps Script.
Jira MCP Server
An MCP server for interacting with Jira projects and issues.