MCP ProcFS Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP ProcFS Servershow me CPU information"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP ProcFS Server
A powerful Model Context Protocol (MCP) server for reading and modifying Linux /proc filesystem values. Provides both JSON-RPC (stdio) and Server-Sent Events (SSE) interfaces with full Swagger API documentation.
Features
🔍 Comprehensive ProcFS Access: Read and write to
/procfilesystem🎛️ System Monitoring: CPU, memory, load, network, and disk statistics
⚙️ Sysctl Management: Read and modify kernel parameters
🔧 Process Control: Monitor and manage processes (priority, affinity, signals)
📡 Dual Protocols: JSON-RPC over stdio and HTTP with SSE
📚 Full API Documentation: Interactive Swagger UI
🔐 Type-Safe: Written in TypeScript with comprehensive type definitions
✅ Validated: Zod schemas for request/response validation
Related MCP server: Linux MCP Server
Installation
From npm
npm install -g @mcp/procfs-serverFrom source
git clone https://github.com/user/mcp-proc.git
cd mcp-proc
npm install
npm run buildQuick Start
JSON-RPC Server (stdio)
# Start the MCP server on stdio
mcp-procfs
# Or with npm
npm startHTTP Server with SSE
# Start HTTP server on port 3000
npm run start:sse
# Custom port
PORT=8080 npm run start:sseThen open your browser to:
API Documentation: http://localhost:3000/api-docs
SSE Endpoint: http://localhost:3000/mcp/sse
RPC Endpoint: http://localhost:3000/mcp/rpc
Usage
As MCP Tool
Configure in your MCP client (e.g., Claude Desktop):
{
"mcpServers": {
"procfs": {
"command": "mcp-procfs"
}
}
}Available Tools
System Information
get_cpu_info: Get detailed CPU information
get_memory_info: Get memory statistics
get_load_average: Get system load average
get_network_stats: Get network interface statistics
get_disk_stats: Get disk I/O statistics
ProcFS Operations
read_procfs: Read any file from
/procwrite_procfs: Write to writable
/procfiles
Process Management
get_process_info: Get detailed process information
list_processes: List all process IDs
set_process_priority: Change process nice value
set_process_affinity: Set CPU affinity
Sysctl Management
read_sysctl: Read kernel parameter
write_sysctl: Modify kernel parameter
list_sysctl: List all parameters
Example: Using HTTP API
# Get CPU information
curl http://localhost:3000/api/cpu
# Get memory information
curl http://localhost:3000/api/memory
# Read a sysctl parameter
curl http://localhost:3000/api/sysctl/net.ipv4.ip_forward
# Write a sysctl parameter (requires permissions)
curl -X POST http://localhost:3000/api/sysctl \
-H "Content-Type: application/json" \
-d '{"key": "net.ipv4.ip_forward", "value": 1}'
# Get process information
curl http://localhost:3000/api/processes/1
# Read custom procfs file
curl "http://localhost:3000/api/procfs?path=sys/kernel/hostname"Example: Using JSON-RPC
import { MCPProcFSServer } from '@mcp/procfs-server';
const server = new MCPProcFSServer();
await server.run();Example: Direct Library Usage
import { ProcFSReader, ProcFSWriter } from '@mcp/procfs-server';
const reader = new ProcFSReader();
const writer = new ProcFSWriter();
// Get CPU info
const cpuInfo = await reader.getCPUInfo();
console.log(cpuInfo);
// Get memory info
const memInfo = await reader.getMemInfo();
console.log(memInfo);
// Read sysctl
const param = await writer.readSysctl('net.ipv4.ip_forward');
console.log(param);
// Write sysctl (requires root)
await writer.writeSysctl('net.ipv4.ip_forward', 1);API Documentation
When running the HTTP server, full interactive API documentation is available at:
http://localhost:3000/api-docs
The documentation includes:
All endpoints with request/response schemas
Try-it-out functionality
Example requests and responses
Authentication requirements
API Endpoints
Method | Endpoint | Description |
GET |
| Health check |
GET |
| CPU information |
GET |
| Memory information |
GET |
| Load average |
GET |
| Network statistics |
GET |
| Disk statistics |
GET |
| Read procfs file |
POST |
| Write procfs file |
GET |
| List sysctl parameters |
GET |
| Read sysctl parameter |
POST |
| Write sysctl parameter |
GET |
| List all processes |
GET |
| Get process info |
POST |
| Set process priority |
GET |
| SSE endpoint |
POST |
| JSON-RPC endpoint |
MCP Resources
The server exposes the following MCP resources:
procfs://cpuinfo- CPU informationprocfs://meminfo- Memory informationprocfs://loadavg- Load averageprocfs://net/dev- Network statisticsprocfs://diskstats- Disk statistics
Permissions
Some operations require elevated permissions:
Read-only operations: Most read operations work without special permissions
Write operations: Require appropriate permissions (usually root)
Process management: Some operations require CAP_SYS_NICE or root
Sysctl writes: Usually require root or specific capabilities
Running with elevated permissions
# Run with sudo (not recommended for production)
sudo mcp-procfs
# Better: Use capabilities
sudo setcap cap_sys_nice,cap_sys_admin+ep $(which node)
mcp-procfsDevelopment
Setup
npm install
npm run buildDevelopment Mode
npm run dev # Watch mode with hot reloadTesting
npm test # Run tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage reportLinting
npm run lint # Check code
npm run format # Format codeArchitecture
mcp-proc/
├── src/
│ ├── lib/
│ │ ├── procfs-reader.ts # ProcFS reading logic
│ │ └── procfs-writer.ts # ProcFS writing logic
│ ├── types/
│ │ ├── procfs.ts # ProcFS type definitions
│ │ ├── mcp.ts # MCP protocol types
│ │ └── schemas.ts # Zod validation schemas
│ ├── server.ts # MCP JSON-RPC server
│ ├── server-sse.ts # HTTP/SSE server
│ ├── cli.ts # JSON-RPC CLI entry
│ ├── cli-sse.ts # HTTP/SSE CLI entry
│ └── index.ts # Main exports
├── scripts/
│ ├── setup.sh # Setup script
│ ├── build.sh # Build script
│ └── release.sh # Release script
└── tests/ # Test filesTechnology Stack
Runtime: Node.js 18+
Language: TypeScript
Validation: Zod
Web Framework: Express
Documentation: Swagger/OpenAPI
MCP SDK: @modelcontextprotocol/sdk
Testing: Jest
Security Considerations
⚠️ Important Security Notes:
This server provides direct access to system resources
Write operations can affect system behavior
Always run with minimum required permissions
Consider using read-only mode for untrusted clients
Implement authentication for production deployments
Monitor and log all write operations
Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch
Make your changes with tests
Submit a pull request
License
MIT License - see LICENSE file for details
Resources
Support
Issues: GitHub Issues
Discussions: GitHub Discussions
Changelog
See CHANGELOG.md for version history.
Made with ❤️ for the MCP community
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/manalejandro/mcp-proc'
If you have feedback or need assistance with the MCP directory API, please join our Discord server