protogrid

Search / io.github.paulieb89/pinescript-mcp

Pine Script v6 Documentation

R0· no sign-in

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

v0.6.17 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality88good
Trust86of 100
Uptime, 30 days100%
Latency p50269 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "pinescript-mcp": {
      "type": "http",
      "url": "https://pinescript-mcp.fly.dev/mcp"
    }
  }
}
claude mcp add --transport http pinescript-mcp https://pinescript-mcp.fly.dev/mcp
[mcp_servers.pinescript-mcp]
url = "https://pinescript-mcp.fly.dev/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pinescript-mcp": {
      "type": "remote",
      "url": "https://pinescript-mcp.fly.dev/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "pinescript-mcp": {
      "type": "http",
      "url": "https://pinescript-mcp.fly.dev/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=pinescript-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcGluZXNjcmlwdC1tY3AuZmx5LmRldi9tY3AifQ%3D%3D"
}
{
  "servers": {
    "pinescript-mcp": {
      "type": "http",
      "url": "https://pinescript-mcp.fly.dev/mcp"
    }
  }
}
{
  "mcpServers": {
    "pinescript-mcp": {
      "httpUrl": "https://pinescript-mcp.fly.dev/mcp"
    }
  }
}
extensions:
  "pinescript-mcp":
    enabled: true
    name: "pinescript-mcp"
    type: streamable_http
    uri: "https://pinescript-mcp.fly.dev/mcp"
    timeout: 300

Quality 88 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations8 of 10 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_prompt (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_section (destructiveHint); get_functions (destructiveHint); …
  • pass
    tools.token_costabout 1,652 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependencies100 · weight 15
  • pass
    deps.known_vulnsno known advisory in 72 resolved packages
  • pass
    deps.mcp_sdk_versionmcp 2.2.0, no known advisory
  • pass
    deps.resolvable[email protected] resolved: 72 packages

10 tools, about 1,652 tokens to load them all · tool set a57bd246ad22 · checked 2026-10-20 12:13 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 86 / 100

provenance90
liveness100
freshness45
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% -stale-199d

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] PyPI71 dependencies, resolved · MCP SDK mcp 2.2.0 · advisories checked 2026-10-19

No known advisory affects this dependency graph.

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://pinescript-mcp.fly.dev/mcp streamable-httpnoneyes100%269 ms2025-11-252026-10-20
https://pinescript-mcp.fly.dev/sse sseunknownno (13 failures)0%–––
packageregistryversionruntimesecrets
pinescript-mcppypi0.6.17uvx

Tools (10)

get_docread-onlyUSE 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.
get_functionsread-onlyUSE 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.
get_promptGet 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_sectionread-onlyUSE 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.
list_docsread-onlyUSE 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.
list_promptsList all available prompts. Returns JSON with prompt metadata including name, description, and optional arguments.
list_sectionsread-onlyUSE 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.
resolve_topicread-onlyUSE 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.
search_docsread-onlyUSE 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.
validate_functionread-onlyUSE 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.

Schemas: list_tools.

Similar MCP servers

More from io.github.paulieb89

Official server.json
{
  "name": "io.github.paulieb89/pinescript-mcp",
  "title": "Pine Script v6 Documentation",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://pinescript-mcp.fly.dev/mcp",
      "type": "streamable-http"
    },
    {
      "url": "https://pinescript-mcp.fly.dev/sse",
      "type": "sse"
    }
  ],
  "version": "0.6.17",
  "packages": [
    {
      "version": "0.6.17",
      "transport": {
        "type": "stdio"
      },
      "identifier": "pinescript-mcp",
      "runtimeHint": "uvx",
      "registryType": "pypi"
    }
  ],
  "repository": {
    "url": "https://github.com/paulieb89/pinescript-mcp",
    "source": "github"
  },
  "websiteUrl": "https://bouch.dev",
  "description": "Pine Script v6 documentation lookup, function validation, and linting for AI code generation"
}