Skip to main content
Glama
Porticific MCP Server

Porticific MCP Server

by jin-codes

porticific

English · 한국어

A portfolio journal as a service: record why you bought each holding, check that thesis every day, and see live prices — from a web UI or from any MCP client (Claude Desktop, Claude.ai, Claude Code).

Personal journal tool, not investment advice. See Disclaimer.

porticific landing page

porticific features

Features

  • Web UI — dashboard, per-stock page (thesis, analysis history, price chart, trades), watchlist, trades, settings

  • MCP server — /api/mcp, 34 tools to read the portfolio and edit it (record buys/sells, thesis and thesis claims, watchlist, tags, DCA plans). OAuth (Claude.ai connectors) or API key

  • Thesis tracking — split a buy thesis into checkable claims and track holding / weakened / broken over time

  • Daily analysis — a signal and reasoning per ticker against the buy thesis and the previous day's analysis, then a portfolio summary and a watchlist top pick (on demand for chosen tickers; runs on the caller's own Anthropic key saved encrypted in Settings, or by their own Claude via analysis_context + save_analysis; the server ANTHROPIC_API_KEY is used only for the owner account and the weekly thesis check, needs KEY_ENCRYPTION_SECRET for saved keys)

  • Email digest — opt-in alerts for signal changes and upcoming events

  • Security model — every per-user table has user_id + RLS with an owner SELECT policy and no write policies. All writes go through the server after the caller is verified. Buy/sell are atomic SQL functions only the service role can run

Related MCP server: Trading Journal MCP

Stack

Next.js (App Router, TypeScript) · Supabase (Postgres, Auth, RLS) · Google OAuth · Anthropic API · deployable on Vercel

Setup

cp .env.local.example .env.local   # fill in the values
npm install
npm run dev
  1. Create a Supabase project and apply supabase/migrations/ in order (CLI: supabase db push).

  2. Enable the Google provider in Supabase Auth. Add http://localhost:3000/auth/callback (and your production URL) to the allowed redirect URLs, and add https://<ref>.supabase.co/auth/v1/callback to the Google OAuth client.

  3. Sign in once, then (optionally) turn off new sign-ups in Supabase Auth while it is single-user.

Deploy (Vercel)

  • Import the repo and set the env vars from .env.local.example (including CRON_SECRET, which Vercel sends to the cron routes).

  • vercel.json schedules /api/cron/prices on weekdays after the US close (no automatic daily analysis), /api/cron/thesis-check on Saturdays, and /api/cron/alerts daily (email digest, opt-in per user in Settings; needs ALERT_SMTP_USER / ALERT_SMTP_PASS). Vercel Hobby only allows daily crons.

  • For intraday prices every 10 minutes, set the repo secrets SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY; .github/workflows/fetch-prices.yml then runs scripts/fetch_prices.py.

  • Set NEXT_PUBLIC_SITE_URL to the production origin (shown on the settings page).

Connect Claude

  • Claude.ai / Claude Desktop connector: add a custom connector with https://<your-domain>/api/mcp. It signs in with Google and shows a consent screen.

  • API key: create one in Settings, then

    claude mcp add --transport http porticific https://<your-domain>/api/mcp \
      --header "Authorization: Bearer prt_..."

Develop

npm run lint && npm run typecheck && npm test && npm run build

Business logic lives in src/lib/ and is shared by the UI server actions and the MCP tools. See CLAUDE.md for conventions. Schema changes go in a new file under supabase/migrations/ (never edit an applied one).

License / disclaimer

MIT, see LICENSE. Nothing here is investment advice, and prices may be delayed or inaccurate. Bring your own Supabase project and API keys: this repo ships with no credentials.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    This MCP server provides authentication via wallet sign-in (SIWE) and authorization with scoped access to read and trade portfolios, enabling secure portfolio management through natural language.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables portfolio and trade journaling by tracking accounts, holdings, manual trades, open and closed positions, realized and unrealized P&L, and trade reasons through discoverable MCP tools, resources, and prompts.
    1
    -
  • A
    license
    B
    quality
    B
    maintenance
    Gives MCP clients tools to discover tokenized Stock Tokens, read prices, corporate actions, and portfolio balances, and create route quotes. It prepares policy-checked trade plans with an explainable verdict and unsigned transactions for the user's wallet to sign.
    8
    231 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants in MCP clients to query real-time market data, inspect portfolio and Web3 wallet balances across brokers, place protected equity/ETF, crypto, forex, options, DeFi swap, and prediction market orders, and run backtests.
    MIT