Pine Script MCP Server

Pine Script MCP Server

Enables AI assistants to look up any Pine Script function, search TradingView documentation, and find code examples in real time.

Category
Visit Server

README

Pine Script MCP Server

npm version License: MIT

Give your AI assistant expert-level Pine Script knowledge.

This project lets AI tools like Claude look up any Pine Script function, search TradingView documentation, find code examples, and browse guides — all in real time while you chat. No more hallucinated functions or outdated v5 syntax.

What does that actually mean?

When you ask Claude to help you write a TradingView indicator or strategy, it doesn't always know the correct Pine Script v6 syntax. This server plugs directly into Claude and gives it access to the complete Pine Script v6 reference — 457 functions, 427 variables, and the full user guide — so it can look things up instead of guessing.

It uses something called MCP (Model Context Protocol), which is a standard way to give AI assistants access to external tools and data. You don't need to understand MCP to use this — just follow the install steps below.


Prerequisites

You need Node.js version 18 or higher installed on your computer.

Don't have Node.js? Download it from nodejs.org — grab the LTS (Long Term Support) version. The installer will walk you through it.

To check if you already have it, open a terminal and type:

node --version

If you see v18.0.0 or higher, you're good to go.


Installation

Pick the method that matches how you use Claude:

Option A: Claude Code (one command)

If you use Claude Code in your terminal, just run:

claude mcp add pinescript -- npx -y pinescript-mcp-server

That's it. Next time you start a Claude Code session, it will have Pine Script tools available.

Option B: Claude Desktop App

  1. Open the Claude desktop app
  2. Go to Settings (click Claude in the menu bar > Settings)
  3. Click the Developer tab
  4. Click Edit Config
  5. This opens a JSON file. Add the following (if the file is empty, paste the whole thing; if it already has content, add the pinescript entry inside the existing mcpServers object):
{
  "mcpServers": {
    "pinescript": {
      "command": "npx",
      "args": ["-y", "pinescript-mcp-server"]
    }
  }
}
  1. Save the file
  2. Completely quit and restart Claude Desktop (not just close the window — fully quit from the menu bar)

When it restarts, you should see a small tool icon in the chat input area. Click it to confirm the Pine Script tools are listed.

Option C: Any Other MCP-Compatible Tool

If you're using another tool that supports MCP servers (like Cursor, Windsurf, etc.), point it at:

npx -y pinescript-mcp-server

using the stdio transport. Check your tool's documentation for how to add MCP servers.


What Can It Do?

Once installed, just chat with Claude normally. It will automatically use the Pine Script tools when relevant. Here are some things you can ask:

  • "What does ta.sma do?" — Claude looks up the exact function signature, parameters, and code example
  • "Help me write an RSI indicator" — Claude searches the docs, looks up ta.rsi, hline, bgcolor, and writes correct v6 code
  • "How do I add a stop loss?" — Claude finds strategy.exit examples with the right syntax
  • "What's the difference between plot and plotshape?" — Claude pulls up both references and compares them
  • "Show me how request.security works" — Claude retrieves the multi-timeframe guide topic
  • "Migrate this v5 script to v6" — Claude uses the migration guide to walk you through every change

Tools in Action

Behind the scenes, Claude has 5 tools it can call to get accurate Pine Script information. You don't call these directly — Claude picks the right one based on your question. Here's what each one does with real examples of the data they return:

pine_reference — Look up any function or variable

The go-to tool. Give it a function name and get back the full signature, parameters, description, and code example. It even resolves short names automatically.

Ask: "What does ta.rsi do?"

Claude gets back:

# ta.rsi

`ta.rsi(source, length) → series float`

## Parameters
- source (series int/float)
- length (simple int)

## Description
Relative strength index. It is calculated using the ta.rma() of upward
and downward changes of source over the last length bars.

## Example
//@version=6
indicator("ta.rsi")
plot(ta.rsi(close, 7))

## See Also
- ta.rma: Moving average used in RSI. It is the exponentially weighted
  moving average with alpha = 1 / length.

Short names work too — asking for "sma" automatically resolves:

"sma" resolves to ta.sma

# ta.sma
`ta.sma(source, length) → series float`

You can also request just the signature (format: "signature") or just code examples (format: "examples") to save tokens.


pine_search — Search all documentation by keyword

Full-text search across the entire reference manual and user guide. Results are ranked by relevance using BM25 scoring, with fuzzy matching for typos.

Ask: "Search for bollinger bands"

Claude gets back:

### Result 1 (score: 18.29, source: manual)
**ta.bbw()** — pinescriptv6_complete_reference.md

Bollinger Bands Width. The Bollinger Band Width is the difference between
the upper and the lower Bollinger Bands divided by the middle band.

### Code Example
//@version=6
indicator("ta.bbw")
plot(ta.bbw(close, 5, 4))

### Result 2 (score: 15.06, source: docs)
**Other timeframes and data** — concepts/other-timeframes-and-data.md
...

Each result includes the relevance score, source (reference manual vs. user guide), and the matching content with code blocks preserved.


pine_categories — Browse what's available

Don't know what functions exist? This tool lists all 48 categories and their entry counts, or drills into a specific category to show every function with a description.

Ask: "What categories are available?"

Claude gets back:

# Reference Categories

- adjustment (3 entries)
- alert (3 entries)
- array (56 entries)
- color (24 entries)
- input (13 entries)
- math (28 entries)
- strategy (96 entries)
- ta (67 entries)
- table (23 entries)
... (48 categories total)

Ask: "Show me the ta category"

Claude gets back:

# ta (67 entries)

- ta.accdist: Accumulation/distribution index.
- ta.alma: Arnaud Legoux Moving Average.
- ta.atr: Function atr (average true range) returns the RMA of true range.
- ta.bb: Bollinger Bands. A Bollinger Band is a technical analysis tool...
- ta.cci: The CCI (commodity channel index) is calculated as the difference...
- ta.ema: Exponential moving average...
- ta.rsi: Relative strength index...
- ta.sma: The sma function returns the moving average...
... (67 entries total)

pine_guide — Read user guide topics

Retrieves conceptual guides from the Pine Script user manual — execution model, strategies, plotting, timeframes, and more. These explain how things work, not just function signatures.

Ask: "How does the execution model work?"

Claude gets back:

# concepts > execution-model

Pine Script® relies on an event-driven, sequential execution model to
control how a script's compiled source code runs in charts, alerts,
Deep Backtesting mode, and the Pine Screener.

In contrast to the traditional execution model of most programming
languages, Pine's runtime system executes a script repeatedly on the
sequence of historical bars and realtime ticks in the dataset on which
it runs, performing separate calculations for each bar as it progresses.
...

Set listTopics: true to see all 82 available guide topics grouped by section.


pine_examples — Find code examples

Searches specifically for code blocks across all documentation. Great when you want to see how something is used in practice, not just read about it.

Ask: "Find examples of strategy stop loss"

Claude gets back:

//@version=6
strategy("My strategy", overlay = true, process_orders_on_close = true)
bracketTickSizeInput = input.int(1000, "Stoploss/Take-Profit distance (in ticks)")

longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
if (longCondition)
    limitLevel = close * 1.01
    strategy.order("My Long Entry Id", strategy.long, limit = limitLevel)
    strategy.exit("Exit", "My Long Entry Id", profit = bracketTickSizeInput, loss = bracketTickSizeInput)

Built-In Prompt Templates

These are guided workflows you can trigger. In Claude Code, type the prompt name; in Claude Desktop, they appear in the tool menu.

Prompt What It Does
write_indicator Walks you through creating a new Pine Script indicator step by step
debug_strategy Gives you a systematic checklist for finding bugs in your strategy
migrate_script Helps you convert a script from v1–v5 to the latest v6 syntax

Built-In Resources

These are reference pages Claude can pull up at any time for quick context:

Resource What It Is
pinescript://manifest A directory of everything indexed — all 48 categories, function counts, and 82 guide topics
pinescript://cheatsheet A quick-reference card with the most common Pine Script v6 syntax patterns

Troubleshooting

"command not found: node" or "npx is not recognized"

Node.js isn't installed. Download it from nodejs.org and run the installer. After installing, close and reopen your terminal, then try again.

Claude doesn't seem to have Pine Script tools

  • Claude Code: Run claude mcp list to check if pinescript appears. If not, run the install command again.
  • Claude Desktop: Make sure you fully quit and restarted the app (not just closed the window). Click the tool icon in the chat input to verify the tools are listed.

Search returns no results

  • Try shorter keywords: "sma" instead of "simple moving average calculation"
  • Common names work: "bollinger" finds ta.bb, "macd" finds ta.macd
  • Ask Claude to use pine_categories to browse what's available

Something else?

Run this command to verify the server is working:

npx pinescript-mcp-server --check

You should see output like:

Health check passed.
  Chunks: 2822
  Functions: 899
  Guide topics: 82

If that works, the server is fine — the issue is likely in how your AI tool connects to it. Check the config steps above.

Still stuck? Open an issue on GitHub.


What's Inside

This package bundles the complete Pine Script v6 documentation so Claude doesn't need to fetch anything from the internet:

  • 457 functions and 427 variables from the official language reference
  • Full user guide covering strategies, indicators, plots, drawings, and more
  • Migration guides for upgrading from older Pine Script versions
  • Smart search with fuzzy matching (handles typos) and synonym support

For Developers

If you want to contribute or run this locally:

git clone https://github.com/TradersPost/pine-mcp.git
cd pine-mcp
npm install
npm run build
npm start

Other useful commands:

npm run dev                    # Run in development mode (auto-reloads)
node dist/index.js --check     # Verify everything loads correctly
node dist/index.js --help      # See all CLI options

License

MIT — free to use, modify, and distribute.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured