Connect to the remote MCP server
PortfolioFit v2 exposes mandate checks plus owner-scoped historical portfolio analytics through a secure, remote Streamable HTTP MCP server. Use the v2 endpoint in compatible clients:
https://portfolio.fit/mcp/v2
Your client opens PortfolioFit in a browser so you can sign in and approve access. Do not paste your PortfolioFit password, an access token, or an API key into the client configuration.
MCP accepts normalized holdings and mandates, or canonical series_key/date/value/distribution rows.
It does not accept PDF, CSV, XLSX, or factsheet files directly; the calling assistant must extract and normalize
those files before invoking a tool. The original v1 endpoint remains available at /mcp with its
unchanged two-tool contract.
Connect an AI client
Add the endpoint, complete the browser-based PortfolioFit sign-in, and approve the requested
scopes requested by each tool: analysis:run, portfolio:read, and/or
portfolio:write. Client availability can depend on your plan, application version, workspace policy,
and administrator settings.
ChatGPT and Codex
Directory or developerAfter PortfolioFit is listed, open Settings → Plugins, select PortfolioFit, and choose Connect. For developer testing, enable Developer mode, open Settings → Apps → Create, enter the endpoint, choose OAuth, then scan the tools.
OpenAI plugin instructionsClaude.ai and Claude Desktop
Remote connectorOpen Customize → Connectors, choose + → Add custom connector, and add PortfolioFit with the endpoint above. Choose Connect to sign in, then enable PortfolioFit from the Connectors menu in a conversation.
Team and Enterprise owners add it under Organization settings → Connectors → Add → Custom → Web.
Anthropic connector instructionsClaude Code
CLIclaude mcp add --transport http --scope user \
portfoliofit https://portfolio.fit/mcp/v2
Run /mcp in Claude Code, select PortfolioFit, and complete OAuth in the browser.
Gemini CLI
CLIgemini mcp add --transport http --scope user \
portfoliofit https://portfolio.fit/mcp/v2
Then run /mcp auth portfoliofit and complete OAuth in the browser.
VS Code and GitHub Copilot Chat
Editor
Run MCP: Open User Configuration from the Command Palette and add the server below to
mcp.json. Use MCP: List Servers to start it, confirm trust, and complete the
OAuth flow. For a workspace-only setup, use .vscode/mcp.json instead.
{
"servers": {
"portfoliofit": {
"type": "http",
"url": "https://portfolio.fit/mcp/v2"
}
}
}
VS Code MCP instructions
GitHub Copilot CLI
CLIcopilot mcp add --transport http \
portfoliofit https://portfolio.fit/mcp/v2
Run /mcp auth portfoliofit in Copilot CLI to authenticate.
Permissions and side effects
Calculation calls record an invocation and result for audit, idempotency, reliability, and usage-limit purposes. Upload, finalize, and profile-review tools create owner-scoped private data. Only upload cancellation is marked destructive because it permanently removes pending staging chunks; none of the tools place trades or edit an external portfolio.
You can disconnect PortfolioFit in your MCP client. If you suspect unauthorized access, disconnect first and contact [email protected].
Data use and retention
Data sent for a check
Normalized holdings, weights or values, security attributes, source references, portfolio base currency, composition scope, mandate text, explicit rules or constraints, canonical historical series rows, profile semantics, benchmark and sourced rate inputs, source warnings, and idempotency keys.
How analysis runs
Qualitative mandate alignment can send the relevant normalized data and context to OpenAI for model-assisted analysis. Explicit holdings constraints and all portfolio statistics run deterministically and do not require a model call. Your AI client may process the prompt and source material under its own terms before calling PortfolioFit.
What PortfolioFit records
The connected account, capability, idempotency key, input hash, structured result, model or provider response identifiers, token counts, status, errors, and timestamps. MCP result payloads are normally cleared after 90 days; incomplete upload staging expires after 24 hours. Finalized analytics datasets and immutable profile revisions remain owner-scoped with the portfolio. Limited audit and usage metadata may be kept longer for security, limit enforcement, and service integrity.
Do not submit personal or confidential information that is not required for portfolio analysis. For complete categories, providers, retention rules, and deletion controls, read the Privacy Policy and Terms of Service.
Tools and result semantics
| Tool | Use it for | Execution |
|---|---|---|
evaluate_portfolio_alignment |
Interpret a clean mandate and compare it with normalized holdings, optional rules, and source evidence. | Model-assisted |
calculate_portfolio_constraints |
Calculate explicit concentration, holding-count, top-N, selected-holding, or typed exposure limits. | Deterministic |
list_analysis_portfolios |
List your portfolios, analytics datasets, and profile readiness. | Read-only metadata |
upload_portfolio_series_rows |
Stage canonical rows in ordered, hash-checked chunks of at most 5,000 rows. | Owner-scoped write |
finalize_portfolio_series_upload |
Create an immutable canonical dataset version and proposed or confirmed profiles. | Owner-scoped write |
cancel_portfolio_series_upload |
Cancel a pending upload and permanently remove its staging chunks. | Destructive write |
review_portfolio_series_profile |
Create an immutable semantic revision or explicitly confirm a warning-free proposal. | Owner-scoped write |
list_portfolio_series |
List current proposed or confirmed profiles with exact dataset pins. | Read-only metadata |
calculate_portfolio_statistics |
Calculate 17 pinned return, risk, drawdown, ratio, and benchmark metrics from confirmed profiles. | Deterministic; release-gated |
The supplied evidence satisfies the evaluated checks.
At least one evaluated check is breached.
The supplied data cannot support a reliable verdict.
Results include warnings and structured evidence. A partial portfolio or proposed series profile prevents an unsupported definitive result. Statistics include the requested range and frequency plus exact dataset, profile, methodology, benchmark, and rate pins. Use a unique idempotency key for a new request; retry an identical request with the same key to avoid duplicate execution.
If the monthly MCP limit is reached, the tool returns quota_exceeded, the current usage, and the
exact calendar-month reset time. Wait until that time before retrying; the reset time is the only resolution
path returned by the public MCP tool.
Usage examples
Ask naturally. A capable client should normalize your source, choose the appropriate tool, and show the evidence behind the result rather than presenting a bare verdict.
Check a single-holding limit
Check whether any holding in this complete portfolio exceeds 10% and show the holding, observed weight, limit, and source reference for every breach.
Expected behavior: the client calls calculate_portfolio_constraints and reports deterministic
arithmetic for the maximum single-holding weight.
Keep currency and country distinct
Calculate the portfolio weight denominated in EUR, then separately calculate the weight of issuers whose country is Germany. Do not infer country from denomination currency.
Expected behavior: two typed exposure filters are evaluated independently—
denomination_currency for EUR and country for Germany.
Handle an incomplete portfolio safely
This factsheet contains only the top ten holdings. Assess its “no issuer above 5%” mandate, preserve the partial composition scope, and explain any evidence gap.
Expected behavior: the client preserves the partial scope. PortfolioFit must not turn incomplete evidence
into a compliant whole-portfolio verdict and can return insufficient_evidence.
Evaluate a qualitative mandate
Compare these normalized holdings with the mandate to invest primarily in investment-grade European corporate bonds. Cite the supplied attributes, flag missing ratings, and separate evidence from inference.
Expected behavior: the client calls evaluate_portfolio_alignment, returns evidence-aware
findings and warnings, and avoids treating missing attributes as proof of compliance.
Troubleshooting and support
- Authentication repeats: disconnect PortfolioFit in the client, restart the client, add the exact endpoint again, and complete the browser sign-in.
- Tools do not appear: confirm the server is enabled for the current conversation or workspace, then refresh or restart the MCP server from the client.
- A result looks wrong: check normalized holdings, total weight, composition scope, thresholds, source warnings, and evidence citations before reporting it.
Include the client name, approximate time, tool name, status or error code, and the smallest reproducible example. Never send a password, token, API key, private key, or payment-card details.
PortfolioFit provides analytical support, not investment, legal, tax, or regulatory advice. Review important results and source evidence before relying on them.