分析工具服务器

Analytical MCP Server 是一个提供12种分析工具的服务器,包括统计分析、机器学习评估、决策分析和逻辑推理等功能,适用于数据分析和研究验证场景。

  • by quanticsoul4772
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 quanticsoul4772/analytical-mcp

使用说明

分析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

配置

直接安装配置

  1. 复制 .env.example 到 .env
  2. 将您的EXA_API_KEY添加到 .env
  3. 添加到Claude桌面配置:
{
  "mcpServers": {
    "analytical": {
      "command": "node",
      "args": ["/path/to/analytical-mcp/build/index.js"],
      "env": {
        "EXA_API_KEY": "your-exa-api-key-here"
      }
    }
  }
}

Docker配置

  1. 复制 .env.example 到 .env
  2. 将您的EXA_API_KEY添加到 .env
  3. 添加到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 --多准则加权决策排名。 需要a scores 矩阵 (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构建为JavaScript
  • npm 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

链接