Connect to the remote MCP server
PortfolioFit exposes portfolio mandate and constraint checks through a secure, remote Streamable HTTP MCP server. Use the same canonical endpoint in every compatible client:
https://portfolio.fit/mcp
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.
The MCP tools accept normalized, structured holdings and mandate data. They do not accept PDF, CSV, XLSX, or factsheet files directly; the calling assistant must extract and normalize those files before it invokes a tool. The current MCP tools do not read or modify portfolios saved in the PortfolioFit website.
Connect an AI client
Add the endpoint, complete the browser-based PortfolioFit sign-in, and approve the requested
analysis:run scope. 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
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
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"
}
}
}
VS Code MCP instructions
GitHub Copilot CLI
CLIcopilot mcp add --transport http \
portfoliofit https://portfolio.fit/mcp
Run /mcp auth portfoliofit in Copilot CLI to authenticate.
Permissions and side effects
Tool calls are not labelled read-only because each call records an invocation and result for audit, idempotency, reliability, and usage-limit purposes. Calls may consume monthly MCP usage. The tools do not edit the source holdings or constraints you submit and are marked non-destructive.
You can disconnect PortfolioFit in your MCP client. If you suspect unauthorized access, disconnect first and contact support@portfolio.fit.
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, source warnings, and an idempotency key.
How analysis runs
Qualitative mandate alignment can send the relevant normalized data and context to OpenAI for model-assisted analysis. Explicit arithmetic constraint checks 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; limited audit and usage metadata may be kept longer for security, limit enforcement, and service integrity. A structured result may repeat holding names or source references needed to explain the finding; PortfolioFit does not store the raw MCP request body in the invocation record.
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 |
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 or unknown composition scope can prevent a compliant verdict when the full portfolio is required. 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.