mcp-infra
Enables infrastructure introspection on Linux systems by providing tools to query and identify process names and PIDs listening on specific network ports.
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-infraWhat process is listening on port 8080?"
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-infra
An MCP (Model Context Protocol) server for infrastructure introspection — lets AI assistants query which processes are listening on specific ports on your machine.
What it does
Exposes a single tool to MCP clients (like Claude Desktop or Claude Code):
get_processes_by_ports — given a list of port numbers, returns the process name and PID for each listening socket.
// Example response for ports [8000, 3000]
{
"8000": [{ "name": "python", "pid": "12345" }],
"3000": [{ "name": "node", "pid": "67890" }]
}This is useful when you want your AI assistant to understand what's running on your machine — e.g. "what's listening on port 5432?" or "check if my dev server is up."
Requirements
Python 3.11+
Linux (uses
ssfromiproute2)uv (recommended) or pip
Installation
git clone https://github.com/your-username/mcp-infra
cd mcp-infra
uv syncOr with pip:
pip install -e .Usage
Run directly
uv run server.py
# or
python server.pyAdd to Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"infra": {
"command": "uv",
"args": ["run", "/path/to/mcp-infra/server.py"]
}
}
}Add to Claude Code
claude mcp add infra -- uv run /path/to/mcp-infra/server.pyTool reference
get_processes_by_ports(ports: list[int]) -> str
Returns a JSON string mapping each port to a list of processes.
Field | Type | Description |
|
| Port numbers to query |
Response shape per port:
name— process namepid— process ID as stringraw— unparsed line (fallback if parsing fails)error— error message ifssfailed for that port
How it works
Uses the ss command (ss -tlnp sport = :<port>) to list TCP sockets in LISTEN state, then parses the users:((...)) field to extract process names and PIDs.
Contributing
Pull requests are welcome. Keep it focused — this is intentionally a small, single-purpose server.
License
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
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/chalshik/mcp-infra'
If you have feedback or need assistance with the MCP directory API, please join our Discord server