Skip to main content
Glama

MCP System Info Server

A simple Model Context Protocol server that provides system information and public IP lookup tools for Claude Code.

Features

Tools

  • get_public_ip: Get your public IP address with geolocation info (country, city, ISP, timezone)

  • get_system_info: Get local system information (OS, CPU, memory, uptime)

Resources

  • system://info: Static resource with current system information

Related MCP server: MCP AI Chat LangChain

Installation

npm install
npm run build

Usage with Claude Code

claude mcp add system-info node /path/to/mcp-demo/dist/index.js

Manual configuration

Add to your ~/.claude.json:

{
  "mcpServers": {
    "system-info": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/mcp-demo/dist/index.js"],
      "env": {}
    }
  }
}

Reload your IDE/Claude Code, and you can now ask:

  • "What's my public IP?"

  • "Give me system information"

  • "Where am I connected from?"

How it works

┌─────────────┐         JSON-RPC          ┌─────────────┐
│ Claude Code │ ────────────────────────> │  MCP Server │
│  (Client)   │   stdio (stdin/stdout)    │ (this repo) │
│             │ <──────────────────────── │             │
└─────────────┘                          └─────────────┘
                                                 │
                                                 ↓
                                         ┌──────────────┐
                                         │ ipify API    │
                                         │ ip-api.com   │
                                         │ Node.js os   │
                                         └──────────────┘

The server implements the MCP protocol to:

  1. Expose available tools via tools/list

  2. Execute tool calls via tools/call

  3. Expose resources via resources/list and resources/read

Development

Project structure

mcp-demo/
├── src/
│   └── index.ts          # MCP server implementation
├── dist/                 # Compiled JavaScript
├── package.json
└── tsconfig.json

Modifying the server

  1. Edit src/index.ts

  2. Run npm run build

  3. Reload Claude Code (Cmd+Shift+P → "Reload Window")

Testing manually

# List available tools
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js

# Call a tool
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_public_ip","arguments":{}}}' | node dist/index.js

Dependencies

Extending

To add a new tool:

  1. Add tool definition in ListToolsRequestSchema handler

  2. Implement tool logic in CallToolRequestSchema handler

Example:

// 1. Add to tool list
{
  name: "get_weather",
  description: "Get current weather",
  inputSchema: {
    type: "object",
    properties: {
      city: { type: "string" }
    },
    required: ["city"]
  }
}

// 2. Handle the call
if (name === "get_weather") {
  const { city } = request.params.arguments;
  const response = await axios.get(`https://api.weather.com/${city}`);
  return {
    content: [{ type: "text", text: JSON.stringify(response.data) }]
  };
}

License

MIT

Resources

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A custom Model Context Protocol server that gives Claude Desktop and other LLMs access to file system operations and command execution capabilities through standardized tool interfaces.
    23
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    A server implementation for the Model Context Protocol (MCP) that allows Claude AI to execute commands through a command-line interface, enabling direct system interactions from within Claude.
    -