Memory Scanner MCP
基于 pymem 的内存扫描与修改 MCP 服务器。
通过 MCP 协议将内存读写、扫描、特征码搜索等能力暴露给 AI Agent,实现自然语言驱动的内存修改。
功能
| 工具 | 说明 |
|---|---|
list_processes |
列出运行中的进程 |
attach_process |
附加到目标进程 |
detach_process |
断开进程连接 |
get_process_info |
获取进程详细信息和模块列表 |
read_memory |
读取指定地址的值 |
write_memory |
写入值到指定地址 |
scan_memory_first |
首次扫描(全内存搜索) |
scan_memory_next |
再次扫描(缩小范围) |
scan_memory_filter |
条件过滤(大于/小于等) |
write_scan_results |
批量写入扫描结果 |
get_scan_results |
查看扫描结果及当前值 |
scan_pattern |
AOB/特征码扫描(支持通配符) |
get_module_base |
获取模块基地址 |
read_pointer_chain |
多级指针链读取 |
write_pointer_chain |
多级指针链写入 |
dump_memory |
内存转储(Hex + ASCII) |
freeze_address |
冻结地址值 |
unfreeze_address |
解除冻结 |
apply_frozen |
执行冻结写入 |
list_frozen |
列出冻结列表 |
支持的数据类型
int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double string bytes
安装
从源码安装(推荐开发使用)
git clone https://github.com/miloira/MemoryScaner.git
cd MemoryScaner
pip install -e .
直接安装
pip install memory-scanner-mcp
需要 Python 3.10+,仅支持 Windows。
使用方式
作为命令行工具运行
memory-scanner-mcp
作为 Python 模块运行
python -m memory_scanner
MCP 客户端配置
推荐使用 uvx(无需手动安装):
{
"mcpServers": {
"memory-scanner": {
"command": "uvx",
"args": ["memory-scanner-mcp"]
}
}
}
也可以先 pip install 后直接使用命令:
{
"mcpServers": {
"memory-scanner": {
"command": "memory-scanner-mcp"
}
}
}
或者使用 Python 模块方式:
{
"mcpServers": {
"memory-scanner": {
"command": "python",
"args": ["-m", "memory_scanner"]
}
}
}
项目结构
MemoryScaner/
├── pyproject.toml # 项目配置与依赖管理
├── README.md
├── LICENSE
└── src/
└── memory_scanner/
├── __init__.py # 包初始化与版本号
├── __main__.py # python -m memory_scanner 入口
└── server.py # MCP 服务器实现(所有工具定义)
使用示例
典型的内存修改流程(以游戏修改为例):
- 附加进程: "附加到 game.exe"
- 首次扫描: "搜索 int32 类型的值 100"(当前血量为100)
- 改变值: 在游戏中让血量变化
- 再次扫描: "搜索新的值 95"(血量变为95)
- 重复缩小: 直到结果只剩1-2个
- 修改值: "把找到的地址写入 9999"
- 冻结: "冻结这个地址为 9999"
开发
# 克隆项目
git clone https://github.com/miloira/MemoryScaner.git
cd MemoryScaner
# 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate
# 安装开发依赖(可编辑模式)
pip install -e .
注意事项
- 必须以 管理员权限 运行才能读写其他进程的内存
- 部分进程有保护机制,可能无法正常读写
- 冻结功能需要客户端定期调用
apply_frozen来维持 - 扫描大量内存时可能需要较长时间
许可证
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
memory_scanner_mcp-0.0.3.tar.gz
(16.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file memory_scanner_mcp-0.0.3.tar.gz.
File metadata
- Download URL: memory_scanner_mcp-0.0.3.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4f465865026e48d14b1f98cfb3d3cdcd3632ee4db1c83796344385ff3f20712
|
|
| MD5 |
a94130305998de559adbca1920aecd67
|
|
| BLAKE2b-256 |
96ab503fc4c19fb2cdbcb1a4003b68f8d4f58356ea2bc3a6cee7eec23d6e51df
|
File details
Details for the file memory_scanner_mcp-0.0.3-py3-none-any.whl.
File metadata
- Download URL: memory_scanner_mcp-0.0.3-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d1c8f6c25d44e0a09fd27dec73b7a2e77149d548481aca7d581abbfde4dd341
|
|
| MD5 |
49989c8ef4d3cb01232b88ee6af35a5d
|
|
| BLAKE2b-256 |
7b30f9ca58cca57e0d1d3929638250419c82a521e8010d293eb1f46adff9ce30
|