PortfolioFit Objective alignment
Home MCP docs Privacy Terms Support Log in

MCP documentation

PortfolioFit MCP

Connect PortfolioFit to an AI assistant, understand its OAuth permission and data use, and run evidence-aware portfolio checks.

Last updated: August 26, 2026

On this page Overview Connect a client Permissions Data use Tools and results Usage examples Troubleshooting

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:

Remote MCP endpoint https://portfolio.fit/mcp/v2
OAuth sign-in only

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 developer

After 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 instructions ↗

Claude.ai and Claude Desktop

Remote connector

Open 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 instructions ↗

Claude Code

CLI
claude 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.

Claude Code MCP instructions ↗

Gemini CLI

CLI
gemini mcp add --transport http --scope user \
  portfoliofit https://portfolio.fit/mcp/v2

Then run /mcp auth portfoliofit and complete OAuth in the browser.

Gemini CLI MCP instructions ↗

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

CLI
copilot mcp add --transport http \
  portfoliofit https://portfolio.fit/mcp/v2

Run /mcp auth portfoliofit in Copilot CLI to authenticate.

Copilot CLI MCP instructions ↗

Permissions and side effects

OAuth scope analysis:run · portfolio:read · portfolio:write

Each tool requests only the scopes needed to run analysis or read, upload, and review your analytics data.

Does not authorize Trading or movement of money

No brokerage access, order placement, fund transfers, account-plan changes, or access to your password.

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

01

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.

02

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.

03

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
compliant

The supplied evidence satisfies the evaluated checks.

non_compliant

At least one evaluated check is breached.

insufficient_evidence

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.

Usage limits

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.

01

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.

02

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.

03

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.

04

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.
Need help? [email protected]

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.

PortfolioFit Analytical support for reviewing portfolio mandates and constraints. PortfolioFit does not provide investment, legal, tax, or regulatory advice and does not place trades.

Home MCP docs Privacy Terms Support