MCP server providing Pine Script v6 documentation for AI assistants
Project description
pinescript-mcp
MCP server providing Pine Script v6 documentation for AI assistants (Claude, etc.).
Enables AI to:
- Look up Pine Script functions and validate syntax
- Access official documentation for indicators, strategies, and visuals
- Understand Pine Script concepts (execution model, repainting, etc.)
- Generate correct v6 code with proper function references
Quick Start (stdio)
Works with Claude Code, Claude Desktop, Gemini CLI, and any MCP client that supports stdio:
{
"mcpServers": {
"pinescript-docs": {
"type": "stdio",
"command": "uvx",
"args": ["pinescript-mcp"]
}
}
}
Public Server (No Install Required)
No Python or uvx needed — connect directly to the hosted server.
Streamable HTTP — Claude Code, Claude Desktop, Cursor, Cline (standard mcpServers with type field):
{
"mcpServers": {
"pinescript-docs": {
"type": "http",
"url": "https://pinescript-mcp.fly.dev/mcp"
}
}
}
Windsurf — uses its own serverUrl shape (see Windsurf docs). Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"pinescript-docs": {
"serverUrl": "https://pinescript-mcp.fly.dev/mcp"
}
}
}
ChatGPT — no config file. In ChatGPT, go to Settings → Connectors → Create and paste https://pinescript-mcp.fly.dev/mcp into the Server URL field. Developer Mode must be enabled (see OpenAI Developer Mode guide).
Claude.ai — add via the web UI's MCP connector settings, not a JSON file.
SSE (legacy transport, kept for older clients):
{
"mcpServers": {
"pinescript-docs": {
"type": "sse",
"url": "https://pinescript-mcp.fly.dev/sse"
}
}
}
Streamable HTTP is preferred — SSE is being phased out across the MCP ecosystem.
Version Pinning
Documentation is bundled in the package — each version contains a frozen snapshot. For reproducible agent behaviour, pin to a specific version:
{
"mcpServers": {
"pinescript-docs": {
"command": "uvx",
"args": ["pinescript-mcp==0.7.0"]
}
}
}
Without pinning, uvx pinescript-mcp gets the latest version.
Note: versions before
0.7.0includedlint_scriptandedit_and_linttools that were removed in 0.7.0 (docs-only server). Pinning to 0.6.x will give you those tools back, but the auth gate onlint_scriptwas never completed on the hosted Fly instance, so they'll return auth errors on HTTP. Pin 0.7.0+ for the current, working tool surface.
Available Tools (12)
| Tool | Description |
|---|---|
resolve_topic(query) |
Fast lookup for exact API terms (ta.rsi, repainting) |
search_docs(query) |
Grep for exact strings across all docs |
list_docs() |
List all documentation files with descriptions |
list_sections(path) |
List ## headers in a doc file (for navigating large files) |
get_doc(path) |
Read a specific documentation file |
get_section(path, header) |
Read a specific section by header |
get_functions(namespace) |
List valid functions (ta, strategy, etc.) |
validate_function(name) |
Check if a function exists in Pine v6 |
list_resources() |
Browse available documentation resources |
read_resource(uri) |
Read a doc resource by URI (e.g. docs://manifest) |
list_prompts() |
List available prompt templates |
get_prompt(name, arguments) |
Render a prompt template with arguments |
Available Prompts
| Prompt | Description |
|---|---|
debug_error(error, code) |
Analyze a Pine Script compilation error |
convert_v5_to_v6(code) |
Convert Pine Script v5 code to v6 syntax |
explain_function(name) |
Explain a Pine Script function in detail |
Available Resources
| URI | Description |
|---|---|
docs://manifest |
Start here — routing guide for Pine Script questions |
docs://functions |
Complete Pine Script v6 function list (JSON) |
docs://{path} |
Any doc file by path (e.g. concepts/timeframes.md) |
Example Queries
- "How do I create a trailing stop in Pine Script?"
- "What's the difference between var and varip?"
- "Is ta.supertrend a valid function?"
- "How do I avoid repainting with request.security?"
Documentation Coverage
The server bundles comprehensive Pine Script v6 documentation:
- Concepts: Execution model, timeframes, colors, methods, objects, common errors
- Reference: Types, variables, constants, keywords, operators, annotations
- Functions: Technical analysis (ta.*), strategies, requests, drawings, collections
- Visuals: Plots, fills, shapes, tables, lines, boxes, backgrounds
- Writing Scripts: Style guide, debugging, optimization, limitations
Why Use This?
AI models often hallucinate Pine Script functions or use deprecated v5 syntax. This MCP server grounds the AI in actual v6 documentation, preventing:
- Made-up function names (e.g.,
ta.hulldoesn't exist, useta.hma) - Deprecated syntax from v4/v5
- Incorrect parameter orders
- Missing required arguments
Skills
Combine with skills for even more control available at bouch.dev/products/pine-strategy-builder.
Development
# Clone and install locally
git clone https://gitlab.com/articat1066/pinescript-v6-mcp
cd pinescript-mcp
pip install -e .
# Run the server
pinescript-mcp
License
MIT
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 pinescript_mcp-0.7.1.tar.gz.
File metadata
- Download URL: pinescript_mcp-0.7.1.tar.gz
- Upload date:
- Size: 322.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4612d323136d1c0bffd449ebf7a7ac3de2666f1412b73db82648a5cf21c5335a
|
|
| MD5 |
b5e715456b4b45c7a6d4dbc63d55a478
|
|
| BLAKE2b-256 |
ea43d5bfec6944d6ba9c3441dc8f0366fafd7f163c2c82956e41c2e0471a6485
|
File details
Details for the file pinescript_mcp-0.7.1-py3-none-any.whl.
File metadata
- Download URL: pinescript_mcp-0.7.1-py3-none-any.whl
- Upload date:
- Size: 350.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c1489b68b81a3c85a131c710fc6e09a6d58d98478e6e5257ad656ce408f51ea
|
|
| MD5 |
d1511fedab43cf7bd6efd9a29d6e8811
|
|
| BLAKE2b-256 |
26b4269f217a167dfa9ffa6ba3f44e9e0baabb88f1fe0e82247d9251ea737b45
|