Skip to main content
Glama
yuwan0405

ip-info-mcp

by yuwan0405
README.md
# ip-info-mcp

基于 MCP (Model Context Protocol) 协议的 IP 地址信息查询服务器,通过 **stdio 传输层** 与 AI 客户端通信。

## 功能

- **查本机 IP** — 获取当前公网 IP 及归属地信息
- **查指定 IP** — 查询任意 IP 地址的归属地、ISP、经纬度等
- **综合查询** — 支持 IPv4/IPv6,含主机名、组织、邮编、时区等

## MCP stdio 通信机制

本项目使用 MCP 协议的 **stdio 传输层**:

```
┌─────────────────┐         ┌──────────────────────┐
│  AI 客户端        │  stdin  │  MCP Server (本进程)  │
│  (CodeBuddy 等)   │◄───────►│  python server.py     │
│                   │  stdout │                       │
└─────────────────┘         └──────────────────────┘
```

- 客户端通过 `stdin` 发送 JSON-RPC 请求(如 `tools/call`)
- 服务器通过 `stdout` 返回 JSON-RPC 响应
- `stderr` 用于日志输出,不影响通信协议
- 无需 HTTP 服务,启动轻量,适合本地工具集成

## 快速开始

### 1. 安装依赖

```bash
pip install -r requirements.txt
```

### 2. 配置到 AI 客户端

在 CodeBuddy 的 **Settings → MCP → Add MCP** 中添加:

```json
{
  "mcpServers": {
    "ip-info": {
      "type": "stdio",
      "command": "python",
      "args": ["path/to/server.py"],
      "description": "IP 地址信息查询工具"
    }
  }
}
```

### 3. 使用

配置后直接在对话中提问:

- "我的公网 IP 是什么?"
- "查询 8.8.8.8 的归属地"
- "查一下这个 IP 的信息:114.114.114.114"

## 项目结构

```
ip-info-mcp/
├── server.py          # MCP 服务器主文件
├── requirements.txt   # Python 依赖
├── README.md          # 本文件
└── chatmcp.yaml       # chatmcp 平台配置
```

## 技术栈

- [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) — MCP 协议实现
- [httpx](https://www.python-httpx.org/) — 异步 HTTP 客户端
- [ip-api.com](http://ip-api.com) / [ipinfo.io](https://ipinfo.io) — 免费 IP 查询 API

## 许可证

MIT