An MCP server exposing data science tools (plotting, stats, data exploration) to any LLM client.
Project description
ds-mcp-server
ds-mcp-server packages a FastMCP server with data science, plotting, statistics, system, and web tools, plus interactive CLI clients for OpenAI-compatible providers and Anthropic Claude.
Installation
Future PyPI install:
pip install ds-mcp-server
Local development install:
pip install -e .
Optional extras:
pip install -e ".[anthropic]"
pip install -e ".[playwright]"
pip install -e ".[all]"
Quick start
- Copy
.env.exampleto.env. - Fill in your provider settings.
- Install the package.
- Start either the MCP server or the interactive client.
OpenAI
export PROVIDER=openai
export API_KEY=sk-...
export MODEL=gpt-4o
ds-mcp-client
Claude / Anthropic
export PROVIDER=anthropic
export ANTHROPIC_API_KEY=sk-ant-...
export MODEL=claude-opus-4-5
ds-mcp-client
Gemini (OpenAI-compatible endpoint)
export PROVIDER=gemini
export API_KEY=AIza...
export MODEL=gemini-2.0-flash
ds-mcp-client
Ollama
export PROVIDER=ollama
export API_BASE_URL=http://localhost:11434/v1
export MODEL=llama3
ds-mcp-client
GPUStack / LM Studio / other OpenAI-compatible servers
export PROVIDER=openai-compat
export API_BASE_URL=https://your-endpoint.example/v1
export API_KEY=your-key
export MODEL=your-model
ds-mcp-client
Running the MCP server
ds-mcp-server
Claude Desktop MCP config
Add the server to your Claude Desktop MCP configuration:
{
"mcpServers": {
"ds-mcp-server": {
"command": "ds-mcp-server",
"args": []
}
}
}
Environment variables
| Variable | Required | Description |
|---|---|---|
PROVIDER |
No | One of openai, anthropic, gemini, ollama, openai-compat. |
API_KEY |
Usually | Generic API key used by OpenAI-compatible providers and as a fallback for Anthropic. |
ANTHROPIC_API_KEY |
Anthropic only | Preferred Anthropic key. |
API_BASE_URL |
Sometimes | Required for openai-compat; optional override for Ollama, Gemini, or self-hosted endpoints. |
MODEL |
No | Model override. Defaults are provider-specific. |
Available tools
Interactive plots
plot_interactive_histogramplot_interactive_scatterplotplot_interactive_boxplotplot_interactive_lineplotplot_interactive_barchartplot_interactive_scatter_matrixplot_interactive_correlation_heatmapgenerate_custom_plotlyget_all_columns_summaryget_column_summary
Static plots
plot_static_histogramplot_static_scatterplotplot_static_boxplotplot_static_lineplotplot_static_barchartplot_static_pairplotplot_static_correlation_heatmapplot_static_wordcloudgenerate_custom_static_plot
Statistical analysis
run_correlationrun_group_comparisonrun_linear_regressionrank_target_correlations
System tools
run_shell_commandread_filewrite_filepatch_filelist_directoryfind_in_filesrun_background_processstop_background_processlist_background_processeshttp_request
Web tools
search_webfetch_webpagescreenshot_webpage
Requirements
- Python 3.11+
mcppandas,numpyplotly,matplotlib,seaborn,wordcloudpingouin,statsmodelsbeautifulsoup4,ddgsopenaianthropic(optional)playwright(optional, for screenshots)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ds_mcp_server-0.1.1.tar.gz.
File metadata
- Download URL: ds_mcp_server-0.1.1.tar.gz
- Upload date:
- Size: 36.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df862ce6ba1aa29e9f21a6bb48dd970e49dd1c762be2a796bf7b9633e4a38e8d
|
|
| MD5 |
c4b661b1b34fe0a5195b2ae9551d5f41
|
|
| BLAKE2b-256 |
8ca5f7d03561d78b1a0d855c44545af8c34d3c759d214c8e274b4fd31b2bc739
|
File details
Details for the file ds_mcp_server-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ds_mcp_server-0.1.1-py3-none-any.whl
- Upload date:
- Size: 42.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daa800d6ee0e1e7f42b5068fbc6fffb78fb775a28441fed88af16acf3782a941
|
|
| MD5 |
5f8e7d5bc7d768f9a85610961c262fbc
|
|
| BLAKE2b-256 |
21d6f1314f7610b02896345996fdcc5d9355384caf4589d0a34ee8af7438112f
|