Token导航 LogoToken导航TokenDH.com
Hack MCP logo
文档知识stdio官方级别未说明来源级核验

Hack MCP

MCP Server

集成铁电模拟与真实AFM实验数据分析的模型上下文协议服务器,用于材料科学领域的实时数据匹配和仿真验证。

工具数

13

提示词数

0

GitHub Stars

0

资源数

0
Jupyter NotebookClaude文档处理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

offthewallace

提供方

offthewallace

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp ferrosim git+https://github.com/ramav87/FerroSim.git@rama-dev

详细介绍

具有真实AFM数据集成的FerroSim MCP服务器

将FerroSim铁电模拟与真实AFM实验数据分析相结合的模型上下文协议(MCP)服务器。

参考文献

本项目建立在以下基础之上:

特性

FerroSim理论侧

  • 创建并运行铁电畴模拟
  • 配置电场、缺陷和材料属性
  • 可视化极化动力学
  • 导出模拟结果

AFM实验侧

  • 加载真实AFM数据 多种格式(.ibw、.h5、.npy、.mat、.txt)
  • 分析铁电畴结构
  • 提取域面积、墙密度和统计信息
  • DTMicrosoft-compatible API
  • 逐行扫描仿真器

理论实验匹配

  • 将模拟结果与AFM实验数据进行比较
  • 计算相关性、MSE、RMSE指标
  • 评估比赛质量

快速开始

安装

# Activate conda environment
source /Users/guanlinhe/miniconda3/bin/activate ferrosim_mcp

# Install dependencies
pip install mcp ferrosim git+https://github.com/ramav87/FerroSim.git@rama-dev
pip install igor2 scipy h5py numpy

用法

1.加载真实AFM数据

from afm_digital_twin import AFMDigitalTwin

# Initialize
afm = AFMDigitalTwin()

# Load data (format auto-detected from extension)
result = afm.load_data("AFM/temp/scan_0001.ibw")  # Igor format
# OR
result = afm.load_data("data/dset_spm1.h5")       # HDF5/USID format

print(f"Loaded scan: {result['scan_id']}")
print(f"Format: {result['format']}")

2.分析域名

# Analyze domain structure
domains = afm.analyze_domain_structure()
print(f"Up domain area: {domains['up_domain_area']*1e12:.2f} μm²")
print(f"Down domain area: {domains['down_domain_area']*1e12:.2f} μm²")
print(f"Wall density: {domains['domain_wall_density']:.3f}")

3.运行MCP服务器

python ferrosim_mcp_server_minimal.py

支持的文件格式

格式扩展名描述状态
Igor二元波.ibwIgor Pro的PFM数据✅ 已测试
HDF5/USID.h5, .hdf5DTM显微镜/sidpy格式✅ 已测试
NumPy.npy二进制NumPy数组✅ 工作
MATLAB.matMATLAB数据文件✅ 工作
文本.txt, .dat纯文本数组✅ 工作

多渠道支持: 自动检测PFM数据中的振幅和相位通道。

api参考

AFM数字孪生

load_data(filepath, data_format=None)

从文件加载真实的AFM扫描数据。

参数:

  • filepath (str):数据文件的路径
  • data_format (str,可选):格式('ibw','h5','npy','mat','tx')。如果无,则自动检测。

退货: 包含scan_id和元数据的词典

analyze_domain_structure(scan_id=None)

分析铁电畴结构。

退货: 词典包含:

  • num_up_domains:像素数
  • num_down_domains:像素数
  • up_domain_area:面积(平方米)
  • down_domain_area:面积(平方米)
  • domain_wall_density:壁密度度量
  • mean_amplitude_up/down:按域划分的平均振幅

get_piezoresponse(scan_id=None)

获取PFM振幅和相位数据。

退货: 带振幅和相位阵列的词典

get_scan(scan_id=None, channels=None)

获取扫描数据(与DTMicrosoft-compatible API兼容)。

退货: (array_list、shape、dtype)元组

scanning_emulator(scan_id=None, scanning_rate=10)

模拟逐行扫描。

产量: 每条扫描线的行数据

MCP工具

AFM工具

  • afm_load_real_scan:加载真实的AFM数据文件
  • afm_analyze_domains:分析域结构
  • afm_get_piezoresponse:获取振幅/相位数据
  • afm_list_scans:列出所有加载的扫描
  • afm_get_scan:获取扫描数据(DTMicrosoftcope API)
  • afm_go_to:将探头移动到位置
  • afm_get_position:获取当前探头位置

FerroSim工具

  • initialize_simulation:创建新的模拟
  • run_simulation:执行模拟
  • get_simulation_results:检索结果
  • visualize_simulation:生成绘图
  • list_simulations:列出所有模拟

理论实验匹配

  • match_simulation_to_afm:将模拟与AFM数据进行比较

工作流示例

完整的分析流程

from afm_digital_twin import AFMDigitalTwin
import numpy as np

# 1. Initialize and load data
afm = AFMDigitalTwin()
result = afm.load_data("AFM/temp/scan_0001.ibw")
scan_id = result['scan_id']

# 2. Analyze domains
domains = afm.analyze_domain_structure(scan_id)
print(f"Domain Analysis Results:")
print(f"  Up domain area: {domains['up_domain_area']*1e12:.3f} μm²")
print(f"  Down domain area: {domains['down_domain_area']*1e12:.3f} μm²")
print(f"  Wall density: {domains['domain_wall_density']:.3f}")

# 3. Get piezoresponse
pfm = afm.get_piezoresponse(scan_id)
amplitude = np.array(pfm['amplitude'])
phase = np.array(pfm['phase'])

# 4. Use DTMicroscope API
array_list, shape, dtype = afm.get_scan(scan_id, channels=['Amplitude', 'Phase'])
data = np.array(array_list, dtype=dtype).reshape(shape)

# 5. Emulate scanning
for line_idx, line_data in enumerate(afm.scanning_emulator(scan_id)):
    # Process line-by-line
    amplitude_line, phase_line = line_data
    # ... process data
    if line_idx >= 10:
        break

测试脚本

test_real_afm_workflow.py

全面的工作流程测试演示:

  • 数据加载
  • 领域分析
  • 压电响应提取
  • DTMicrosoftcope API兼容性
  • 扫描仿真器

运行:

source /Users/guanlinhe/miniconda3/bin/activate ferrosim_mcp
python test_real_afm_workflow.py

数据目录结构

AFM/
├── temp/
│   └── scan_0001.ibw          # Real experimental PFM data
├── 0_AFM_Basic_functionality_COLAB_Hackaton.ipynb
├── 1_AFM_Imperfect_Probe_COLAB_Hackaton.ipynb
└── ...

建筑

简化设计

该系统已经过简化,专注于真实数据:

  1. 无合成数据生成:删除所有合成/模拟数据生成
  2. 仅限真实数据:AFM Digital Twin仅加载和提供实验数据
  3. DTM显微镜兼容性:遵循DTMicrosoftcope API模式
  4. 清洁API:具有基本功能的简化工具集

核心组件

ferrosim_mcp_server_minimal.py  # MCP server with FerroSim + AFM tools
afm_digital_twin.py             # Real AFM data loader and analyzer

配置

Claude桌面集成

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "ferrosim-afm": {
      "command": "/Users/guanlinhe/miniconda3/envs/ferrosim_mcp/bin/python",
      "args": [
        "/Users/guanlinhe/github/hackMCP/ferrosim_mcp_server_minimal.py"
      ],
      "env": {
        "PYTHONPATH": "/Users/guanlinhe/github/hackMCP"
      }
    }
  }
}

需求

mcp>=0.1.0
numpy>=1.20.0
scipy>=1.7.0
igor2>=0.5.0
h5py>=3.0.0
ferrosim

许可证

仅供研究使用。有关详细信息,请参阅单个组件许可证。

引用

如果您使用此代码,请引用:

  • FerroSim:
  • DTM显微镜:

目录标签

目录标签

Jupyter NotebookClaude文档处理本地部署铁电模拟AFM数据分析数字孪生材料科学实验-理论匹配

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

13

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP