Skip to content

Pine Script v6 Documentation

by paulieb89 · remote · local (pypi) · no sign-in to list tools · v0.6.17 · published by GitHub user paulieb89

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

Read only

10 tools: 10 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http pinescript https://pinescript-mcp.fly.dev/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Only reads 10Claude Code: allow
  • get_docUSE WHEN reading the full content of a Pine Script v6 documentation file.Reads private dataNo findings

    Why it is in this group

    • The name "get_doc" says "get": a word for reading.

    What it can reach

    • private-dataThe name "get_doc" says "get" and "doc": it reads documents.
    • private-dataThe description's first sentence says "file": it reads files.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_functionsUSE WHEN browsing valid Pine Script v6 functions, optionally filtered to a namespace.No findings

    Why it is in this group

    • The name "get_functions" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_promptGet a prompt by name with optional arguments.No findings

    Why it is in this group

    • The name "get_prompt" says "get": a word for reading.
    Description, as the server wrote it
    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.
  • get_sectionUSE WHEN reading a specific named section from a Pine Script v6 documentation file.Reads private dataNo findings

    Why it is in this group

    • The name "get_section" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "file": it reads files.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • list_docsUSE WHEN discovering what Pine Script v6 documentation is available.Reads private dataNo findings

    Why it is in this group

    • The name "list_docs" says "list": a word for reading.

    What it can reach

    • private-dataThe name "list_docs" says "list" and "doc": it reads documents.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • list_promptsList all available prompts.No findings

    Why it is in this group

    • The name "list_prompts" says "list": a word for reading.
    Description, as the server wrote it
    List all available prompts. Returns JSON with prompt metadata including name, description, and optional arguments.
  • list_sectionsUSE WHEN navigating a large documentation file before reading a specific section.Reads private dataNo findings

    Why it is in this group

    • The name "list_sections" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "file": it reads files.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • resolve_topicUSE WHEN looking up an exact Pine Script API term or known concept keyword.No findings

    Why it is in this group

    • The name "resolve_topic" says "resolve": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • search_docsUSE WHEN finding documentation sections that match specific terms across all Pine Script v6 docs.Reads private dataNo findings

    Why it is in this group

    • The name "search_docs" says "search": a word for reading.

    What it can reach

    • private-dataThe name "search_docs" says "search" and "doc": it reads documents.
    • private-dataThe description's first sentence says "doc": it reads documents.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • validate_functionUSE WHEN confirming a Pine Script v6 function name is valid before using it in code.No findings

    Why it is in this group

    • The name "validate_function" says "validate": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged untrusted-input or outbound.

Reads private data5
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write0
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Install

Pinned to version 0.6.17. Values in angle brackets are yours to fill in.

claude mcp add --transport http pinescript https://pinescript-mcp.fly.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__pinescript__list_docs",
      "mcp__pinescript__list_sections",
      "mcp__pinescript__get_doc",
      "mcp__pinescript__get_section",
      "mcp__pinescript__search_docs",
      "mcp__pinescript__get_functions",
      "mcp__pinescript__validate_function",
      "mcp__pinescript__resolve_topic",
      "mcp__pinescript__list_prompts",
      "mcp__pinescript__get_prompt"
    ],
    "ask": [],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as pinescript. Review it before you use it.

Capability tags behind 5 rules
  • mcp__pinescript__list_docs private-data
  • mcp__pinescript__list_sections private-data
  • mcp__pinescript__get_doc private-data
  • mcp__pinescript__get_section private-data
  • mcp__pinescript__search_docs private-data