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
Máy chủ liên quan
Kone.vc
nhà tài trợMonetize your AI agent with contextual product recommendations
site-audit-mcp
PageSpeed, WHOIS, DNS, SSL checks, and site health analysis for AI agents. 6 tools, free, no API key.
md-pdf-mcp
Converts Markdown to styled PDFs using VS Code's markdown styling and Python's ReportLab.
Intugle MCP
Generate automated semantic models using data engineering agents and built data products on demand
Reepl MCP
Create, schedule, and publish LinkedIn posts directly from Claude Desktop or ChatGPT through natural conversations
MCBU Campus Assistant
A chatbot for Manisa Celal Bayar University student affairs, featuring a web scraper, student database, and API integration tools for automation.
Handwriting OCR
Recognize and extract text from handwritten documents using the Handwriting OCR service.
MCP Orchestro
Trello for Claude Code: AI-powered task management with 60 MCP tools, visual Kanban board, and intelligent orchestration for product teams and developers
Enterpret
Enterpret's Wisdom MCP Server brings customer intelligence directly into your favorite AI tools.
Reclaim AI
Reclaim is an ai calendar management tool that helps you plan your schedule and tasks.
laundry-timer-mcp
A laundry planning assistant that uses preferences and real-time weather forecasts.