holoviz-mcp 0.0.1a0__py3-none-any.whl → 0.0.1a2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of holoviz-mcp might be problematic. Click here for more details.

Files changed (37) hide show
  1. holoviz_mcp/__init__.py +18 -0
  2. holoviz_mcp/apps/__init__.py +1 -0
  3. holoviz_mcp/apps/configuration_viewer.py +116 -0
  4. holoviz_mcp/apps/search.py +314 -0
  5. holoviz_mcp/config/__init__.py +31 -0
  6. holoviz_mcp/config/config.yaml +167 -0
  7. holoviz_mcp/config/loader.py +308 -0
  8. holoviz_mcp/config/models.py +216 -0
  9. holoviz_mcp/config/resources/best-practices/hvplot.md +62 -0
  10. holoviz_mcp/config/resources/best-practices/panel-material-ui.md +318 -0
  11. holoviz_mcp/config/resources/best-practices/panel.md +294 -0
  12. holoviz_mcp/config/schema.json +203 -0
  13. holoviz_mcp/docs_mcp/__init__.py +1 -0
  14. holoviz_mcp/docs_mcp/data.py +963 -0
  15. holoviz_mcp/docs_mcp/models.py +21 -0
  16. holoviz_mcp/docs_mcp/pages_design.md +407 -0
  17. holoviz_mcp/docs_mcp/server.py +220 -0
  18. holoviz_mcp/hvplot_mcp/__init__.py +1 -0
  19. holoviz_mcp/hvplot_mcp/server.py +152 -0
  20. holoviz_mcp/panel_mcp/__init__.py +17 -0
  21. holoviz_mcp/panel_mcp/data.py +316 -0
  22. holoviz_mcp/panel_mcp/models.py +124 -0
  23. holoviz_mcp/panel_mcp/server.py +650 -0
  24. holoviz_mcp/py.typed +0 -0
  25. holoviz_mcp/serve.py +34 -0
  26. holoviz_mcp/server.py +77 -0
  27. holoviz_mcp/shared/__init__.py +1 -0
  28. holoviz_mcp/shared/extract_tools.py +74 -0
  29. holoviz_mcp-0.0.1a2.dist-info/METADATA +641 -0
  30. holoviz_mcp-0.0.1a2.dist-info/RECORD +33 -0
  31. {holoviz_mcp-0.0.1a0.dist-info → holoviz_mcp-0.0.1a2.dist-info}/WHEEL +1 -2
  32. holoviz_mcp-0.0.1a2.dist-info/entry_points.txt +4 -0
  33. holoviz_mcp-0.0.1a2.dist-info/licenses/LICENSE.txt +30 -0
  34. holoviz_mcp-0.0.1a0.dist-info/METADATA +0 -6
  35. holoviz_mcp-0.0.1a0.dist-info/RECORD +0 -5
  36. holoviz_mcp-0.0.1a0.dist-info/top_level.txt +0 -1
  37. main.py +0 -6
@@ -0,0 +1,641 @@
1
+ Metadata-Version: 2.4
2
+ Name: holoviz-mcp
3
+ Version: 0.0.1a2
4
+ Summary: A Model Context Protocol (MCP) server for the HoloViz ecosystem
5
+ Project-URL: Homepage, https://github.com/MarcSkovMadsen/holoviz-mcp
6
+ Project-URL: Source, https://github.com/MarcSkovMadsen/holoviz-mcp
7
+ Author-email: MarcSkovMadsen <marc.skov.madsen@gmail.com>
8
+ Maintainer-email: MarcSkovMadsen <marc.skov.madsen@gmail.com>
9
+ License: BSD
10
+ License-File: LICENSE.txt
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: License :: OSI Approved :: BSD License
15
+ Classifier: Natural Language :: English
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Scientific/Engineering
22
+ Classifier: Topic :: Software Development :: Libraries
23
+ Requires-Python: >=3.11
24
+ Requires-Dist: certifi
25
+ Requires-Dist: chromadb
26
+ Requires-Dist: fastmcp
27
+ Requires-Dist: gitpython
28
+ Requires-Dist: nbconvert
29
+ Requires-Dist: packaging
30
+ Requires-Dist: panel
31
+ Requires-Dist: pydantic>=2.0
32
+ Requires-Dist: pyyaml
33
+ Provides-Extra: dev
34
+ Requires-Dist: mkdocs; extra == 'dev'
35
+ Requires-Dist: mkdocs-material; extra == 'dev'
36
+ Requires-Dist: mkdocs-pycafe; extra == 'dev'
37
+ Requires-Dist: mkdocstrings[python]; extra == 'dev'
38
+ Requires-Dist: pre-commit; extra == 'dev'
39
+ Requires-Dist: pytest; extra == 'dev'
40
+ Requires-Dist: pytest-asyncio; extra == 'dev'
41
+ Requires-Dist: pytest-rerunfailures; extra == 'dev'
42
+ Requires-Dist: pytest-xdist; extra == 'dev'
43
+ Requires-Dist: types-pyyaml; extra == 'dev'
44
+ Requires-Dist: watchfiles; extra == 'dev'
45
+ Provides-Extra: mypy
46
+ Requires-Dist: mypy; extra == 'mypy'
47
+ Requires-Dist: types-requests; extra == 'mypy'
48
+ Requires-Dist: typing-extensions; extra == 'mypy'
49
+ Provides-Extra: panel-extensions
50
+ Requires-Dist: panel-full-calendar; extra == 'panel-extensions'
51
+ Requires-Dist: panel-graphic-walker; extra == 'panel-extensions'
52
+ Requires-Dist: panel-material-ui; extra == 'panel-extensions'
53
+ Requires-Dist: panel-neuroglancer; extra == 'panel-extensions'
54
+ Requires-Dist: panel-precision-slider; extra == 'panel-extensions'
55
+ Requires-Dist: panel-web-llm; extra == 'panel-extensions'
56
+ Description-Content-Type: text/markdown
57
+
58
+ # ✨ HoloViz MCP
59
+
60
+ [![CI](https://img.shields.io/github/actions/workflow/status/MarcSkovMadsen/holoviz-mcp/ci.yml?style=flat-square&branch=main)](https://github.com/MarcSkovMadsen/holoviz-mcp/actions/workflows/ci.yml)
61
+ [![conda-forge](https://img.shields.io/conda/vn/conda-forge/holoviz-mcp?logoColor=white&logo=conda-forge&style=flat-square)](https://prefix.dev/channels/conda-forge/packages/holoviz-mcp)
62
+ [![pypi-version](https://img.shields.io/pypi/v/holoviz-mcp.svg?logo=pypi&logoColor=white&style=flat-square)](https://pypi.org/project/holoviz-mcp)
63
+ [![python-version](https://img.shields.io/pypi/pyversions/holoviz-mcp?logoColor=white&logo=python&style=flat-square)](https://pypi.org/project/holoviz-mcp)
64
+
65
+ A comprehensive [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server that provides intelligent access to the [HoloViz](https://holoviz.org/) ecosystem, enabling AI assistants to help you build interactive dashboards and data visualizations with [Panel](https://panel.holoviz.org/), [hvPlot](https://hvplot.holoviz.org), [datashader](https://datashader.org/) and your favorite Python libraries.
66
+
67
+ [![HoloViz Logo](https://holoviz.org/assets/holoviz-logo-stacked.svg)](https://holoviz.org)
68
+
69
+ Please note:
70
+
71
+ - This MCP server **can execute arbitrary Python code** when it serves Panel applications (this is configurable, and enabled by default).
72
+
73
+ ## ✨ What This Provides
74
+
75
+ **Documentation Access**: Search through comprehensive HoloViz documentation, including tutorials, reference guides, how-to guides, and API references.
76
+
77
+ **Component Intelligence**: Discover and understand 100+ Panel components with detailed parameter information, usage examples, and best practices. Similar features are available for hvPlot.
78
+
79
+ **Extension Support**: Automatic detection and information about Panel extensions such as Material UI, Graphic Walker, and other community packages.
80
+
81
+ **Smart Context**: Get contextual code assistance that understands your development environment and available packages.
82
+
83
+ ## 🎯 Why Use This?
84
+
85
+ - **⚡ Faster Development**: No more hunting through docs - get instant, accurate component information.
86
+ - **🎨 Better Design**: AI suggests appropriate components and layout patterns for your use case.
87
+ - **🧠 Smart Context**: The assistant understands your environment and available Panel extensions.
88
+ - **📖 Always Updated**: Documentation stays current with the latest HoloViz ecosystem changes.
89
+ - **🔧 Zero Setup**: Works immediately with any MCP-compatible AI assistant.
90
+
91
+ ## Need more?
92
+
93
+ Check out the [HoloViz MCP Introduction](https://youtu.be/M-YUZWEeSDA) on YouTube.
94
+
95
+ [![HoloViz MCP Introduction](docs/assets/images/holoviz-mcp-introduction.png)](https://youtu.be/M-YUZWEeSDA)
96
+
97
+ Other videos: [hvPlot tools](https://youtu.be/jTe2ZqAAtR8).
98
+
99
+ ## 🚀 Quick Start
100
+
101
+ ### Requirements
102
+
103
+ - Python 3.11+ and [uv](https://docs.astral.sh/uv/)
104
+ - VS Code with GitHub Copilot, Claude Desktop, Cursor, or any other MCP-compatible client
105
+
106
+ ## Install as a Tool (Recommended)
107
+
108
+ Due to its size, we strongly recommend installing HoloViz MCP once as a [uv tool](https://docs.astral.sh/uv/concepts/tools/):
109
+
110
+ ```bash
111
+ uv tool install git+https://github.com/MarcSkovMadsen/holoviz-mcp[panel-extensions]
112
+ ```
113
+
114
+ This ensures the `holoviz-mcp` server is installed once, instead of each time it is run as a tool.
115
+
116
+ Additionally, we highly recommend creating the documentation index (i.e., context) used by holoviz-mcp now, since this process can take up to 10 minutes:
117
+
118
+ ```bash
119
+ uvx --from holoviz-mcp holoviz-mcp-update # Updates the documentation index used by holoviz-mcp, not the holoviz-mcp Python package.
120
+ ```
121
+
122
+ You may optionally verify you can start the server with the `sse` transport:
123
+
124
+ ```bash
125
+ uvx holoviz-mcp
126
+ ```
127
+
128
+ Or, optionally start it with the `http` transport:
129
+
130
+ ```bash
131
+ HOLOVIZ_MCP_TRANSPORT=http uvx holoviz-mcp
132
+ ```
133
+
134
+ Use `CTRL+C` to stop the server when you are finished.
135
+
136
+ ### One-Click Install (Also Recommended)
137
+
138
+ Click the appropriate badge below to install it for usage with a MCP client:
139
+
140
+ [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square)](https://vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522holoviz%2522%252C%2522command%2522%253A%2522uvx%2522%252C%2522args%2522%253A%255B%2522--from%2522%252C%2522git%252Bhttps%253A//github.com/MarcSkovMadsen/holoviz-mcp%255Bpanel-extensions%255D%2522%252C%2522holoviz-mcp%2522%255D%257D)
141
+ [![Install in Cursor](https://img.shields.io/badge/Cursor-Install_Server-000000?style=flat-square)](cursor://settings/mcp)
142
+ [![Claude Desktop](https://img.shields.io/badge/Claude_Desktop-Add_Server-FF6B35?style=flat-square)](#claude-desktop)
143
+
144
+ ### Manual Installation (Alternative to One-Click Install)
145
+
146
+ <details>
147
+ <summary><b>VS Code + GitHub Copilot</b></summary>
148
+
149
+ Add this configuration to your VS Code `mcp.json`:
150
+
151
+ ```json
152
+ {
153
+ "servers": {
154
+ "holoviz": {
155
+ "type": "stdio",
156
+ "command": "uvx",
157
+ "args": [
158
+ "--from",
159
+ "git+https://github.com/MarcSkovMadsen/holoviz-mcp[panel-extensions]",
160
+ "holoviz-mcp"
161
+ ]
162
+ }
163
+ },
164
+ "inputs": []
165
+ }
166
+ ```
167
+
168
+ Restart VS Code and start chatting with GitHub Copilot about Panel components!
169
+
170
+ For more details, please refer to the official [VS Code + Copilot MCP Server Guide](https://code.visualstudio.com/docs/copilot/chat/mcp-servers).
171
+
172
+ Note: If you are developing remotely, we recommend adding this to the "Remote" or "Workspace" mcp.json file instead of the "User" mcp.json file. This ensures the MCP server runs on the remote server instead of the local machine.
173
+
174
+ </details>
175
+
176
+ <details>
177
+ <summary><b>Claude Desktop</b></summary>
178
+
179
+ Add to your Claude Desktop configuration file:
180
+
181
+ **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
182
+ **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
183
+
184
+ ```json
185
+ {
186
+ "mcpServers": {
187
+ "holoviz": {
188
+ "command": "uvx",
189
+ "args": [
190
+ "--from",
191
+ "git+https://github.com/MarcSkovMadsen/holoviz-mcp[panel-extensions]",
192
+ "holoviz-mcp"
193
+ ]
194
+ }
195
+ }
196
+ }
197
+ ```
198
+
199
+ Restart Claude Desktop and start asking about Panel components!
200
+ </details>
201
+
202
+ <details>
203
+ <summary><b>Cursor</b></summary>
204
+
205
+ Go to `Cursor Settings` → `Features` → `Model Context Protocol` → `Add Server`:
206
+
207
+ ```json
208
+ {
209
+ "name": "holoviz",
210
+ "command": "uvx",
211
+ "args": [
212
+ "--from",
213
+ "git+https://github.com/MarcSkovMadsen/holoviz-mcp[panel-extensions]",
214
+ "holoviz-mcp"
215
+ ]
216
+ }
217
+ ```
218
+
219
+ Restart Cursor and start building Panel dashboards with AI assistance!
220
+ </details>
221
+
222
+ <details>
223
+ <summary><b>Windsurf</b></summary>
224
+
225
+ Add to your Windsurf MCP configuration:
226
+
227
+ ```json
228
+ {
229
+ "mcpServers": {
230
+ "holoviz": {
231
+ "command": "uvx",
232
+ "args": [
233
+ "--from",
234
+ "git+https://github.com/MarcSkovMadsen/holoviz-mcp[panel-extensions]",
235
+ "holoviz-mcp"
236
+ ]
237
+ }
238
+ }
239
+ }
240
+ ```
241
+ </details>
242
+
243
+ <details>
244
+ <summary><b>Other MCP Clients</b></summary>
245
+
246
+ For other MCP-compatible clients, use the standard MCP configuration:
247
+
248
+ ```json
249
+ {
250
+ "name": "holoviz",
251
+ "command": "uvx",
252
+ "args": [
253
+ "--from",
254
+ "git+https://github.com/MarcSkovMadsen/holoviz-mcp[panel-extensions]",
255
+ "holoviz-mcp"
256
+ ]
257
+ }
258
+ ```
259
+ </details>
260
+
261
+ **That's it!** Start asking questions about Panel components, and your AI assistant will have access to comprehensive documentation and component details.
262
+
263
+ ### ⏱️ First-Time Setup
264
+
265
+ **Installation**: The first installation may take 1-2 minutes as dependencies are downloaded and configured.
266
+
267
+ **Documentation Indexing**: The first time you search documentation, the system will automatically download and index HoloViz documentation from GitHub. This process takes 5-10 minutes but only happens once. Subsequent searches will be instant.
268
+
269
+ **Progress Monitoring**: In VS Code, you can monitor progress in `OUTPUT → MCP: holoviz` to see indexing status and any potential issues.
270
+
271
+ ![OUTPUT](docs/assets/images/vs-code-output-holoviz.png)
272
+
273
+ ## 💡 What You Can Ask
274
+
275
+ <details>
276
+ <summary><b>🔍 Component Discovery</b></summary>
277
+
278
+ **Ask:** *"What Panel components are available for user input?"*
279
+
280
+ **AI Response:** The assistant will search through all available input components and provide a comprehensive list with descriptions, such as TextInput, Slider, Select, FileInput, etc.
281
+
282
+ **Ask:** *"Show me Panel Material UI components"*
283
+
284
+ **AI Response:** Lists all Material UI components if the package is installed, with their specific design system features.
285
+
286
+ </details>
287
+
288
+ <details>
289
+ <summary><b>📋 Component Details</b></summary>
290
+
291
+ **Ask:** *"What parameters does the Button component accept?"*
292
+
293
+ **AI Response:** Returns all 20+ parameters with their types, defaults, and descriptions:
294
+ - `name` (str): The text displayed on the button
295
+ - `button_type` (str): Button style ('default', 'primary', 'light')
296
+ - `clicks` (int): Number of times button has been clicked
297
+ - And many more...
298
+
299
+ </details>
300
+
301
+ <details>
302
+ <summary><b>📚 Best Practices</b></summary>
303
+
304
+ **Ask:** *"What are the best practices for Panel layouts?"*
305
+
306
+ **AI Response:** Provides comprehensive layout guidelines, performance tips, and architectural recommendations based on the official documentation.
307
+
308
+ **Ask:** *"How should I structure a Panel application?"*
309
+
310
+ **AI Response:** Offers detailed guidance on application architecture, state management, and component organization.
311
+
312
+ </details>
313
+
314
+ <details>
315
+ <summary><b>🚀 Building Tools, Dashboards and Applications</b></summary>
316
+
317
+ **Ask:** *"How do I build a minimal, Hello World data dashboard with Panel?"*
318
+
319
+ **AI Response:** Provides basic application architecture with layout components, data connections, and interactive widgets.
320
+
321
+ **Ask:** *"How do I create a minimal, dashboard with Panel Material UI sliders and plots?"*
322
+
323
+ **AI Response:** Provides complete code examples with proper Panel layout structure and Panel Material UI component integration.
324
+
325
+ **Ask:** *"Build a sales dashboard for data analysis using Panel Material UI components. Follow the Panel and Panel Material UI best practices. Create tests and make sure issues are identified and fixed."*
326
+
327
+ **AI Response:** Provides code for interactive tools with dynamic filtering, real-time updates, and responsive layouts that work across devices.
328
+
329
+ **Ask:** *"How do I deploy a Panel application?"*
330
+
331
+ **AI Response:** Offers deployment strategies for various platforms (Heroku, AWS, local server) with configuration examples and best practices for production environments.
332
+
333
+ </details>
334
+
335
+ The AI assistant provides accurate, contextual answers with:
336
+ - **Detailed component information** including all parameters and types
337
+ - **Usage examples** and copy-pasteable code snippets
338
+ - **Best practices** for Panel development
339
+ - **Extension compatibility** information
340
+
341
+ ## 🛠️ Available Tools
342
+
343
+ <details>
344
+ <summary><b>Panel Tools</b></summary>
345
+
346
+ - **list_packages**: List all installed packages that provide Panel UI components.
347
+ - **search**: Search for Panel components by name, module path, or description.
348
+ - **list_components**: Get a summary list of Panel components without detailed docstring and parameter information.
349
+ - **get_component**: Get complete details about a single Panel component including docstring and parameters.
350
+ - **get_component_parameters**: Get detailed parameter information for a single Panel component.
351
+ - **serve**: Start a Panel server for a given file (if code execution is enabled).
352
+ - **get_server_logs**: Get logs for a running Panel application server.
353
+ - **close_server**: Close a running Panel application server.
354
+
355
+ </details>
356
+
357
+ <details>
358
+ <summary><b>Documentation Tools</b></summary>
359
+
360
+ - **get_best_practices**: Get best practices for using a project with LLMs.
361
+ - **list_best_practices**: List all available best practices projects.
362
+ - **get_reference_guide**: Find reference guides for specific HoloViz components.
363
+ - **get_document**: Retrieve a specific document by path and project.
364
+ - **search**: Search HoloViz documentation using semantic similarity.
365
+
366
+ </details>
367
+
368
+ <details>
369
+ <summary><b>hvPlot Tools</b></summary>
370
+
371
+ - **list_plot_types**: List all available hvPlot plot types.
372
+ - **get_docstring**: Get the docstring for a specific hvPlot plot type.
373
+ - **get_signature**: Get the function signature for a specific hvPlot plot type.
374
+
375
+ </details>
376
+
377
+ To prevent tools like `panel_serve` from running arbitrary code, you can disable them by setting one of the following options:
378
+
379
+ - In your YAML configuration file, set: `server.security.allow_code_execution: false`
380
+ - Or, set the environment variable: `HOLOVIZ_MCP_ALLOW_CODE_EXECUTION=false`
381
+
382
+ This will block any features that allow execution of user-provided code.
383
+
384
+ ## 📦 Installation
385
+
386
+ ### For AI Assistant Use
387
+
388
+ The recommended way is to configure your AI assistant (VS Code + GitHub Copilot) to use the server directly as shown above.
389
+
390
+ ### Manual Installation
391
+
392
+ ```bash
393
+ uv tool install git+https://github.com/MarcSkovMadsen/holoviz-mcp
394
+ ```
395
+
396
+ ### With Panel Extensions
397
+
398
+ Install with support for community projects like `panel-material-ui`, `panel-graphic-walker` etc.:
399
+
400
+ ```bash
401
+ uv tool install git+https://github.com/MarcSkovMadsen/holoviz-mcp[panel-extensions]
402
+ ```
403
+
404
+ ### Running the Server
405
+
406
+ ```bash
407
+ uvx holoviz-mcp
408
+ ```
409
+
410
+ For HTTP transport:
411
+
412
+ ```bash
413
+ HOLOVIZ_MCP_TRANSPORT=http uvx holoviz-mcp
414
+ ```
415
+
416
+ ## ⚙️ Configuration Options
417
+
418
+ <details>
419
+ <summary><b>Transport Modes</b></summary>
420
+
421
+ The server supports different transport protocols:
422
+
423
+ **Standard I/O (default):**
424
+ ```bash
425
+ uvx holoviz-mcp
426
+ ```
427
+
428
+ **HTTP (for remote development):**
429
+ ```bash
430
+ HOLOVIZ_MCP_TRANSPORT=http uvx holoviz-mcp
431
+ ```
432
+
433
+ </details>
434
+
435
+ <details>
436
+ <summary><b>Environment Variables</b></summary>
437
+
438
+ - **HOLOVIZ_MCP_LOG_LEVEL**: Set the server log level (e.g., `INFO`, `DEBUG`, `WARNING`).
439
+ - **HOLOVIZ_MCP_SERVER_NAME**: Override the server name.
440
+ - **HOLOVIZ_MCP_TRANSPORT**: Set the transport mode (e.g., `stdio`, `http`).
441
+ - **ANONYMIZED_TELEMETRY**: Enable or disable anonymized Chroma telemetry (`True` or `False` (default)).
442
+ - **HOLOVIZ_MCP_ALLOW_CODE_EXECUTION**: Allow or block code execution features (`True` (default) or `False`).
443
+ - **JUPYTER_SERVER_PROXY_URL**: If set, Panel apps will open using this URL prefix (e.g., `.../proxy/5007/`) instead of `localhost:5007/`. This is useful when running remotely in a Jupyter Hub.
444
+
445
+ </details>
446
+
447
+ <details>
448
+ <summary><b>Package Extensions</b></summary>
449
+
450
+ The server automatically detects Panel-related packages in your environment:
451
+
452
+ - `panel-material-ui`: Material Design components
453
+ - `panel-graphic-walker`: Interactive data visualization
454
+ - Any package that depends on the `panel` package.
455
+
456
+ Install additional packages and restart the mcp server to include them.
457
+
458
+ </details>
459
+
460
+ ## 🔄 Updates & Maintenance
461
+
462
+ Keeping HoloViz MCP up to date ensures you have the latest features, bug fixes, and updated documentation.
463
+
464
+ ### Update the Python Package
465
+
466
+ To update the holoviz-mcp Python package (including code and dependencies):
467
+
468
+ ```bash
469
+ uv tool update holoviz_mcp[panel-extensions]
470
+ ```
471
+
472
+ ### Update the Documentation Index
473
+
474
+ To refresh the searchable documentation index (recommended after package updates, or when new/updated docs are available):
475
+
476
+ ```bash
477
+ uvx --from holoviz-mcp holoviz-mcp-update
478
+ ```
479
+
480
+ ## Tips & Tricks
481
+
482
+ If you are a linux user, then you can make your life easier if you add the below to your .bashrc file
483
+
484
+ ```bash
485
+ alias holoviz-mcp="uvx holoviz-mcp"
486
+ alias holoviz-mcp-update="uv tool update holoviz_mcp[panel-extensions];uvx --from holoviz-mcp holoviz-mcp-update"
487
+ ```
488
+
489
+ After restarting your terminal, you can run:
490
+
491
+ ```bash
492
+ holoviz-mcp # to start the server
493
+ holoviz-mcp-update # to update the python package AND the index
494
+ ```
495
+
496
+ ## ⚙️ User Configuration
497
+
498
+ HoloViz MCP supports user configuration via a YAML file, allowing you to customize server behavior and documentation sources to fit your workflow.
499
+
500
+ ### Custom Configuration File
501
+
502
+ By default, configuration is loaded from `~/.holoviz-mcp/config.yaml`.
503
+ To use a different location, set the `HOLOVIZ_MCP_USER_DIR` environment variable:
504
+
505
+ ```bash
506
+ export HOLOVIZ_MCP_USER_DIR=/path/to/your/config_dir
507
+ ```
508
+
509
+ ### Adding Custom Documentation Repositories
510
+
511
+ You can add documentation from other libraries or your own projects by editing your configuration YAML and adding entries under `docs.repositories`.
512
+
513
+ **Example: Adding Plotly and Altair Documentation**
514
+
515
+ ```yaml
516
+ docs:
517
+ repositories:
518
+ plotly:
519
+ url: "https://github.com/plotly/plotly.py.git"
520
+ base_url: "https://plotly.com/python"
521
+ target_suffix: "plotly"
522
+ altair:
523
+ url: "https://github.com/altair-viz/altair.git"
524
+ base_url: "https://altair-viz.github.io"
525
+ ```
526
+
527
+ After updating your configuration:
528
+
529
+ 1. Update your documentation index:
530
+ ```bash
531
+ holoviz-mcp-update
532
+ ```
533
+ 2. Restart the MCP server.
534
+
535
+ Your custom documentation repositories will now be available for search and reference within HoloViz MCP.
536
+
537
+ ### Schema Validation
538
+
539
+ A [`schema.json`](https://raw.githubusercontent.com/MarcSkovMadsen/holoviz-mcp/refs/heads/main/src/holoviz_mcp/config/schema.json) file is provided for configuration validation and editor autocompletion.
540
+
541
+ **For VS Code with [vscode-yaml](https://github.com/redhat-developer/vscode-yaml):**
542
+
543
+ Add this at the top of your YAML file:
544
+ ```yaml
545
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/MarcSkovMadsen/holoviz-mcp/refs/heads/main/src/holoviz_mcp/config/schema.json
546
+ ```
547
+ This enables real-time validation and autocompletion in VS Code.
548
+
549
+ ## 🔧 Troubleshooting
550
+
551
+ ### Common Issues
552
+
553
+ **Server won't start**: Check that Python 3.11+ is installed and verify with `pip show holoviz-mcp`
554
+
555
+ **VS Code integration not working**: Ensure GitHub Copilot Chat extension is installed and restart VS Code after configuration
556
+
557
+ **Missing Panel components**: Install relevant Panel extension packages and restart the MCP server
558
+
559
+ ### Getting Help
560
+
561
+ - **Issues**: Report bugs on [GitHub Issues](https://github.com/MarcSkovMadsen/holoviz-mcp/issues)
562
+ - **Documentation**: Check the [HoloViz documentation](https://holoviz.org/)
563
+ - **Community**: Join the HoloViz community on [Discord](https://discord.gg/AXRHnJU6sP)
564
+
565
+ ## 🛠️ Development
566
+
567
+ ### Setup
568
+
569
+ ```bash
570
+ git clone https://github.com/MarcSkovMadsen/holoviz-mcp
571
+ cd holoviz-mcp
572
+ ```
573
+
574
+ Install [pixi](https://pixi.sh) and run:
575
+
576
+ ```bash
577
+ pixi run pre-commit-install
578
+ pixi run postinstall
579
+ pixi run test
580
+ ```
581
+
582
+ ### Development Server
583
+
584
+ For remote development with VS Code:
585
+
586
+ ```bash
587
+ HOLOVIZ_MCP_TRANSPORT=http holoviz-mcp
588
+ ```
589
+
590
+ Add to VS Code workspace `.vscode/mcp.json`:
591
+
592
+ ```json
593
+ {
594
+ "servers": {
595
+ "holoviz": {
596
+ "type": "http",
597
+ "url": "http://127.0.0.1:8000/mcp/",
598
+ }
599
+ },
600
+ "inputs": []
601
+ }
602
+ ```
603
+
604
+ ### Template
605
+
606
+ This project uses [copier-template-panel-extension](https://github.com/panel-extensions/copier-template-panel-extension).
607
+
608
+ Update to the latest template:
609
+
610
+ ```bash
611
+ pixi exec --spec copier --spec ruamel.yaml -- copier update --defaults --trust
612
+ ```
613
+
614
+ ## ❤️ Contributing
615
+
616
+ We welcome contributions! Here's how to get started:
617
+
618
+ 1. **Fork** the repository and create a new branch
619
+ 2. **Make** your changes with tests and documentation
620
+ 3. **Run** `pixi run test` to ensure everything works
621
+ 4. **Submit** a pull request
622
+
623
+ ### Code Quality
624
+
625
+ - **pre-commit** hooks ensure consistent formatting
626
+ - **pytest** for comprehensive testing
627
+ - **GitHub Actions** for CI/CD
628
+
629
+ Run `pixi run pre-commit-install` to set up code quality checks.
630
+
631
+ ## Roadmap
632
+
633
+ - [ ] Provide Panel and Panel Material UI best practices for both "beginners" and "intermediate" users. Current ones are for "intermediate users".
634
+ - [ ] Find that "magic" prompt that makes the LLM run a development server with hot reload (`panel serve ... --dev`) while developing. Would make things more engaging. I've tried a lot.
635
+
636
+ - [ ] Try out [Playwright MCP](https://github.com/microsoft/playwright-mcp). Its probably worth recommending for taking screenshots and interacting with the app in the browser.
637
+ - [ ] Provide reference guides for other HoloViz packages starting with hvPlot, param and HoloViews.
638
+ - [ ] Base index on latest released versions instead of latest code (`Head`).
639
+ - [ ] Add dev tools and agents! useful for HoloViz contributors.
640
+ - [ ] Figure out if there is potential for integrating with or playing together with Lumen AI
641
+ - [ ] Migrate to HoloViz organisation.
@@ -0,0 +1,33 @@
1
+ holoviz_mcp/__init__.py,sha256=81mxQFZOa70OoQ9UOHSzrcC9NnZbca3q9r5rKcuMrIM,485
2
+ holoviz_mcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ holoviz_mcp/serve.py,sha256=gmFJQkBNCneF2ZDFom012SLodaZY147MGhDw-ObqB34,966
4
+ holoviz_mcp/server.py,sha256=QzDfibGBoD6VYFW5GDluIyOo0pXib09R8zvI_cTPUQU,3222
5
+ holoviz_mcp/apps/__init__.py,sha256=Qiius2mdB0CjCRGsJJvfX4JBSkFnED8h4IipavBD32Y,34
6
+ holoviz_mcp/apps/configuration_viewer.py,sha256=pxJTcs1ORAd3SjEh8OmJ-yhg1zPq2ES_2nuUJU-QSt0,4035
7
+ holoviz_mcp/apps/search.py,sha256=xqLXH3V0dvZRlyy1nUBj7IUcS-nmRiZ1jNETUFea-SY,11509
8
+ holoviz_mcp/config/__init__.py,sha256=wMenhxaCQYpXWj-yNLCR7QZFsTZc0_Q43-WKDbmGGQc,764
9
+ holoviz_mcp/config/config.yaml,sha256=Mwb2DDDTGwMs0q4-87vjv5maQrXshOHmSX6VM2l6qaw,4732
10
+ holoviz_mcp/config/loader.py,sha256=7XIyh9DFVDQh4zaTUMy-zOO-wSaoVc4COxTi0ezQsd4,11040
11
+ holoviz_mcp/config/models.py,sha256=ohNxyJls7NAzyuGMWB72Pjzsrv1HZXELNo9plWJbz7k,9193
12
+ holoviz_mcp/config/schema.json,sha256=6PAizsDHOu9BPfdvCjnd8Mk6llT98ohPsLIKCNxpv6o,6584
13
+ holoviz_mcp/config/resources/best-practices/hvplot.md,sha256=NdPBoHND332ii8XUws269cKoh8P8O_sBfxTBJwp7Pk0,1645
14
+ holoviz_mcp/config/resources/best-practices/panel-material-ui.md,sha256=rbKriQezTmSgjqMaojifDy5NzcX1e-sztDyptjZjE58,12320
15
+ holoviz_mcp/config/resources/best-practices/panel.md,sha256=WOtLTNbNTVGN_x6UHpobsdEYAMUGeFj0IIiOj08NO04,11948
16
+ holoviz_mcp/docs_mcp/__init__.py,sha256=SrkGEFh3UwvSy1kPKZGWi91DDChrhxP8kiewZWotaP8,24
17
+ holoviz_mcp/docs_mcp/data.py,sha256=Z5wFDbqWoV7u0RdhhMVXMPZdbj7UvHzlfOZCtdFpd44,40930
18
+ holoviz_mcp/docs_mcp/models.py,sha256=b1UM4FNBnzxA3LO_0b--WskD0c0BHTqLspgNIwnql88,1174
19
+ holoviz_mcp/docs_mcp/pages_design.md,sha256=bLfkZowizkJaQs_zVDsskTUKoOfOadRy6Hr7WMH8P3Q,15055
20
+ holoviz_mcp/docs_mcp/server.py,sha256=Z5LSVRS3uX5egZtDWIDlWy6d5UBi0LzlknAFrnywvjs,8131
21
+ holoviz_mcp/hvplot_mcp/__init__.py,sha256=ypVtR70MsluzGvmfedR3j1wEoQfiq88ZZHka7ztbTpI,25
22
+ holoviz_mcp/hvplot_mcp/server.py,sha256=2wZ1l1m08aaNndkBzcLEfapL9ZuMVO4ItSXVvzhh1hc,5077
23
+ holoviz_mcp/panel_mcp/__init__.py,sha256=LVTDu3ARK9E4yIP40W36-DMl2IF6189g6pbGkGUZV4k,564
24
+ holoviz_mcp/panel_mcp/data.py,sha256=17RBRdZgV-9JVvWWRWHCPbtu6JA-yAvpTSmSBngRBR8,10698
25
+ holoviz_mcp/panel_mcp/models.py,sha256=YJZB-BsFdgUP98nfFGaNhWhHFmDhMl2rDniZG6PFRkk,5126
26
+ holoviz_mcp/panel_mcp/server.py,sha256=XQfFVyY-U4huNfcu5oVHeRwkh3AjTBcnNXgytcZNMMk,24127
27
+ holoviz_mcp/shared/__init__.py,sha256=_1R5D4cFY_k_albyuvYmguKgjuzuQKbKKGn6tu9z4dM,51
28
+ holoviz_mcp/shared/extract_tools.py,sha256=v1YPfVyLPGwnWdrq43cX0WbTR4kcdPeh04H7gFzH0ME,2831
29
+ holoviz_mcp-0.0.1a2.dist-info/METADATA,sha256=3mWBzarPPECnHnHEltgvCMQ9tJA2h-6TDoSwq5xnL8w,22644
30
+ holoviz_mcp-0.0.1a2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
31
+ holoviz_mcp-0.0.1a2.dist-info/entry_points.txt,sha256=s_i_2ezxxzBnC1OiWMW3aP8lQKwg0EWY3ErY55fwvLc,144
32
+ holoviz_mcp-0.0.1a2.dist-info/licenses/LICENSE.txt,sha256=Jqbh7noYJKpAY0CUXf5UeMNtew5vLlLHmRbBrIo6XrE,1515
33
+ holoviz_mcp-0.0.1a2.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ holoviz-mcp = holoviz_mcp:main
3
+ holoviz-mcp-serve = holoviz_mcp.serve:main
4
+ holoviz-mcp-update = holoviz_mcp.docs_mcp.data:main