PineGap MCP Documentation

Institutional equity research tools for Claude and other MCP clients

Overview

The pinegap MCP server exposes 30+ institutional-grade equity research tools directly inside Claude and any MCP-compatible client. Connect once and get access to earnings analysis, KPI tracking, SEC filing extraction, sentiment detection, read-throughs, investment thesis management, and more — all grounded in pinegap's curated financial data and a synthesis layer built on third-party LLM providers (see our MCP Privacy Policy for which providers process tool call data).

Server URLhttps://mcp.pinegap.aiTransportStreamable HTTP (SSE fallback supported)AuthOAuth 2.1 (recommended) · API KeyRate limits60 req/min default · 10 req/min for AI synthesis tools

Prerequisites

An active PineGap account is required. Sign up at pinegap.ai or contact us for enterprise access.

How connecting works

If you use Claude or ChatGPT, you do not need any of the setup below. pinegap is published in both catalogues — as an Anthropic-verified connector in Claude's Connectors Directory, and as a plugin in ChatGPT's Plugin Directory. Search for pinegap, click install, and sign in.

For everything else, pinegap is a remote MCP server. There is nothing to install and no local bridge to run — you give your client the URL https://mcp.pinegap.ai and sign in with your pinegap account. Every tool call then runs as you, with your entitlements.

Authentication is OAuth 2.1 with WorkOS AuthKit. pinegap supports Dynamic Client Registration and Client ID Metadata Documents, so nearly every client registers itself: leave OAuth client ID and secret blank unless a client gives you no other option. Copilot Studio and Microsoft 365 Copilot are the exceptions — their redirect URLs must be registered with us up front (see below).

API keys (pgap_sk_…) remain available as a fallback for clients that cannot do OAuth. They are a shared service credential rather than a per-user login, so prefer OAuth wherever the client supports it. Contact the pinegap team to obtain a key.

Client setup

Vendor menus move often. Paths below were verified against current vendor documentation; if a label differs slightly in your build, look for the nearest equivalent.

Claude

claude.ai · Claude Desktop · Cowork · mobile

pinegap is an Anthropic-verified connector in the Claude Connectors Directory, so there is no URL to paste. Install it from the directory and Claude handles the rest. Connect once and it works across claude.ai, Claude Desktop, Cowork and mobile.

Install from the directory

  1. Go to Customize›Connectors and click + next to Connectors. From a chat you can instead click +, hover Connectors, and choose Manage connectors.
  2. Search for PineGap. It carries a checkmark marking it as verified by Anthropic.
  3. Open the listing, review the capabilities, and click Connect.
  4. Sign in with your pinegap account.

On Team plans, members who cannot manage connectors see Request instead of Connect. That sends it to your admins, who approve it from Organization settings›Connectors under Requested by your team.

Team and Enterprise — enabling it for everyone

  1. As an Owner, go to Organization settings›Connectors.
  2. Click Browse connectors at the bottom of the page.
  3. Select PineGap and click Add to your team.
  4. Members then go to Customize›Connectors and click Connect to sign in with their own pinegap account.

Using it in a chat

Open the + menu in the composer, choose Connectors, and toggle PineGap on for that conversation. Research can call pinegap tools automatically once the connector is enabled.

Adding it by URL instead

You only need this to authenticate with an API key, or if we have given you a non-standard endpoint. Go to Customize›Connectors, click + → Add custom connector, and enter https://mcp.pinegap.ai. Team and Enterprise Owners use Organization settings›Connectors → Add → Custom → Web. Leave the OAuth client fields blank.

For an API key, set Authentication to None, open Request headers, choose authorization, and enter Bearer pgap_sk_YOUR_KEY. Claude sends the value verbatim, so the word Bearer and the trailing space are required. Request headers are still gated to some organizations.

Two things that catch people out. Claude Free accounts allow only one custom connector, so pinegap has to be the one you keep — installing from the directory avoids that limit entirely. And Claude reaches pinegap from Anthropic's cloud rather than your laptop, so pinegap never belongs in claude_desktop_config.json; that file is only for local servers and is ignored by claude.ai and Cowork.

Claude Code

CLI
  1. Run the add command. Use --scope user to make pinegap available in every project instead of just the current one.
    claude mcp add --transport http --scope user \
      pinegap https://mcp.pinegap.ai
  2. Start Claude Code and run /mcp to complete the pinegap sign-in.
  3. Verify with claude mcp list.

With an API key instead:

claude mcp add --transport http --scope user \
  --header "Authorization: Bearer pgap_sk_YOUR_KEY" \
  pinegap https://mcp.pinegap.ai

ChatGPT

ChatGPT · Codex · web and desktop

pinegap is published in the ChatGPT Plugin Directory, so you can install it like any other plugin — no developer mode, and no server URL to paste. OpenAI migrated the former App Directory to the Plugin Directory in July 2026; the same catalog serves ChatGPT and Codex.

Install from the Plugin Directory

  1. Open Plugins from the ChatGPT sidebar, or go to Settings›Plugins.
  2. Search for PineGap and open its listing to review the included capabilities.
  3. Click the + button to install it.
  4. Complete the pinegap sign-in when prompted. Some plugins authenticate during install, others on first use.
  5. Start a new chat and ask ChatGPT to use pinegap, or @-mention it. The selection applies to that message rather than the whole conversation.

In managed workspaces an admin controls availability from Workspace settings›Plugins and Workspace settings›Apps. If Connect is greyed out or reads Disabled by admin, ask your workspace admin to enable it. Availability can also depend on your plan and region.

Adding it manually instead

Only needed to authenticate with an API key or to point at a non-standard endpoint. This route requires developer mode, which an admin enables at Workspace settings›Permissions & Roles›Connected Data, and which each authorized user then turns on at Settings›Apps›Advanced Settings. Create the app from Settings›Apps›Create, enter https://mcp.pinegap.ai, set authentication to OAuth, click Scan Tools, then Create. It lands as a draft in Workspace settings›Apps›Drafts for an Admin to publish. Full write-tool access on this path needs Business, Enterprise or Edu; Pro accounts get read and fetch tools only.

Worth knowing either way: pinegap advertises the offline_access scope, so ChatGPT receives a refresh token and the connection will not silently expire. Deep research can call pinegap read tools; agent mode does not use custom apps at all.

Microsoft 365 Copilot

org-wide federated connector

This path needs a registration ID issued from the Teams Developer Portal and a matching OAuth client on our side. Email support@pinegap.us before you start so we can register your tenant.

Admin

  1. Sign in to the Microsoft 365 admin center and open Copilot›Connectors.
  2. On the Gallery tab, under Created by your org, find Create a new connector and select Add.
  3. On the Custom connector page, under Connect to MCP server, select Add.
  4. Set the display name to PineGap and the base URL to https://mcp.pinegap.ai.
  5. Enter the OAuth 2.0 registration ID from the Teams Developer Portal, then select Save.

Each user

  1. Open Microsoft 365 Copilot Chat.
  2. Select the … menu, then Settings.
  3. Choose Sources, find PineGap, click Connect and complete the sign-in.

Copilot Studio

per-agent connector

Every Copilot Studio connector gets its own redirect URL, and it must be registered with pinegap before OAuth will work. Find it under make.powerapps.com›Custom Connectors›Security and send it to support@pinegap.us. We return a client ID and secret.

  1. Open your agent and go to Tools.
  2. Select Add a tool, then Model Context Protocol. In the newer Build-tab experience this is Build›Tools›Add›Model Context Protocol.
  3. Fill in server name PineGap, a description of what pinegap does, and server URL https://mcp.pinegap.ai. The description matters — the orchestrator uses it to decide when to call pinegap.
  4. Choose OAuth 2.0 and enter the client ID and secret we issued you. Alternatively choose API key, type Header, name Authorization, value Bearer pgap_sk_YOUR_KEY.
  5. Select Create, then create a connection and select Add and configure to attach it to the agent.
  6. Review the tool list on the agent's Tools tab and disable anything the agent should not call.

Cursor

IDE
  1. Open Cursor Settings›Tools & Integrations›MCP and click Add Custom MCP, or edit the config file directly at ~/.cursor/mcp.json for all projects or .cursor/mcp.json for a single repository.
  2. Add the pinegap entry:
    {
      "mcpServers": {
        "pinegap": {
          "type": "http",
          "url": "https://mcp.pinegap.ai"
        }
      }
    }
  3. Save the file and complete the pinegap sign-in when prompted.

To use an API key instead, add a headers object alongside url containing "Authorization": "Bearer pgap_sk_YOUR_KEY". Never commit a key in a project-level .cursor/mcp.json.

Gemini

Gemini app · Gemini Enterprise · Gemini CLI

Gemini app

  1. Go to gemini.google.com and open Connected Apps (under Personal Intelligence if it is not top level).
  2. Under Custom apps for Spark, click Add a custom app.
  3. Enter https://mcp.pinegap.ai, click Next, and complete the sign-in.

Custom apps require Gemini Spark access, a personal Google account, and Keep Activity switched on. They can only be added on the web, though they then work on mobile too.

Gemini Enterprise

  1. Open Connected apps›Add MCP Server.
  2. Enter https://mcp.pinegap.ai as the MCP Server URL, name it PineGap, and add a description.
  3. Click Add. Gemini Enterprise supports Streamable HTTP only, which is pinegap's default transport.

Gemini CLI

gemini mcp add --transport http --scope user \
  pinegap https://mcp.pinegap.ai

Other MCP clients

generic config · MCP Inspector

Any spec-compliant client works. Most accept a JSON block of this shape:

{
  "mcpServers": {
    "pinegap": {
      "type": "http",
      "url": "https://mcp.pinegap.ai"
    }
  }
}

Some clients spell the transport streamable-http rather than http; both refer to the same thing. A legacy SSE endpoint is available at https://mcp.pinegap.ai/sse for clients that cannot do Streamable HTTP, but it should not be your first choice.

To explore the tool surface before wiring up a client, run the MCP Inspector with npx @modelcontextprotocol/inspector, enter https://mcp.pinegap.ai, complete the OAuth login, and run test calls against the raw responses.

Tool Reference

Extraction(5 tools)

Structured data extracted from SEC filings (10-K, 10-Q, DEF-14A) and primer deep-dives.

management-compensation-driversManagement Compensation Driversread-only

Extracts the performance drivers and explicit weightings that determine executive incentive pay — not the dollar amounts — from the latest proxy filing (falling back to 20-F/Annual Report). Produces a concise markdown summary separating short-term vs long-term incentive drivers for named executive officers, grounded solely in filing text, and can include the prior fiscal year for comparison.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
includePriorYearbooleannoInclude prior fiscal year for comparison (default: true)

Output

ticker, latestYear, priorYear, content (markdown report of short-term vs long-term incentive drivers and weights).

primerPrimer Dataread-only

Retrieves the latest primer sections for a company — a deep-dive structured overview covering business model, segments, competitive dynamics, and financial framework. By default it returns all available sections; pass a list of section types via sections to scope the response for token-bounded retrieval across multiple calls.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
sectionsstring[]noPrimer section types to return (e.g. BUSINESS_MODEL, RISKS, COMPETITORS); omit for all.

Output

ticker, data[] { orderingIndex, type, heading, data, stock }, isPrimerGenerating.

quality-of-earningsQuality of Earningsread-only

Scores earnings quality risk across six accounting dimensions using the most recent 10-K or 10-Q (falling back to 20-F/Annual Report), returning a per-flag status and filing-specific evidence for each raised risk. The six dimensions are revenue-recognition policy changes, disproportionate contract-asset growth, rising DSOs / slower collections, changes in significant accounting judgments and assumptions, aggressive cost capitalization, and non-GAAP creep. Each flag carries a prior-period comparison to distinguish new, persistent, and resolved risks.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker

Output

ticker, documentType, documentId, year, quarter/half, analysisDate, source, flags[] { flagName, currentQuarterStatus, previousQuarterStatus, analysis }, quarterlyFlags[].

red-flag-financialFinancial Red Flagsread-only

Flags financial and accounting risks from the latest 10-K/10-Q — including liquidity stress, earnings-quality issues, aggressive accounting or non-GAAP adjustments, control weaknesses, covenant pressure, and balance-sheet impairment triggers.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker

Output

scope: 'financial', source, documentType, redFlags[] { flag, severity, evidence, citations[] }.

red-flag-governanceGovernance Red Flagsread-only

Surfaces corporate governance and shareholder-rights red flags from proxy disclosures (DEF-14A) — board independence/oversight issues, problematic pay practices, related-party transactions, weak say-on-pay signals, and anti-shareholder provisions.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
allowAnnualFallbackbooleannoAllow annual/20-F fallback when no DEF-14A

Output

scope: 'governance', source, ticker, documentId, documentType, analysisDate, year, quarter/half, redFlags[] { flagName, currentQuarterStatus, previousQuarterStatus, analysis, flagCategory, flagHeadingName }, quarterlyRedFlags[].

Research(1 tools)

Stock performance attribution powered by earnings context and return data.

performance-attributionPerformance Attributionread-only

Generates a portfolio-style attribution paragraph explaining why a stock outperformed or underperformed over a selected period, incorporating earnings transcript context and quantitative return data.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
periodstringnoStandard period (YTD | 1M | 3M | 6M | 1Y) or custom start/end dates

Output

ticker, period, return (%), content (attribution paragraph).

Retrieval(13 tools)

Read-only access to market data, earnings analysis, SEC filings, KPIs, and financial metrics.

company-profileCompany Profileread-only

Fetches key company profile fields for a ticker — market cap, currency, 52-week range, IPO date, geography, beta, and average volume from the market data provider.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker

Output

found, ticker, symbol, marketCap, currency, range, ipoDate, city, state, country, lastDividend, beta, avgVolume, message.

conference-recapConference Recapread-only

Retrieves conference and investor-day-style document summaries for the inter-quarter window following a specified earnings period. The window starts on that period's earnings call release date and ends at the next earnings call. Pass generate:true to enqueue summaries for documents in the window that don't have one yet.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
yearnumbernoFiscal year
quarternumbernoQuarter (1–4)
halfnumbernoHalf (1–2)
generatebooleannoEnqueue missing summaries (default: false)

Output

ticker, basePeriod, startDate, endDate, conferenceRecap[] { title, releaseDate, type, summary, citations[] }, investorDayRecap[] { title, releaseDate, executiveSummary, keyDebates[] }, message.

conference-takeawaysConference Takeawaysread-only

Retrieves short AI-generated takeaways (one paragraph per conference) for investor/analyst conferences that occurred after a specified earnings call. The window opens on the earnings call release date and has no upper bound, so older periods may bleed across multiple subsequent quarters.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
yearnumbernoFiscal year (defaults to latest)
quarternumbernoQuarter (1–4)
halfnumbernoHalf (1–2)
documentIdnumbernoBypass period resolution with a specific earnings call document ID
maxResultsnumbernoLimit number of takeaways returned

Output

ticker, period, earningsDocumentId, conferences[] { documentId, releaseDate, title, year, quarter, half, conferenceTakeaway }, message.

earnings-price-reactionsEarnings Day Price Reactionsread-only

Returns the historical earnings-day stock-price reaction table — 1-day and 5-day post-earnings price moves for recent fiscal periods, ordered most-recent-first. Reaction and surprise values are null when no genuine data exists for a period; nothing is fabricated. found is true only when the ticker resolved and at least one reaction is available.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker

Output

found, ticker, reactions[] { quarter, reportedDate, earningsDate, marketStatus, oneDayReactionPct, fiveDayReactionPct, revenueSurprisePct, epsSurprisePct, ebitdaSurprisePct } (null where unavailable), implied, message.

fetch-documentFetch Company Documentread-only

Retrieves a company document's full text — earnings call transcripts, press releases, 10-K/10-Q, 8-K, and SEC filings (Form 3/4/5/13F). Call either by documentIds (exact stored documents, re-openable from citation IDs) or by ticker + documentTypes with optional periods. A single document returns paginatable content; several return a documents[] array. deliveryMode defaults to content; viewer and download return a URL only (no text).

Inputs

ParameterTypeRequiredDescription
documentIdsnumber[]noPinegap document IDs; cannot combine with ticker/documentTypes/periods
tickerstringnoStock ticker (use with documentTypes)
documentTypesstring[]noOne or more document types to fetch
periodsobjectnoArray of fiscal periods { year, quarter?, half? }; omit for the latest of each type
pagenumbernoPage for a single document (default: 1)
paginatebooleannoSingle-document paging; false returns full text (default: true)
deliveryModestringnocontent | viewer | download (default: content)

Output

mode (content | content_batch | viewer_link | download_link), metadata { documentsCount, documents[] }, content, documents[], truncated, pagination, notFound[], failures[], viewer, download, message.

guidanceManagement Guidanceread-only

Advanced guidance extraction that captures all forward-looking statements from management across earnings calls — from precise quantitative targets (revenue, EPS, margins) to qualitative directional commentary — for one or more tickers at once. Classifies each item as RAISED, LOWERED, MAINTAINED, or NEW. Pass generate:true to enqueue extraction when none is stored.

Inputs

ParameterTypeRequiredDescription
tickersstring[]yesStock tickers to fetch data for
yearnumbernoFiscal year (defaults to latest per ticker)
quarternumbernoQuarter (1–4)
halfnumbernoHalf (1–2)
generatebooleannoEnqueue extraction when none is stored (default: false)

Output

results[] { ticker, period, guidance[] { metric, value, period, outcome, commentary, verdict, citations[] }, status, message }, message.

key-debatesKey Debatesread-only

Retrieves the most discussed topics and key debates from earnings calls, for one or more tickers at once — the themes management and analysts focused on, surfaced through frequency analysis and importance weighting. Each debate summary embeds inline [n] citation markers linking to the source text.

Inputs

ParameterTypeRequiredDescription
tickersstring[]yesStock tickers to fetch data for
yearnumbernoFiscal year (defaults to latest per ticker)
quarternumbernoQuarter (1–4)
halfnumbernoHalf (1–2)

Output

results[] { ticker, period, keyDebates[] { topic, summary, tag, citations[] { index, documentId, quote, doc_type, doc_date, link } }, renderHints, status, message }, message.

latest-periodLatest Fiscal Periodread-only

Returns fiscal period information for a ticker. In latest mode (no year supplied) it returns the most recent period for which content is available. In exists mode (year + quarter/half supplied) it confirms whether a document exists for that specific period. Defaults to earnings calls; pass documentType for another type.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
documentTypestringnoDocument type to resolve (defaults to Earnings call; many types supported)
yearnumbernoFiscal year to check
quarternumbernoQuarter (1–4)
halfnumbernoHalf (1–2) for semi-annual reporters

Output

ticker, documentType, mode (latest | exists), exists, period { year, quarter, half, periodString }, document { id, title, releaseDate }, message.

podcastPodcast Intelligenceread-only

Unified access to investment-focused podcasts — browse podcasts and episodes, fetch transcripts (JSON or text), retrieve AI-extracted equity insights, and scan one or more tickers for mentions across episodes. The mode field selects the operation.

Inputs

ParameterTypeRequiredDescription
modestringyeslist-podcasts | list-episodes | get-episode | get-transcript | get-insights | ticker-mentions
podcastIdnumbernoRequired for episode/transcript/insight modes
episodeIdnumbernoRequired for get-episode, get-transcript, get-insights
tickerstringnoSingle ticker for ticker-mentions
tickersstring[]noMultiple tickers to scan in one ticker-mentions call
startDatestringnoISO date; defaults to last 30 days for ticker-mentions
endDatestringnoISO date (inclusive)
transcriptFormatstringnojson | text (default: json)
includeRawAnalysisbooleannoInclude raw tagged analysis text (default: false)

Output

mode, podcasts[], episodes[], episode, executiveSummary, fullAnalysis, topics[], insights[], transcriptItems[] or transcriptText, tickerMentions[], metadata, message.

readthroughsRead-Throughsread-only

Returns quotes from other companies' recent earnings calls and press releases that mention or link to a target ticker. Each read-through includes inferred impact direction and relationship context — useful for building a mosaic across the value chain.

Inputs

ParameterTypeRequiredDescription
tickerstringyesTarget ticker
lookBackDaysnumbernoDays to look back (default: 30)
sourceSectorsstring[]noFilter by source company sector
sourceMarketsstring[]noFilter by source market
sourceMarketCapstringnoLargeCap | MidCap | SmallCap
targetKindsstring[]nocustomer | supplier | competitor | partner

Output

ticker, filters, count, data[] { readthroughOrder, classification, topic, quote, citations[] }.

risksRisk Factorsread-only

Returns risk factors from a company's 10-K/10-Q filing. Mode 'new' returns risks classified as NEW or UPDATED in the specified filing. Mode 'active' returns the full active risk set through the resolved filing.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
modestringyesnew | active
yearnumbernoFiscal year (defaults to latest)
quarternumbernoQuarter (1–4)
documentIdnumbernoSpecific 10-K/10-Q document ID

Output

ticker, mode, period, documentId, count, risks[] { title, description, summary, category, severity, status }.

stock-lookupStock Lookupread-only

Retrieves stock information by ticker symbol, Bloomberg ticker, Nasdaq ticker, or company name. Returns company metadata including ID, name, exchange, country, sector/industry classification, reporting frequency, and external data-provider identifiers. Ticker lookup tries an exact match then suffixed variants (e.g. MND_US); name search is fuzzy. Use it first to verify a ticker before calling other tools.

Inputs

ParameterTypeRequiredDescription
tickerstringnoExchange ticker (e.g. AAPL)
bloombergTickerstringnoBloomberg ticker
nasdaqTickerstringnoNasdaq ticker
namestringnoCompany name (fuzzy search)

Output

found, ticker/bloombergTicker/nasdaqTicker/query (echo of the term used), stock (single exact match) or stocks[] with count (name search / suffix fallback), message.

value-chainValue Chainread-only

Retrieves the ordered value-chain peer list for a ticker — the related companies (customers, suppliers, competitors, partners) as configured in pinegap for the authenticated user.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker

Output

ticker, topologyId, count, members[] { ticker, name, orderingIndex, type, subType, metadata }.

Synthesis(8 tools)

AI-powered analysis generated fresh from earnings transcripts, SEC filings, and financial data. These tools call third-party LLM providers (see the MCP Privacy Policy) and are rate-limited to 10 req/min.

competitive-landscapeCompetitive Landscaperead-only

Generates a competitor identification and competitive landscape analysis from the latest 10-K/20-F filings. Covers market position, key differentiators, and competitive dynamics.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker

Output

ticker, content (markdown competitive landscape analysis).

executive-biosExecutive Profilesread-only

Generates detailed profiles for the C-Suite leadership team — synthesizing proxy statements, 8-K filings, and web research for background, tenure, and prior roles.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker

Output

ticker, summary (leadership team overview), data (executive and board profiles).

management-followupManagement Follow-Up Questionsread-only

Fetches management follow-up questions for the latest earnings call, grouped by thematic section (financial performance, operations, strategy, etc.). Useful for preparing for management meetings or building a monitoring framework.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker

Output

ticker, documentId, content (markdown follow-up questions grouped by section), year, quarter, half, documentType.

operating-metrics-commentaryOperating Metrics Commentaryread-only

Pulls verbatim management quotes from a single source document — the latest earnings call transcript, or the latest press release as a fallback — organised into 12 operational categories such as volume, pricing, retention, sales efficiency, capital allocation, and forward indicators. Every bullet is a direct excerpt; nothing is paraphrased or generated.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
yearnumbernoFiscal year
quarternumbernoQuarter
halfnumbernoHalf

Output

ticker, period, year, quarter, half, content (markdown with 12 bolded section headings of verbatim quotes), documentId, sourceDocumentType.

proxy-reviewProxy Reviewread-only

Generates a markdown proxy review covering board oversight and composition, ownership and voting control, executive compensation structure and performance linkage, and notable shareholder proposals. Grounded solely in DEF-14A filing text.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker
allowAnnualFallbackbooleannoFall back to 20-F/Annual Report if no DEF-14A (default: false)

Output

ticker, documentId, documentTypeUsed, content (markdown proxy review).

proxy-votingProxy Voting Mattersread-only

Summarizes the voting matters in a company's latest DEF 14A proxy statement — each proposal and the board's own stated position on it — for research. This is descriptive: it does not recommend how to vote and returns no AI vote recommendation.

Inputs

ParameterTypeRequiredDescription
tickerstringyesStock ticker

Output

ticker, documentId, eventDate, resultJson (per-proposal summary: proposal text, the board's stated position, and any web sources used — no recommended vote).

sentiment-analysisSentiment Analysisread-only

Tracks how management sentiment around specific keywords shifts across consecutive earnings calls, for one or more tickers at once. Compares the current and previous periods to surface changes in tone, emphasis, confidence, and language, with verbatim supporting excerpts. Omit keywords to return each ticker's stored curated keyword set.

Inputs

ParameterTypeRequiredDescription
tickersstring[]yesStock tickers to analyze sentiment for
keywordsstring[]noKeywords to track across the tickers; omit to fetch each ticker's curated keyword set
yearnumbernoFiscal year
quarternumbernoQuarter
halfnumbernoHalf
generatebooleannoGenerate keywords not yet stored in the background (default: true); set false to only look up stored sentiment

Output

results[] { ticker, period, status, sentimentByKeyword{} (change, managementConfidence, managementLanguage, changeReason with citations), pendingKeywords[], missingKeywords[], keywordSources }, message.

unusual-disclosureUnusual Disclosureread-only

Detects unusual, novel, escalated, or suppressed management disclosures by comparing the latest earnings call or press release against prior periods, for one or more tickers at once. An AI pass surfaces disclosures that are newly added, escalated, withdrawn, or downgraded.

Inputs

ParameterTypeRequiredDescription
tickersstring[]yesStock tickers to analyze
documentTypesstring[]noSource document types (Earnings call, Press Release). Omit to analyze whichever is most recent (one row per ticker); provide one or both for a row per ticker per type

Output

results[] { ticker, status, eventDate, documentType, period, resultJson { new_and_escalated[], withdrawn_and_suppressed[], disclosure_balance_assessment }, message }.

System(1 tools)

Server diagnostics and connectivity verification.

healthHealth Checkread-only

Verifies the MCP server is running and its database connection is active. Use to diagnose connectivity issues before making other requests.

Output

status (ok | degraded | error), dbConnected, timestamp, version.

Watchlists(4 tools)

Create and manage saved watchlists of tickers.

watchlist-createCreate Watchlistwrite

Creates a new watchlist for the current user with an optional initial set of tickers. When enableNotifications is true, all supported stock-level notifications are turned on for each added ticker.

Inputs

ParameterTypeRequiredDescription
namestringyesWatchlist name (1–255 characters)
enableNotificationsbooleannoEnable all supported stock-level notifications for each added ticker (default: false)
tickersstring[]noInitial tickers to add

Output

watchlist { id, name, tickers[] }, created.

watchlist-listList Watchlistsread-only

Returns all watchlists for the current user. Optionally supply documentTypes to enrich each ticker with the latest release date for the selected document types.

Inputs

ParameterTypeRequiredDescription
documentTypesstring[]noOptional multi-select list of document types; when provided, each ticker is returned with its latest release date per type

Output

watchlists[] { id, name, tickers[] }, count. When documentTypes is supplied, each ticker becomes an object with ticker and latestReleaseDates.

watchlist-updateUpdate Watchlistwrite

Updates an existing watchlist's name and/or ticker list for the current user. Supplying tickers replaces the entire existing ticker list.

Inputs

ParameterTypeRequiredDescription
watchlistIdnumberyesWatchlist ID from watchlist-list
namestringnoNew name for the watchlist (1–255 characters)
tickersstring[]noNew full ticker list (replaces existing)

Output

watchlist { id, name, tickers[] }, updated.

watchlist-deleteDelete Watchlistwrite

Deletes one of the current user's watchlists, removing it and its stocks from all views. The default watchlist and agent-managed watchlists cannot be deleted, and a watchlist that does not exist or belongs to another user returns a not-found error.

Inputs

ParameterTypeRequiredDescription
watchlistIdnumberyesID of the watchlist to delete

Output

watchlistId, deleted.

Error Codes

All errors follow a standard envelope: { error: true, code: string, message: string }

CodeDescription
VALIDATION_ERROROne or more input fields failed validation
MISSING_REQUIRED_FIELDA required input field was not provided
INVALID_FIELD_VALUEA field value is outside the allowed range or format
CONFLICTING_PARAMETERSTwo supplied parameters are mutually exclusive
NOT_FOUNDThe requested resource could not be found
STOCK_NOT_FOUNDNo stock matching the supplied ticker or name was found
DOCUMENT_NOT_FOUNDThe requested document does not exist in pinegap's database
PERIOD_NOT_FOUNDNo data exists for the specified fiscal period
EXTERNAL_SERVICE_ERRORUpstream data provider returned an error
DATABASE_ERRORInternal database query failed
AI_SERVICE_ERRORLLM or AI synthesis step failed
S3_ERRORFile storage retrieval failed
RATE_LIMITEDRequest rate limit exceeded — retry after the indicated delay
INTERNAL_ERRORUnexpected server error
UNKNOWN_ERRORAn unclassified error occurred

Troubleshooting

ProblemFix
Can't sign in after OAuth redirectEnsure your account is active on app.pinegap.ai
401 UnauthorizedToken missing, expired, or malformed — re-authenticate
403 ForbiddenAccount not recognised — contact support@pinegap.us
RATE_LIMITED errorAI synthesis tools cap at 10 req/min. Wait and retry.
STOCK_NOT_FOUND for a valid tickerTry stock-lookup first to verify the exact ticker in pinegap's database
DOCUMENT_NOT_FOUNDUse latest-period to confirm the period exists before calling document tools
Connector added but no tools show upIn ChatGPT the app stays a draft until an Admin publishes it. In Claude, enable the connector for the conversation from the + menu.
New pinegap tools missing in ChatGPTChatGPT freezes the tool list at publish time — an Admin must click Refresh in Workspace settings › Apps
API key rejected in a Claude request headerClaude sends the value verbatim — the header value must be Bearer pgap_sk_…, including the word Bearer and the space
Connection fails only on an IP-restricted accountClaude and ChatGPT call pinegap from their own cloud egress ranges, not your device. Contact support to have them allowlisted.

Support

Questions or access issues? Email support@pinegap.us.

MCP Privacy Policy

Home
Overview
Primer
Valuation
Proxy Review
Risk Tracker
Compare Grid
Historical Comps
Peer Comps
Earnings
Key Debates
Earnings Recap
Guidance
Earning Preview
Sentiment
Readthroughs
Documents
Conferences
Conference Recap
Mgmt Followup Qs
Documents
SocialNew
Podcast
Twitter
Reddit
Substack
Fund LettersNew
Documents
Thesis
Thesis Dashboard
Watchlist
Companies
Topics
More
Company Settings
Events Calendar
Data Connectors
Privacy Policy
Contact Us