用于HAQQ钱包的MCP Reactotron服务器
用于AI数据分析的MCP服务器,集成自Reactotron
📋 描述
这个MCP(模型上下文协议)服务器允许AI助手(如Cursor AI)实时分析来自Reactotron的数据:
- 🔍(放大镜图标,通常表示搜索、查看细节或调查的意思) Redux 状态 - 完整的状态变更历史
- 🌐 表示“地球/网络”的符号。 网络请求 - 所有带有指标的网络请求
- 💾 磁盘驱动器或存储设备的图标 AsyncStorage(异步存储) - 本地存储的数据
- 📝 自定义日志 - 应用程序的用户日志
- ⚡(闪电符号,常用于表示快速、能量、活力等含义,在此处可作为表情符号使用,无直接文字对应翻译) 性能指标 - 性能指标
- 🚀 表示火箭或快速上升、前进的意象,常用来比喻快速的发展、进步或行动。 实时流媒体 - 通过HTTP/WebSocket获取实时指标(v2.0+)
🚀 安装
选项1:通过npm安装(推荐)
# Глобальная установка
npm install -g @haqq/mcp-reactotron
# Или локальная установка в проект
npm install --save-dev @haqq/mcp-reactotron方案2:从源代码安装
# Клонировать репозиторий
git clone https://github.com/Js-Nanodegree/MCP-Reactotron-logs.git
cd MCP-Reactotron-logs
# Установить зависимости и собрать
npm install
npm run build2. 配置Cursor MCP设置
添加到 ~/.cursor/mcp.json:
在全局安装时:
{
"mcpServers": {
"reactotron": {
"command": "npx",
"args": ["@haqq/mcp-reactotron"],
"env": {}
}
}
}在本地安装时:
{
"mcpServers": {
"reactotron": {
"command": "npx",
"args": [
"--yes",
"@haqq/mcp-reactotron"
],
"env": {}
}
}
}在从源代码安装时:
{
"mcpServers": {
"reactotron": {
"command": "node",
"args": [
"/absolute/path/to/mcp-reactotron/dist/index.js"
],
"env": {}
}
}
}3. 在React Native项目中安装依赖
# В корне проекта
yarn add react-native-fs4. 以开发模式启动应用程序
yarn ios:dev
# или
yarn android:dev📊 可用的MCP资源
基于文件的资源(v1.0)
| URI | 描述 |
|---|---|
reactotron://redux/latest | Redux的最新状态 |
reactotron://redux/history | Redux 的变更历史 |
reactotron://network/latest | 最近的20个网络请求 |
reactotron://network/errors | 网络错误(4xx,5xx) |
reactotron://storage/all | AsyncStorage 数据 |
reactotron://logs/custom | 用户日志 |
reactotron://performance/metrics | 性能指标 |
实时资源(v2.0+)🆕
| URI | 描述 |
|---|---|
reactotron://realtime/metrics | 来自事件队列的实时指标 |
reactotron://realtime/stats | 事件队列统计信息(大小,时间范围) |
🛠️ 可用的工具
基于文件的工具(v1.0)
1. analyze_redux_state
分析一段时间内Redux状态的变化。
{
from: "2025-10-13T10:00:00Z", // опционально
to: "2025-10-13T12:00:00Z", // опционально
slice: "user" // фильтр по slice
}2. analyze_network_calls
带过滤器的网络请求分析。
{
method: "POST", // опционально
statusCode: 500, // опционально
minDuration: 1000 // минимальная длительность в мс
}3. search_logs
搜索所有日志。
{
query: "error", // обязательно
logType: "network", // опционально: redux, network, custom, performance
limit: 50 // по умолчанию 50
}4. clear_logs
清理日志。
{
logType: "all" // all, redux, network, storage, custom, performance
}实时工具(v2.0+)🆕
5. get_realtime_metrics
获取实时指标并进行过滤。
{
since: 1697213400000, // Unix timestamp (опционально, default: 0)
types: ["cpu", "memory"], // Фильтр по типам (опционально)
limit: 100 // Лимит результатов (опционально, default: 1000)
}度量类型: cpu, memory, fps, network, render, redux
6. get_buffer_stats
获取事件队列的统计数据。
{} // Без параметров返回:
{
"totalSize": 1523,
"validSize": 1498,
"oldestTimestamp": 1697210000000,
"newestTimestamp": 1697213400000,
"timeRange": 3400000
}💡 在Cursor AI中的使用示例
Redux状态分析
Cursor AI: "Покажи последнее состояние Redux"
→ Читает: reactotron://redux/latest网络错误排查
Cursor AI: "Найди все failed network requests"
→ Использует: analyze_network_calls с statusCode >= 400性能分析
Cursor AI: "Покажи медленные запросы (>2 секунд)"
→ Использует: analyze_network_calls с minDuration: 2000日志搜索
Cursor AI: "Найди все упоминания 'wallet' в логах"
→ Использует: search_logs с query: "wallet"🎯 在Reactotron中自定义命令
在Reactotron应用中,有额外的命令可用:
将状态导出到MCP
将Redux的当前状态导出到MCP日志中。
将 AsyncStorage 导出到 MCP
将所有AsyncStorage数据导出到MCP日志中。
清除MCP日志
清除所有MCP日志。
获取MCP日志路径
显示日志目录的路径。
📁 日志结构
日志保存在:
/var/mobile/Containers/Data/Application/[APP_ID]/Documents/reactotron-logs/文件:
redux-state.json- Redux 更改network-requests.json- 网络请求async-storage.json- AsyncStorage 数据custom-logs.json- 用户日志performance.json- 性能指标
🔄 自动记录
系统自动记录:
✅ Redux Actions(Redux 动作) - 每次调度时 ✅ 网络请求 - 所有HTTP请求均通过Reactotron进行 ✅(勾选标记,表示正确、确认或完成) AsyncStorage(异步存储) - 在导出时或根据命令 ✅(对号,表示正确、确认或同意) 自定义日志 - 经过 reactotronLogger.logCustom()
🧪 测试
1. 检查MCP服务器的工作状态
cd mcp-reactotron-server
npm run dev2. 检查应用程序中的日志
import { reactotronLogger } from './src/utils/reactotron-logger';
// Кастомный лог
reactotronLogger.logCustom('Test message', 'info', { foo: 'bar' });
// Метрика производительности
reactotronLogger.logPerformance({
name: 'API_CALL',
duration: 250,
metadata: { endpoint: '/api/user' }
});3. 在Cursor AI中检查
"Покажи мне последние логи из Reactotron"🐛 故障排除
MCP服务器无法连接
- 检查路径到
~/.cursor/mcp.json - 确保服务器已搭建好:
npm run build - 重启 Cursor
日志未出现
- 检查应用程序是否在开发(DEV)模式下运行(
__DEV__ === true) - 检查一下Reactotron - 应该已经连接上了
- 在Reactotron中执行“Export State to MCP”命令
日志文件未创建
- 检查写入权限
- 确保
react-native-fs已安装 - 检查路径:
reactotronLogger.getLogsDirectory()
📝 扩展
添加新的日志类型
// В reactotron-logger.ts
async logCustomType(data: any): Promise {
const entry: LogEntry = {
timestamp: new Date().toISOString(),
type: 'custom_type',
data,
};
await this.appendToLog(this.CUSTOM_TYPE_LOG, entry);
}添加新的MCP资源
// В mcp-reactotron-server/src/index.ts
{
uri: 'reactotron://custom/data',
name: 'Custom Data',
description: 'Мои кастомные данные',
mimeType: 'application/json',
}🔐 安全性
⚠️ 重要MCP服务器仅在DEV模式下运行!
- 日志仅在
__DEV__ === true - 数据存储在设备本地
- 不要在生产构建中包含它
📚 额外资源
🤝 支持
如有问题,请联系HAQQ Wallet团队。
______________________________________________________________________
版本: 1.0.0\ 最后更新: 2025年10月13日
