chart-genius-mcp


Namechart-genius-mcp JSON
Version 1.0.2 PyPI version JSON
download
home_pageNone
SummaryThe Ultimate Chart Generation MCP Server - Built for Performance, Powered by AI
upload_time2025-08-08 19:59:38
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords ai charts dashboard data-analysis matplotlib mcp performance plotly visualization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # πŸ“Š ChartSmith MCP Server

**A high-performance chart generation MCP server** β€” built for speed, powered by AI, production-ready.

[![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-blue)](https://modelcontextprotocol.io/)
[![Performance](https://img.shields.io/badge/Performance-39k+%20RPS-green)](./benchmarks/)
[![Charts](https://img.shields.io/badge/Chart%20Types-50+-orange)](./docs/chart-types.md)
[![Engines](https://img.shields.io/badge/Engines-4-purple)](./docs/engines.md)

> πŸš€ **First-ever comprehensive chart generation MCP server** - Turn your SQL results into stunning visualizations with zero configuration and maximum performance.

## 🎯 **Why ChartGenius?**

### **πŸ’‘ Inspired by Industry Leaders**
- **Hex.tech's $70M success** proves chart generation is core business infrastructure
- **Built to solve real bottlenecks** like O(nΒ²) algorithms and blocking operations
- **MCP-native design** for seamless integration with any client

### **⚑ Performance First**
- Optimized O(n) data paths
- Concurrent rendering with guardrails (timeouts, semaphores, input caps)
- Intelligent caching (memory/Redis)

### **🧠 AI-Powered Intelligence**
- **Smart chart type detection** based on data patterns
- **Natural language to visualization** conversion
- **Automatic insight generation** for business intelligence
- **Accessibility optimization** for WCAG compliance

## πŸš€ **Quick Start**

### **Installation**
```bash
pip install chart-genius-mcp  # package name remains; server id: chartsmith
```

### **Docker Quick Start**
```bash
docker build -t chartsmith-mcp .
docker run --rm -it chartsmith-mcp                 # stdio
docker run --rm -it -p 8000:8000 -e RUN_HTTP=1 chartsmith-mcp  # http
```

Using docker-compose:
```bash
docker compose up -d mcp-stdio
docker compose up -d mcp-http
```

## πŸ”Œ Transports
- Stdio (MCP stdio)
- HTTP JSON (`POST /mcp`) and SSE (`POST /sse`)
- Health: `/health`, Readiness: `/ready`, Metrics: `/metrics`

## βš™οΈ Environment
- `CHART_MAX_CONCURRENCY` (default 8)
- `CHART_TOOL_TIMEOUT_MS` (default 60000)
- `CHART_TOOL_TIMEOUT_MS_IMAGES` (image timeouts)
- `CHART_TOOL_TIMEOUT_MS_HEAVY` (batch/dashboard)
- `CHART_MAX_ROWS` (input size guard)
- `DISABLED_TOOLS` (comma-separated)
- AI: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GEMINI_API_KEY`, `CHART_AI_PROVIDER`

## 🧰 Tools
- Per-chart: bar, line, scatter, histogram, area, box, violin, bubble, pie, heatmap, treemap, sunburst, sankey, choropleth
- Full-auto: `generate_chart_auto`
- Deprecated: `generate_chart`
- Cache: `manage_cache` (stats/clear/optimize)
- Perf: `get_performance_stats`
- Prompts/Resources: `list_prompts`/`get_prompt`, `list_resource_templates`/`read_resource`

## πŸ“¦ Resources
- Datasets: `dataset:sample/sales_small`, `.../scatter_small`, `.../heatmap_pivot`, `.../choropleth_iso3`
- Themes: `theme:modern`, `theme:corporate`, `theme:dark`, `theme:accessible`

## πŸ§ͺ Tests & Benchmarks
- Pytest suite: tools, engines, formats, AI (mock/live), cache, guardrails, MCP stdio/HTTP
- Benchmark harness: p50/p90 latency script and smoke tests

## πŸ“ˆ Prometheus Metrics
- Endpoint: `/metrics` (Prometheus exposition format)
- Metrics include: request counts, tool call totals, tool errors, and duration histograms.
- Example scrape config:
```yaml
scrape_configs:
  - job_name: chartsmith
    static_configs:
      - targets: ['localhost:8000']
```

## πŸ” Security & Limits
- Input size caps, timeouts, concurrency limits
- Tool filtering via env

## 🧭 Smithery
- Stdio: configure Smithery to invoke `python -m chart_genius_mcp` with server id `chartsmith`
- HTTP: point Smithery at the container’s `/mcp` endpoint (port 8000)

## πŸ“¦ Docker Images (CI)
- GitHub Action builds and publishes multi-arch images to GHCR on tags `v*`.
- Image: `ghcr.io/<owner>/<repo>:<tag>` and `:latest`.
- Example pull:
```bash
docker pull ghcr.io/<owner>/<repo>:latest
``` 
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "chart-genius-mcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "ai, charts, dashboard, data-analysis, matplotlib, mcp, performance, plotly, visualization",
    "author": null,
    "author_email": "ChartGenius Team <team@chart-genius.com>",
    "download_url": "https://files.pythonhosted.org/packages/81/cf/13d4599e46806baf34d78c82b6ca394720843b00e77edf1649fa861eef2d/chart_genius_mcp-1.0.2.tar.gz",
    "platform": null,
    "description": "# \ud83d\udcca ChartSmith MCP Server\n\n**A high-performance chart generation MCP server** \u2014 built for speed, powered by AI, production-ready.\n\n[![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-blue)](https://modelcontextprotocol.io/)\n[![Performance](https://img.shields.io/badge/Performance-39k+%20RPS-green)](./benchmarks/)\n[![Charts](https://img.shields.io/badge/Chart%20Types-50+-orange)](./docs/chart-types.md)\n[![Engines](https://img.shields.io/badge/Engines-4-purple)](./docs/engines.md)\n\n> \ud83d\ude80 **First-ever comprehensive chart generation MCP server** - Turn your SQL results into stunning visualizations with zero configuration and maximum performance.\n\n## \ud83c\udfaf **Why ChartGenius?**\n\n### **\ud83d\udca1 Inspired by Industry Leaders**\n- **Hex.tech's $70M success** proves chart generation is core business infrastructure\n- **Built to solve real bottlenecks** like O(n\u00b2) algorithms and blocking operations\n- **MCP-native design** for seamless integration with any client\n\n### **\u26a1 Performance First**\n- Optimized O(n) data paths\n- Concurrent rendering with guardrails (timeouts, semaphores, input caps)\n- Intelligent caching (memory/Redis)\n\n### **\ud83e\udde0 AI-Powered Intelligence**\n- **Smart chart type detection** based on data patterns\n- **Natural language to visualization** conversion\n- **Automatic insight generation** for business intelligence\n- **Accessibility optimization** for WCAG compliance\n\n## \ud83d\ude80 **Quick Start**\n\n### **Installation**\n```bash\npip install chart-genius-mcp  # package name remains; server id: chartsmith\n```\n\n### **Docker Quick Start**\n```bash\ndocker build -t chartsmith-mcp .\ndocker run --rm -it chartsmith-mcp                 # stdio\ndocker run --rm -it -p 8000:8000 -e RUN_HTTP=1 chartsmith-mcp  # http\n```\n\nUsing docker-compose:\n```bash\ndocker compose up -d mcp-stdio\ndocker compose up -d mcp-http\n```\n\n## \ud83d\udd0c Transports\n- Stdio (MCP stdio)\n- HTTP JSON (`POST /mcp`) and SSE (`POST /sse`)\n- Health: `/health`, Readiness: `/ready`, Metrics: `/metrics`\n\n## \u2699\ufe0f Environment\n- `CHART_MAX_CONCURRENCY` (default 8)\n- `CHART_TOOL_TIMEOUT_MS` (default 60000)\n- `CHART_TOOL_TIMEOUT_MS_IMAGES` (image timeouts)\n- `CHART_TOOL_TIMEOUT_MS_HEAVY` (batch/dashboard)\n- `CHART_MAX_ROWS` (input size guard)\n- `DISABLED_TOOLS` (comma-separated)\n- AI: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GEMINI_API_KEY`, `CHART_AI_PROVIDER`\n\n## \ud83e\uddf0 Tools\n- Per-chart: bar, line, scatter, histogram, area, box, violin, bubble, pie, heatmap, treemap, sunburst, sankey, choropleth\n- Full-auto: `generate_chart_auto`\n- Deprecated: `generate_chart`\n- Cache: `manage_cache` (stats/clear/optimize)\n- Perf: `get_performance_stats`\n- Prompts/Resources: `list_prompts`/`get_prompt`, `list_resource_templates`/`read_resource`\n\n## \ud83d\udce6 Resources\n- Datasets: `dataset:sample/sales_small`, `.../scatter_small`, `.../heatmap_pivot`, `.../choropleth_iso3`\n- Themes: `theme:modern`, `theme:corporate`, `theme:dark`, `theme:accessible`\n\n## \ud83e\uddea Tests & Benchmarks\n- Pytest suite: tools, engines, formats, AI (mock/live), cache, guardrails, MCP stdio/HTTP\n- Benchmark harness: p50/p90 latency script and smoke tests\n\n## \ud83d\udcc8 Prometheus Metrics\n- Endpoint: `/metrics` (Prometheus exposition format)\n- Metrics include: request counts, tool call totals, tool errors, and duration histograms.\n- Example scrape config:\n```yaml\nscrape_configs:\n  - job_name: chartsmith\n    static_configs:\n      - targets: ['localhost:8000']\n```\n\n## \ud83d\udd10 Security & Limits\n- Input size caps, timeouts, concurrency limits\n- Tool filtering via env\n\n## \ud83e\udded Smithery\n- Stdio: configure Smithery to invoke `python -m chart_genius_mcp` with server id `chartsmith`\n- HTTP: point Smithery at the container\u2019s `/mcp` endpoint (port 8000)\n\n## \ud83d\udce6 Docker Images (CI)\n- GitHub Action builds and publishes multi-arch images to GHCR on tags `v*`.\n- Image: `ghcr.io/<owner>/<repo>:<tag>` and `:latest`.\n- Example pull:\n```bash\ndocker pull ghcr.io/<owner>/<repo>:latest\n``` ",
    "bugtrack_url": null,
    "license": null,
    "summary": "The Ultimate Chart Generation MCP Server - Built for Performance, Powered by AI",
    "version": "1.0.2",
    "project_urls": {
        "Bug Reports": "https://github.com/your-org/chart-genius-mcp/issues",
        "Documentation": "https://chart-genius.readthedocs.io",
        "Feature Requests": "https://github.com/your-org/chart-genius-mcp/discussions",
        "Homepage": "https://github.com/your-org/chart-genius-mcp",
        "Repository": "https://github.com/your-org/chart-genius-mcp"
    },
    "split_keywords": [
        "ai",
        " charts",
        " dashboard",
        " data-analysis",
        " matplotlib",
        " mcp",
        " performance",
        " plotly",
        " visualization"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b36ce9200b4e506961e5a073a6ef5f50a0732d3a75911cd0e9001d52ca4fe70d",
                "md5": "f28ed96546db2964eff582162f714265",
                "sha256": "c44ccaecdbb8d5f392a6ef69329069255bc881e6e546f9468f531e7bcee41bb3"
            },
            "downloads": -1,
            "filename": "chart_genius_mcp-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f28ed96546db2964eff582162f714265",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 70651,
            "upload_time": "2025-08-08T19:59:36",
            "upload_time_iso_8601": "2025-08-08T19:59:36.982825Z",
            "url": "https://files.pythonhosted.org/packages/b3/6c/e9200b4e506961e5a073a6ef5f50a0732d3a75911cd0e9001d52ca4fe70d/chart_genius_mcp-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "81cf13d4599e46806baf34d78c82b6ca394720843b00e77edf1649fa861eef2d",
                "md5": "b36b2c82a9820b3f86ef0f7a64150972",
                "sha256": "cf8728f047280322e8495c7ea6d9e82f550bb1a7e6d7f400c4e8714c620b5a33"
            },
            "downloads": -1,
            "filename": "chart_genius_mcp-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "b36b2c82a9820b3f86ef0f7a64150972",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 82480,
            "upload_time": "2025-08-08T19:59:38",
            "upload_time_iso_8601": "2025-08-08T19:59:38.073177Z",
            "url": "https://files.pythonhosted.org/packages/81/cf/13d4599e46806baf34d78c82b6ca394720843b00e77edf1649fa861eef2d/chart_genius_mcp-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-08 19:59:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "your-org",
    "github_project": "chart-genius-mcp",
    "github_not_found": true,
    "lcname": "chart-genius-mcp"
}
        
Elapsed time: 1.11341s