parqet_add_activities
ChatGPTRecord one to 100 confirmed transactions as activities in an existing portfolio. This writes tracking data and requires portfolio:write. This tool never places orders, executes trades, transfers assets, or moves money. Call only after the user has confirmed the portfolio and final activity details. Enter shares and price exactly as traded on the activity date, never split-adjusted to today's share basis. Parqet applies stock splits and other corporate actions automatically. Example: Apple bought in 2016 must be entered at ~112 USD/share, not ~28. externalId is optional but strongly recommended because it is the deduplication key for safe retries. The API can partially accept a batch; inspect createdActivities and notCreatedActivities and never blindly retry the full batch.
parqet_create_holding
ChatGPTCreate a cash, custom, real estate, insurance, P2P, or commodity holding in an existing portfolio. This writes user data and requires portfolio:write. Call only after the user has confirmed the portfolio and final holding details. Use the returned holding ID when adding activities for the holding.
parqet_create_portfolio
ChatGPTCreate a new Parqet portfolio. This writes user data and requires portfolio:write. Call only when the user has explicitly asked to create the portfolio and has confirmed its final name. After creation, always include the clickable direct link https://app.parqet.com/p/{id} in the user-facing confirmation.
parqet_delete_activities
ChatGPTPermanently delete one to 100 activities from a portfolio. This removes tracking data, cannot be undone, and requires portfolio:write. This tool never cancels orders, reverses trades, or moves money. Look up activity IDs with parqet_get_activities, show the user exactly which activities will be deleted, and call only after the user has explicitly confirmed. Activity IDs that do not exist or do not belong to the portfolio are ignored and returned in notDeletedActivityIds.
parqet_get_activities
ChatGPTRaw paginated activities/transactions for one portfolio. Use only when detailed transaction rows are needed. If cursor is returned, call again with that cursor for the next page. Prefer parqet_get_activity_summary for aggregate questions.
parqet_get_activity_summary
ChatGPTSummarize transactions for one portfolio with automatic pagination up to maxActivities. Prefer this over parqet_get_activities for buys, sells, dividends, deposits, withdrawals, fees, brokers, and activity counts.
parqet_get_performance
ChatGPTRaw full performance payload with holdings, quotes, gains, dividends, valuation, KPIs, and netAllocations. Prefer parqet_query_portfolio unless raw nested JSON is required.
parqet_get_portfolio
ChatGPTGet metadata for one portfolio. Does not return holdings, transactions, or performance.
parqet_get_user
ChatGPTGet the authenticated Parqet user and accessible portfolio IDs. Call this first when portfolio IDs are unknown. Use permissions[].resourceId as portfolioId.
parqet_help
ChatGPTShow Parqet MCP usage instructions: domain concepts, available tools, and parameter conventions. Call this if you are unsure which parqet_* tool to use. Does not perform any API calls.
parqet_list_portfolios
ChatGPTList accessible portfolios with id, name, currency, createdAt, and distinctBrokers. Use to show portfolio names or pick portfolio IDs.
parqet_query_portfolio
ChatGPTPrimary tool for portfolio questions. Pick a view: - view="overview": value, gains, return (XIRR/TTWROR), dividends, fees, taxes, top holdings. - view="holdings": compact current positions (filter by assetType, sort by currentValue/totalGainNet/unrealizedReturnNet/realizedReturnNet/name). - view="dividends": dividend totals and dividend-paying holdings. - view="allocation": netAllocations (net, base, positive/negative totals + top contributors). Accepts a single portfolio ID or an array. Use the interval args for time-bound questions (ytd, 1y, …).