portfoliq-mcp
v0.4.0
Published
Model Context Protocol server for PortfolIQ — lets ChatGPT, Claude Desktop, and other MCP-compatible AI clients access a user's portfolio through their personal API key.
Downloads
503
Maintainers
Readme
portfoliq-mcp
Model Context Protocol server that lets any MCP-compatible AI client (Claude Desktop, ChatGPT with MCP, Codex, etc.) access a PortfolIQ account through a personal API key.
Setup
Sign in to https://portfoliq.app, open Account → API access, and click New key. Give it a name (e.g.
Claude Desktop), pick the scopes you want (read is always included; checkwrite:transactions,write:plans, orwrite:portfoliosonly if you want the agent to make those changes for you), and copy the token. It is shown only once.Install the server (from the repo root):
cd packages/portfoliq-mcp npm installAdd it to your MCP client config.
Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.json):{ "mcpServers": { "portfoliq": { "command": "node", "args": ["/absolute/path/to/dashboard/packages/portfoliq-mcp/src/index.js"], "env": { "PORTFOLIQ_API_KEY": "piq_live_your_token_here", "PORTFOLIQ_API_URL": "https://portfoliq.app" } } } }
Tools exposed
| Tool | Scope | Description |
| --- | --- | --- |
| get_summary | read | Portfolio totals + day change |
| get_holdings | read | Per-ticker holdings + market values |
| list_portfolios | read | Portfolios (id, name, currency) |
| create_portfolio | write:portfolios | Create a USD or ILS portfolio |
| update_portfolio | write:portfolios | Update portfolio settings |
| reorder_portfolios | write:portfolios | Set the complete portfolio order |
| delete_portfolio | write:portfolios | Delete a portfolio and its transactions |
| list_transactions | read | Paginated transaction history |
| get_analytics | read | Realised-P/L analytics with date range |
| get_portfolio_metrics | read | YTD, annual-return, and beta metrics |
| get_trading_calendar | read | Monthly realised P/L and trading activity |
| get_pl_history | read | Daily P/L series for the graph |
| list_strategies | read | List owned strategies and metrics |
| get_strategy_trades | read | Transactions assigned to an owned strategy |
| list_marketplace_strategies | read | List public marketplace strategies |
| list_position_plans | read | Position plans |
| get_position_plan_insights | read | Review attention, final-review tasks, and historical lessons |
| list_position_plan_reviews | read | Immutable review history for a plan |
| add_transaction | write:transactions | Record a buy or sell |
| update_transaction | write:transactions | Correct a transaction |
| delete_transaction | write:transactions | Delete a transaction |
| create_strategy | write:plans | Create an owned strategy |
| update_strategy | write:plans | Update an owned strategy |
| delete_strategy | write:plans | Delete and unlink an owned strategy |
| import_marketplace_strategy | write:plans | Import a public strategy as a private copy |
| create_position_plan | write:plans | Create a plan for a portfolio position |
| update_position_plan | write:plans | Update current plan fields without creating a review |
| assign_strategy_to_position | write:plans | Assign or unassign a strategy on a plan |
| review_position_plan | write:plans | Append an immutable deliberate review |
| delete_position_plan | write:plans | Delete a plan and its review history |
Environment
| Variable | Required | Default | Purpose |
| --- | --- | --- | --- |
| PORTFOLIQ_API_KEY | yes | — | Personal API key from Account → API access |
| PORTFOLIQ_API_URL | no | https://portfoliq.app | For self-hosted or local instances |
Rate limit
Personal keys are limited to 120 requests per minute on the server side.
A 429 response includes Retry-After in seconds.
Security
- The token is stored only in your MCP client config — never send it to anyone else.
- Revoke a key from Account → API access at any time; it stops working within ~30 seconds.
- Keys never grant access to account settings, admin routes, sign-in methods, or notifications.
