# Pine Script v6 Documentation MCP server

Pine Script v6 documentation lookup, function validation, and linting for AI code generation

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-paulieb89-pinescript-mcp
- Repository: https://github.com/paulieb89/pinescript-mcp
- Website: https://bouch.dev

## Install
- Command: `uvx pinescript-mcp`
- Endpoint: https://pinescript-mcp.fly.dev/mcp
- Auth: Not captured

## Setup notes
- Package: Pypi pinescript-mcp v0.6.17
- Remote endpoint: https://pinescript-mcp.fly.dev/mcp
- Remote endpoint: https://pinescript-mcp.fly.dev/sse

## Tools
- list_docs - USE WHEN discovering what Pine Script v6 documentation is available.
Returns a categorised list of doc file paths with one-line descriptions.
AFTER calling this tool, call get_doc(path) for small files or list_sections(path) then get_section(path, header) for large files (ta.md, strategy.md, collections.md, drawing.md, general.md).
Data sourced from bundled Pine Script v6 documentation. Endpoint: https://pinescript-mcp.fly.dev/mcp
- list_sections - USE WHEN navigating a large documentation file before reading a specific section.
Returns a newline-separated list of # and ## headers (### excluded) in the file.
AFTER calling this tool, call get_section(path, header) with a header from this list.
Data sourced from bundled Pine Script v6 documentation. Endpoint: https://pinescript-mcp.fly.dev/mcp
- get_doc - USE WHEN reading the full content of a Pine Script v6 documentation file.
Returns the file content; when limit is set, a header shows the char range and offset to continue reading.
AFTER calling this tool, use offset=<end> to continue if the header indicates more content is available. For large files (ta.md, strategy.md, collections.md, drawing.md, general.md), prefer list_sections() + get_section() instead.
Data sourced from bundled Pine Script v6 documentation. Endpoint: https://pinescript-mcp.fly.dev/mcp
- get_section - USE WHEN reading a specific named section from a Pine Script v6 documentation file.
Returns the section content from the matched header to the next same-level header, with file path and line range.
AFTER calling this tool, call list_sections(path) if the header was not found, or get_section() again with a child header for a narrower subsection.
Data sourced from bundled Pine Script v6 documentation. Endpoint: https://pinescript-mcp.fly.dev/mcp
- search_docs - USE WHEN finding documentation sections that match specific terms across all Pine Script v6 docs.
Returns up to max_results sections ranked by match count, each with a preview and a get_section() call hint.
AFTER calling this tool, call get_section(file, header) for each result you want to read in full.
Data sourced from bundled Pine Script v6 documentation. Endpoint: https://pinescript-mcp.fly.dev/mcp
- get_functions - USE WHEN browsing valid Pine Script v6 functions, optionally filtered to a namespace.
Returns function names grouped by namespace (e.g. ta.*, strategy.*) or filtered to the requested namespace.
AFTER calling this tool, call validate_function(fn_name) to check a specific name, or get_section() to read its documentation.
Data sourced from bundled pine_v6_functions.json. Endpoint: https://pinescript-mcp.fly.dev/mcp
- validate_function - USE WHEN confirming a Pine Script v6 function name is valid before using it in code.
Returns a valid/invalid verdict with namespace suggestions or known replacement hints (e.g. ta.adx → ta.dmi, security → request.security).
AFTER calling this tool, call get_functions(namespace) to list all valid functions in the relevant namespace if the function is invalid.
Data sourced from bundled pine_v6_functions.json. Endpoint: https://pinescript-mcp.fly.dev/mcp
- resolve_topic - USE WHEN looking up an exact Pine Script API term or known concept keyword.
Returns the best-matching doc paths with matched keywords and a retrieval suggestion (get_doc or list_sections + get_section).
AFTER calling this tool, follow the suggestion: call get_doc() for small files or list_sections() + get_section() for large files. For natural language questions use search_docs() instead.
Data sourced from bundled TOPIC_MAP and doc file content scan. Endpoint: https://pinescript-mcp.fly.dev/mcp
- list_prompts - List all available prompts.

Returns JSON with prompt metadata including name, description,
and optional arguments. Endpoint: https://pinescript-mcp.fly.dev/mcp
- get_prompt - Get a prompt by name with optional arguments.

Returns the rendered prompt as JSON with a messages array.
Arguments should be provided as a dict mapping argument names
to values. Endpoint: https://pinescript-mcp.fly.dev/mcp

## Resources
- docs://manifest - START HERE — routing guide that maps Pine Script questions to documentation files and tool call sequences MIME type: text/markdown
- docs://functions - Complete list of valid Pine Script v6 functions as JSON MIME type: application/json

## Prompts
- debug_error - Debug a Pine Script compilation error. Arguments: error_message, code
- convert_v5_to_v6 - Convert Pine Script v5 code to v6. Arguments: code
- explain_function - Explain a Pine Script function in detail. Arguments: function_name

## Metadata
- Owner: io.github.paulieb89
- Version: 0.6.17
- Runtime: Pypi
- Transports: HTTP, STDIO
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Apr 4, 2026
- Source: https://registry.modelcontextprotocol.io
