Local Stock Analyst MCP (stdio)

Local TypeScript MCP server for Claude Desktop that exposes stock-analysis tools using:

  • Finnhub as the primary provider
  • Alpha Vantage as fallback
  • local indicator calculation fallback for RSI and MACD

The server supports:

  • stdio mode for local Claude Desktop integration (default)
  • HTTP mode for cloud hosting (for example, Render)

Tools

  • get_stock_price
  • get_quote
  • get_company_profile
  • get_candles
  • get_stock_news
  • get_rsi
  • get_macd
  • get_key_financials

Each tool validates input with zod, formats output consistently, and includes an informational disclaimer.

Requirements

  • Node.js 20.x (recommended for Render stability)
  • npm
  • API key for at least one provider:
    • Finnhub: FINNHUB_API_KEY
    • Alpha Vantage: ALPHAVANTAGE_API_KEY

Setup

  1. Install dependencies:
npm install
  1. Create env file from template:
copy .env.example .env
  1. Add your API keys to .env.

Build and Run

Build:

npm run build

Start locally (stdio MCP mode):

npm start

Start in HTTP mode (Render-style):

set MCP_TRANSPORT=http
set PORT=3000
npm start

HTTP endpoints:

  • MCP endpoint: /mcp
  • health check: /healthz

Claude Desktop (Windows) Configuration

Open your Claude Desktop config file:

  • %APPDATA%\Claude\claude_desktop_config.json

Add/update:

{
  "mcpServers": {
    "local-stock-analyst": {
      "command": "node",
      "args": ["D:/mcpserverdemo/mcplocalstock/build/index.js"],
      "env": {
        "FINNHUB_API_KEY": "YOUR_FINNHUB_KEY",
        "ALPHAVANTAGE_API_KEY": "YOUR_ALPHA_VANTAGE_KEY"
      }
    }
  }
}

Notes:

  • Use absolute paths in args.
  • Forward slashes are safe on Windows JSON paths.
  • Restart Claude Desktop after saving config.

Deploy on Render

Use a Web Service deployment.

  1. Push this project to GitHub.
  2. In Render, create a new Web Service from your repo.
  3. Configure:
    • Build Command: npm install && npm run build
    • Start Command: npm start
  4. Add environment variables:
    • MCP_TRANSPORT=http
    • FINNHUB_API_KEY=... (optional but recommended)
    • ALPHAVANTAGE_API_KEY=... (optional fallback)
    • PORT is auto-provided by Render.
  5. Deploy.

After deploy, verify:

  • https://<your-service>.onrender.com/healthz returns {"status":"ok"}
  • MCP server endpoint is https://<your-service>.onrender.com/mcp

Quick Test Prompts in Claude

  • "Call get_stock_price for MSFT."
  • "Call get_candles for MSFT, interval D, from 1704067200, to 1735689600, limit 5."
  • "Call get_rsi for MSFT, interval D, from 1704067200, to 1735689600."

Troubleshooting

  • No tools visible in Claude
    • Check JSON validity of claude_desktop_config.json.
    • Confirm build/index.js exists (npm run build).
    • Fully restart Claude Desktop.
  • Auth errors
    • Verify API keys in config env or local .env.
  • Rate-limit errors
    • Retry later, reduce call frequency, or use higher-tier keys.
    • The server automatically attempts Alpha Vantage fallback after Finnhub failures.

Logs

  • Claude Desktop logs are usually in %APPDATA%\Claude\logs.
  • Server startup/errors are written to stderr by the MCP process.

MCP Server · Populars

MCP Server · New

    snyk

    mcp-scan

    Security scanner for AI agents, MCP servers and agent skills.

    Community snyk
    resend

    Email sending MCP 💌

    The official MCP server to send emails and interact with Resend

    Community resend
    screenpipe

    [ screenpipe ]

    screenpipe turns your computer into a personal AI that knows everything you've done. record. search. automate. all local, all private, all yours.

    Community screenpipe
    screenpipe

    [ screenpipe ]

    screenpipe turns your computer into a personal AI that knows everything you've done. record. search. automate. all local, all private, all yours.

    Community screenpipe
    kfastov

    tgcli

    Telegram user console client and archiver

    Community kfastov