Skip to main content
Glama

Analytical MCP Server

README.md7.8 kB
# Analytical MCP Server A Model Context Protocol (MCP) server that provides statistical analysis, decision-making, and logical reasoning tools. ## Setup ### Prerequisites - Node.js >= 20.0.0 - EXA_API_KEY environment variable (for research features) ### Installation #### Option 1: Direct Installation ```bash npm install npm run build ``` #### Option 2: Docker ```bash # Build the Docker image docker build -t analytical-mcp . # Run with environment variables docker run -d \ --name analytical-mcp \ -e EXA_API_KEY=your_api_key_here \ -v $(pwd)/cache:/app/cache \ analytical-mcp # Or use docker-compose cp .env.example .env # Edit .env with your API key docker-compose up -d ``` ### Configuration #### Direct Installation Configuration 1. Copy `.env.example` to `.env` 2. Add your EXA_API_KEY to `.env` 3. Add to Claude Desktop configuration: ```json { "mcpServers": { "analytical": { "command": "node", "args": ["/path/to/analytical-mcp/build/index.js"], "env": { "EXA_API_KEY": "your-exa-api-key-here" } } } } ``` #### Docker Configuration 1. Copy `.env.example` to `.env` 2. Add your EXA_API_KEY to `.env` 3. Add to Claude Desktop configuration: ```json { "mcpServers": { "analytical": { "command": "docker", "args": [ "run", "--rm", "-i", "--env-file", ".env", "-v", "$(pwd)/cache:/app/cache", "analytical-mcp" ] } } } ``` ## Available Tools ### Statistical Analysis - **`analytical:analyze_dataset`** - Statistical analysis of datasets - **`analytical:advanced_regression_analysis`** - Linear, polynomial, and logistic regression - **`analytical:hypothesis_testing`** - Statistical hypothesis testing (t-tests, chi-square, ANOVA) - **`analytical:data_visualization_generator`** - Generate data visualization specifications ### Decision Analysis - **`analytical:decision_analysis`** - Multi-criteria decision analysis with weighted scoring ### Logical Reasoning - **`analytical:logical_argument_analyzer`** - Analyze argument structure and validity - **`analytical:logical_fallacy_detector`** - Detect logical fallacies in text - **`analytical:perspective_shifter`** - Generate alternative perspectives on problems ### Research Verification - **`analytical:verify_research`** - Cross-verify research claims from multiple sources ## Observability & Metrics The Analytical MCP Server includes built-in observability features for monitoring circuit breakers and cache performance. ### Metrics Endpoint When enabled, the server exposes metrics via HTTP on port 9090 (configurable): - **`http://localhost:9090/metrics`** - Prometheus-style metrics - **`http://localhost:9090/metrics?format=json`** - JSON format metrics - **`http://localhost:9090/health`** - Health check endpoint - **`http://localhost:9090/`** - Metrics server status page ### Available Metrics #### Circuit Breaker Metrics - `analytical_mcp_circuit_breaker_state` - Current state (0=CLOSED, 1=HALF_OPEN, 2=OPEN) - `analytical_mcp_circuit_breaker_total_calls_total` - Total calls through circuit breaker - `analytical_mcp_circuit_breaker_rejected_calls_total` - Rejected calls by circuit breaker - `analytical_mcp_circuit_breaker_failure_count` - Current failure count - `analytical_mcp_circuit_breaker_success_count` - Current success count #### Cache Metrics - `analytical_mcp_cache_hits_total` - Cache hits by namespace - `analytical_mcp_cache_misses_total` - Cache misses by namespace - `analytical_mcp_cache_puts_total` - Cache puts by namespace - `analytical_mcp_cache_evictions_total` - Cache evictions by namespace - `analytical_mcp_cache_size` - Current cache size by namespace #### System Metrics - `analytical_mcp_uptime_seconds` - Server uptime in seconds - `analytical_mcp_memory_usage_bytes` - Memory usage (RSS, heap, external) - `analytical_mcp_cpu_usage_microseconds` - CPU time usage (user, system) ### Configuration Enable metrics by setting environment variables: ```bash METRICS_ENABLED=true # Enable metrics server (default: true) 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) ``` ### Usage Examples ```bash # 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 ``` ## Usage Examples ### Dataset Analysis ```javascript { "data": [23, 45, 67, 12, 89, 34, 56, 78], "analysisType": "stats" } ``` ### Decision Analysis ```javascript { "options": ["Option A", "Option B", "Option C"], "criteria": ["Cost", "Quality", "Speed"], "weights": [0.4, 0.4, 0.2] } ``` ### Logical Analysis ```javascript { "argument": "All birds can fly. Penguins are birds. Therefore, penguins can fly.", "analysisDepth": "comprehensive" } ``` ## Development ### Testing ```bash # Run all tests ./tools/test-runner.sh # Run specific test suite ./tools/test-runner.sh integration # Available test suites: api-keys, server, integration, research, data-pipeline ``` ### Scripts - `npm run build` - Build TypeScript to JavaScript - `npm run watch` - Watch for changes and rebuild - `npm run test` - Run Jest tests - `npm run inspector` - Start MCP inspector for debugging ### Project Structure ``` analytical-mcp/ ├── src/ │ ├── tools/ # MCP tool implementations │ ├── utils/ # Utility functions │ └── index.ts # Main server entry point ├── docs/ # Documentation ├── tools/ # Development and testing scripts └── examples/ # Usage examples ``` ## Tool Categories ### Statistical Analysis - Descriptive statistics (mean, median, standard deviation, quartiles) - Correlation analysis - Regression analysis (linear, polynomial, logistic) - Hypothesis testing (t-tests, chi-square, ANOVA) ### Decision Support - Multi-criteria decision analysis - Weighted scoring systems - Trade-off analysis - Risk assessment ### Logical Reasoning - Argument structure analysis - Fallacy detection - Perspective generation - Critical thinking support ### Research Integration - Multi-source verification - Fact extraction - Consistency checking - Research validation ## Security & Privacy - Processing is done locally - Research features use Exa API (optional) - No data is stored permanently - Configurable caching with local-only storage ## License This project is licensed under the MIT License - see the LICENSE file for details. ## Contributing 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/feature-name`) 3. Commit your changes (`git commit -m 'Add feature description'`) 4. Push to the branch (`git push origin feature/feature-name`) 5. Open a Pull Request For detailed contribution guidelines, see [docs/DEVELOPMENT.md](./docs/DEVELOPMENT.md). ## Troubleshooting ### Common Issues **JSON parsing errors**: Ensure all logging goes to stderr, not stdout. The MCP protocol uses stdout for communication. **Tools not appearing**: Verify the server is properly configured in Claude Desktop and restart the application. **Research features disabled**: Check that EXA_API_KEY is set in your environment configuration. **Console output issues**: The project uses a Logger class for all output. Utility scripts in the tools/ directory integrate with the Logger system for consistent formatting. ### Debug Mode Start the server with the MCP inspector: ```bash npm run inspector ``` ## Links - [Model Context Protocol Documentation](https://modelcontextprotocol.io/) - [Exa API Documentation](https://docs.exa.ai/) - [Claude Desktop](https://claude.ai/desktop)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/quanticsoul4772/analytical-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server