使用说明
分析MCP服务器
模型上下文协议服务器为Claude提供了12种分析工具:描述性统计、回归(线性/多项式/逻辑/多元)、假设检验、数据预处理、数据可视化规范、多标准决策分析、机器学习模型评估、逻辑论证/谬误分析以及Exa支持的研究验证。溢出stdio;分析核心不需要API密钥(研究功能需要 EXA_API_KEY).
设置
先决条件
- Node.js>=20.0.0
- EXA_API_KEY环境变量(对于
verify_research和perspective_shifter,两者都在每次调用时调用Exa搜索API)
安装
选项1:直接安装
npm install
npm run build
选项2:Docker
塑造形象。服务器通过MCP协议进行通信 标准 --它已启动 (及其stdin/stdout管道)由MCP客户端运行,而不是作为分离的守护进程运行;看看 Docker入口下 配置 Claude Desktop如何调用它。
docker build -t analytical-mcp .
# Smoke-test the image interactively (Ctrl-C to exit):
docker run --rm -i -e EXA_API_KEY=your_api_key_here analytical-mcp
配置
直接安装配置
- 复制
.env.example到.env - 将您的EXA_API_KEY添加到
.env - 添加到Claude桌面配置:
{
"mcpServers": {
"analytical": {
"command": "node",
"args": ["/path/to/analytical-mcp/build/index.js"],
"env": {
"EXA_API_KEY": "your-exa-api-key-here"
}
}
}
}
Docker配置
- 复制
.env.example到.env - 将您的EXA_API_KEY添加到
.env - 添加到Claude桌面配置:
{
"mcpServers": {
"analytical": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--env-file", ".env",
"-v", "$(pwd)/cache:/app/cache",
"analytical-mcp"
]
}
}
}
可用工具
服务器在启动时无条件注册12个工具(注册不依赖于 EXA_API_KEY;如果密钥丢失,下面两个研究支持的工具将在调用时出错)。看 src/tools/index.ts 权威名单。
统计分析
analyze_dataset--数值或记录数组数据集的描述性统计(摘要/统计)。advanced_statistical_analysis--描述性统计加上表格数据(对象数组)的交叉变量Pearson相关性。使用analyze_dataset对于单个数字序列。advanced_regression_analysis--线性、多项式、逻辑和多元回归,由具有真实OLS/logistic数学(未模拟)的专用提供者模块支持。hypothesis_testing--真实统计假设检验:Welch独立t检验、配对t检验、相关性、卡方检验和方差分析,使用精确的p值计算(见src/utils/statistics.ts).advanced_data_preprocessing--对数值数据进行归一化、标准化、缺失值处理和IQR异常检测。data_visualization_generator--生成图表规格(散点图、折线图、条形图、直方图、方框图、热图、饼图、小提琴图、相关性)。
机器学习
ml_model_evaluation--评估模型预测:分类指标(准确性、精确度、召回率、F1)或回归指标(MSE、MAE、RMSE、R²)。
决策分析
decision_analysis--多准则加权决策排名。 需要ascores矩阵 (options.length行×criteria.length列,每个值为0-10),此外options和criteria;weights是可选的,默认为等权重。这是一个突破性的要求,与仅描述的旧文档相比options/criteria/weights.
逻辑推理
logical_argument_analyzer--分析论证结构、谬误、有效性和强度(通过专门的提供者类)。logical_fallacy_detector--通过置信度评分检测和解释文本中的逻辑谬误。perspective_shifter--对问题产生不同的观点(利益相关者、纪律、逆向、乐观、悲观)。需要EXA_API_KEY:它对每个视角域进行Exa搜索,以确定每个视角。
研究验证
verify_research--交叉验证来自多个来源的研究声明。需要EXA_API_KEY.退货confidence.score(实际计算的一致性/置信度值,0-1)和confidence.verified(布尔值:是否confidence.score遇见minConsistencyThreshold)--阈值是通过/失败的截止值,而不是应用于报告分数的下限。
可观察性和指标
分析MCP服务器包括一个内置的Prometheus风格的度量HTTP服务器(src/utils/metrics_server.ts)用于监控缓存性能和系统健康状况。
指标端点
启用后,服务器通过端口9090上的HTTP公开指标(可配置):
http://localhost:9090/metrics-普罗米修斯风格指标http://localhost:9090/metrics?format=json-JSON格式度量http://localhost:9090/health-健康检查端点http://localhost:9090/-度量服务器状态页面
可用指标
缓存指标
analytical_mcp_cache_hits_total-按命名空间缓存命中率analytical_mcp_cache_misses_total-按命名空间划分的缓存缺失analytical_mcp_cache_puts_total-按命名空间放置缓存analytical_mcp_cache_evictions_total-按命名空间驱逐缓存analytical_mcp_cache_size-按命名空间列出的当前缓存大小
系统指标
analytical_mcp_uptime_seconds-服务器正常运行时间(秒)analytical_mcp_memory_usage_bytes-内存使用情况(RSS、堆、外部)analytical_mcp_cpu_usage_microseconds-CPU时间使用率(用户、系统)
配置
通过设置环境变量启用指标:
METRICS_ENABLED=true # Enable metrics server (default: false; unauthenticated, opt-in)
METRICS_PORT=9090 # Metrics server port (default: 9090)
METRICS_HOST=127.0.0.1 # Metrics server host (default: 127.0.0.1, use 0.0.0.0 to bind to all interfaces)
使用示例
# Get Prometheus metrics
curl http://localhost:9090/metrics
# Get JSON metrics
curl http://localhost:9090/metrics?format=json
# Health check
curl http://localhost:9090/health
审计日志
每次工具调用都会向以下对象发出一条结构化审计记录 标准错误 (永远不要stdout——那是MCP
协议通道),独立于 LOG_LEVEL:
[2026-07-05T22:56:12.629Z] AUDIT: {"event":"tool_call","tool":"verify_research","ok":true,"durationMs":1352,"argBytes":120,"argHash":"31b769fe1f66","exaCalls":2}
每条记录都包含工具名称、结果、持续时间、 字节大小和SHA-256指纹
参数(从不包含原始参数值,因此不会泄露任何内容),以及 exaCalls --the
发出呼叫的出站Exa请求数。这为操作员提供了法医线索(超大
或重复输入、意外外部扇出)而不记录敏感内容。它有门
通过一个标志,默认打开,独立于 LOG_LEVEL:
ENABLE_AUDIT_LOG=true # per-call audit records to stderr (default: true)
使用示例
数据集分析
{
"data": [23, 45, 67, 12, 89, 34, 56, 78],
"analysisType": "stats"
}
决策分析
{
"options": ["Option A", "Option B", "Option C"],
"criteria": ["Cost", "Quality", "Speed"],
"scores": [
[7, 6, 8],
[5, 9, 6],
[9, 4, 7]
],
"weights": [0.4, 0.4, 0.2]
}
假设检验
{
"testType": "t_test_independent",
"data": [[23, 45, 67, 12, 89], [34, 56, 78, 90, 21]],
"alpha": 0.05
}
逻辑分析
{
"argument": "All birds can fly. Penguins are birds. Therefore, penguins can fly.",
"analysisType": "comprehensive"
}
发展
测试
# Run the offline unit suite (no API key needed) — same as test:unit
npm test
# Unit tests only (offline, no API key needed)
npm run test:unit
# Integration tests (non-blocking heads-up without EXA_API_KEY; live-Exa cases self-skip)
npm run test:integration
# Integration tests excluding the live-API suite
npm run test:integration:no-api
# Or via the thin wrapper script
./tools/test-runner.sh unit
./tools/test-runner.sh integration
./tools/test-runner.sh integration:no-api
脚本
npm run build-将TypeScript构建为JavaScriptnpm run watch-观察变化并重建npm run typecheck-类型检查src/(不包括测试文件)npm run typecheck:src-类型检查src/加上集成测试npm run lint/npm run lint:fix-埃斯林特npm run format/npm run format:check-更漂亮npm test/npm run test:unit/npm run test:integration-杰斯特(见 测试)npm run smoke-通过stdio JSON-RPC构建、启动真实服务器并驱动initialize/tools list/tools调用npm run cache:stats/cache:clear/cache:preload-管理磁盘上的研究缓存npm run inspector-启动MCP检查器进行调试
项目结构
analytical-mcp/
├── src/
│ ├── tools/ # MCP tool implementations (12 registered tools + supporting providers)
│ ├── utils/ # Utility functions, regression/NLP providers, caching, resilience, metrics
│ ├── integration/ # Integration tests (live-Exa cases self-skip without EXA_API_KEY)
│ ├── __tests__/ # Server-level protocol test (InMemoryTransport)
│ └── index.ts # Main server entry point
├── docs/ # Documentation
├── tools/ # Development and testing scripts
├── scripts/ # Build/smoke-test scripts
└── examples/ # Usage examples
架构说明
- 提供商架构:复杂的工具(回归、NLP、可视化、论证分析)被分解为单个责任提供者模块
src/utils/和src/tools/(例如。linear_regression_provider.ts,logistic_regression_provider.ts,polynomial_regression_provider.ts,multivariate_regression_provider.ts,regression_metrics_provider.ts).工具文件的编排和格式化;提供者掌握着逻辑。 - 韧性:
src/utils/rate_limit_manager.ts处理Exa速率限制(密钥旋转、每个端点限制);src/utils/api_helpers.ts提供显式重试shouldRetry谓语。 - 缓存:
src/utils/cache_manager.ts,src/utils/enhanced_cache.ts,以及src/utils/research_cache.ts提供分层、命名空间感知的缓存(启用ENABLE_RESEARCH_CACHE=true). - 统计:
src/utils/statistics.ts根据精确p值计算的第一性原理实现对数伽玛、不完全贝塔/伽玛和t/F/卡方CDF,没有统计近似或模拟结果。
工具类别
统计分析
- 描述性统计:平均值、中位数、标准差、四分位数
- 回归分析:线性、多项式、逻辑、多元
- 假设检验:Welch t检验、配对t检验、相关性、卡方检验、方差分析
决策支持
- 基于显式期权×准则得分矩阵的多准则加权决策排序
逻辑推理
- 论证结构、有效性和强度分析
- 通过置信度评分进行谬误检测
- 视角生成
研究整合
- 通过Exa进行多源验证
- 事实提取
- 冲突/一致性检查
- 信心评分
安全和隐私
- 所有分析处理都在本地进行
- 研究功能使用Exa API(可选,需要
EXA_API_KEY) - 除了可选的本地磁盘缓存外,没有永久数据存储
- 通过环境变量管理的API密钥
许可证
MIT许可证。有关详细信息,请参阅LICENSE文件。
贡献
看 贡献.md 关于贡献工作流程和惯例,以及 docs/DEVELOPMENT.md 供全面开发参考。全部 预计参与者将遵循 行为准则.
简而言之:分支机构 main,确保 npm run typecheck, npm run lint, npm test,以及
npm run smoke 全部通过,添加新行为的测试,并使用模板打开PR。
要报告安全漏洞,请执行以下操作 安全.md --不要打开a 公共问题。
故障排除
常见问题
JSON解析错误:所有日志记录必须转到stderr,而不是stdout。MCP协议使用stdout进行通信。使用 Logger 类,不是 console.log.
工具未出现:验证Claude Desktop设置中的服务器配置,然后重新启动Claude Desktop应用程序。
研究功能在调用时失败:设置 EXA_API_KEY 在您的环境中或 .env 文件-- verify_research 和 perspective_shifter 即使所有12个工具都已注册,无论是否设置,两者都需要它。
服务器未启动:检查Node.js版本是否为20或更高,所有依赖项是否已安装 npm install.
看 docs/TROUBLESHOOTING.md 获取详细的故障排除指南。
调试模式
使用MCP检查器启动服务器:
npm run inspector