PineScript Docs
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_docs | List all available Pine Script v6 documentation files with descriptions. Returns files organised by category with descriptions. For small files use get_doc(path). For large files (ta.md, strategy.md, collections.md, drawing.md, general.md) use list_sections(path) then get_section(path, header). |
| list_sections | List all section headers in a doc file. Use before get_section() to find the right header. Especially useful for large files like ta.md, strategy.md, collections.md, drawing.md, general.md which have 50-115 sections each. |
| get_doc | Read a specific Pine Script v6 documentation file. For large files (ta.md, strategy.md, collections.md, drawing.md, general.md) prefer list_sections() + get_section() to avoid loading 1000-2800 line files into context. |
| get_section | Get a specific section from a documentation file by its header. Use after list_sections() shows available headers, or after resolve_topic() / search_docs() identifies the relevant file. |
| search_docs | Search Pine Script v6 documentation and return matching sections. Finds sections containing the query and returns previews with get_section() call hints so you can read the full content. |
| get_functions | Get valid Pine Script v6 functions, optionally filtered by namespace. Use before writing Pine Script to see which functions exist. For checking a single function name, use validate_function() instead. |
| validate_function | Check if a Pine Script v6 function name is valid. |
| resolve_topic | Fast lookup for exact Pine Script API terms and known concepts. Use for exact function names and Pine Script vocabulary (e.g., "ta.rsi", "strategy.entry", "repainting", "request.security"). For natural language questions, read the docs://manifest resource for routing guidance, then use get_doc() or list_sections() + get_section(). |
| list_prompts | List all available prompts. Returns JSON with prompt metadata including name, description, and optional arguments. |
| 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| debug_error | Debug a Pine Script compilation error. |
| convert_v5_to_v6 | Convert Pine Script v5 code to v6. |
| explain_function | Explain a Pine Script function in detail. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| LLM Manifest | START HERE — routing guide that maps Pine Script questions to documentation files and tool call sequences |
| Pine Script v6 Functions | Complete list of valid Pine Script v6 functions as JSON |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/paulieb89/pinescript-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server