accueil / serveurs / Fichiers & Documents / fit.portfolio/portfoliofit
fit.portfolio/portfoliofit
serveur MCP (Model Context Protocol) · PortfolioFit 2.2.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que fit.portfolio/portfoliofit est sûr ?
Au dernier audit MCP Hub, le serveur MCP « fit.portfolio/portfoliofit » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 10 outils
- calculate_portfolio_constraints≈ 2456 tokens
Calculate explicit portfolio constraints deterministically from normalized holdings. Use this for arithmetic checks, not for interpreting natural-language mandates.
Paramètres, retour & exemple (7)
Paramètresholdings· array · requisconstraints· array · requisanalysis_name· ? · optionnel
Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.base_currency· string · optionnelidempotency_key· string · requissource_warnings· ? · optionnelcomposition_scope· string · optionnel · complete | partial | unknown
Exemple d'appel{"name": "calculate_portfolio_constraints", "arguments": {"holdings": [], "constraints": [], "idempotency_key": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - calculate_portfolio_statistics≈ 6656 tokens
Calculate historical return, volatility, drawdown, risk-adjusted and benchmark-relative statistics from a confirmed portfolio series profile. The metrics parameter describes all available calculations and their required inputs. Use daily, weekly or monthly complete periods; results include coverage, warnings and exact dataset/profile pins. Reuse an idempotency_key only for an identical calculation.
Paramètres, retour & exemple (10)
Paramètresmetrics· array · requis
Select one or more unique metric names. periodic_returns: Return for each complete period at target_frequency. cumulative_return: Compounded return across the selected complete periods. observation_count: Number of source observations in the selected date range. period_count: Number of complete return periods available for calculation. min_return: Lowest periodic return and its period end date. max_return: Highest periodic return and its period end date. volatility: Sample standard deviation of periodic returns, with annualized volatility. drawdown: Decline from the running peak of compounded wealth for each period. max_drawdown: Largest peak-to-trough decline, with peak, trough and recovery dates when available. downside_deviation: Root mean square shortfall below minimum_acceptable_return, with annualized deviation. Requires minimum_acceptable_return. sharpe: Mean return above risk_free_rate divided by the sample standard deviation of excess returns, with annualized ratio. Requires risk_free_rate. sortino: Mean return above minimum_acceptable_return divided by downside deviation, with annualized ratio. Requires minimum_acceptable_return. beta: Sensitivity of portfolio returns to benchmark returns. Requires benchmark_profile_id. alpha: Return above the benchmark return implied by beta and risk_free_rate, with annualized alpha. Requires benchmark_profile_id and risk_free_rate. correlation: Pearson correlation between portfolio and benchmark returns. Requires benchmark_profile_id. tracking_error: Sample standard deviation of portfolio-minus-benchmark returns, with annualized tracking error. Requires benchmark_profile_id. information_ratio: Mean portfolio-minus-benchmark return divided by tracking error, with annualized ratio. Requires benchmark_profile_id.end_date· ? · optionnelstart_date· ? · optionnelanalysis_name· ? · optionnel
Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.risk_free_rate· ? · optionnel
Required for sharpe and alpha. Use a confirmed risk-free rate profile or a source-backed dated annualized scalar with currency, tenor, compounding and provenance. Do not substitute an assumed rate.idempotency_key· string · requistarget_frequency· string · requis · daily | weekly | monthly
Calculate complete daily, weekly or monthly return periods. Annualization uses 252, 52 or 12 periods per year respectively; finer-frequency data must be available.series_profile_id· string · requis
Confirmed portfolio series profile returned by upload or list_portfolio_series; pins one immutable dataset version.benchmark_profile_id· ? · optionnel
Confirmed benchmark series profile in the same currency and return basis as the portfolio. Required for beta, alpha, correlation, tracking_error and information_ratio. Returns are matched by exact period dates.minimum_acceptable_return· ? · optionnel
Required for downside_deviation and sortino. Use a confirmed minimum acceptable return profile or a source-backed dated annualized scalar with currency, tenor, compounding and provenance.
Exemple d'appel{"name": "calculate_portfolio_statistics", "arguments": {"metrics": [], "idempotency_key": "texte", "target_frequency": "daily", "series_profile_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - cancel_portfolio_series_upload≈ 408 tokens
Cancel a pending upload and permanently remove its staging chunks.
Paramètres, retour & exemple (2)
Paramètresupload_id· string · requisanalysis_name· ? · optionnel
Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.
Exemple d'appel{"name": "cancel_portfolio_series_upload", "arguments": {"upload_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"status": "texte", "upload_id": "texte", "analysis_id": "texte", "analysis_url": "texte", "cancelled_at": "texte", "analysis_name": "texte", "staging_deleted": true}} - evaluate_portfolio_alignment≈ 2346 tokens
Compare a clean mandate with normalized holdings. Do not send PDF, CSV, spreadsheet, or factsheet files; extract them before calling.
Paramètres, retour & exemple (9)
Paramètresrules· ? · optionnelmandate· string · optionnelholdings· array · requisanalysis_name· ? · optionnel
Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.base_currency· string · optionnelportfolio_name· string · optionnelidempotency_key· string · requissource_warnings· ? · optionnelcomposition_scope· string · optionnel · complete | partial | unknown
Exemple d'appel{"name": "evaluate_portfolio_alignment", "arguments": {"holdings": [], "idempotency_key": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_analysis≈ 456 tokens
Read retained normalized inputs, operations, results and owner-scoped dataset references. This is not an external agent transcript.
Paramètres, retour & exemple (1)
Paramètresanalysis_id· string · requis
Exemple d'appel{"name": "get_analysis", "arguments": {"analysis_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "kinds": [], "steps": [], "title": "texte", "status": "texte", "portfolios": [], "started_at": "texte", "step_count": 1, "updated_at": "texte", "analysis_id": "texte", "finished_at": "texte", "retention_days": 1}} - list_analyses≈ 688 tokens
Read private calculation groups and independent operations. Filter by kind, portfolio, dates, ready/running/attention status or legacy open/finished status.
Paramètres, retour & exemple (7)
Paramètreskind· ? · optionnelpage· integer · optionnelstatus· ? · optionneldate_to· ? · optionneldate_from· ? · optionnelpage_size· integer · optionnelportfolio_id· ? · optionnel
Exemple d'appel{"name": "list_analyses", "arguments": {"kind": "texte", "page": 1, "status": "texte", "date_to": "texte", "date_from": "texte", "page_size": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"page": 1, "total": 1, "analyses": [], "has_more": true, "page_size": 1}} - list_analysis_portfolios≈ 160 tokens
List owner-scoped portfolios, analytics datasets, and profile readiness.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_analysis_portfolios", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"portfolios": []}} - list_portfolio_series≈ 328 tokens
Discover owner-scoped immutable series profiles and their exact dataset versions. This returns metadata and coverage only, never dataset rows.
Paramètres, retour & exemple (4)
Paramètrescursor· ? · optionnelstatuses· ? · optionnelpage_size· integer · optionnelportfolio_id· ? · optionnel
Exemple d'appel{"name": "list_portfolio_series", "arguments": {"cursor": "texte", "statuses": "texte", "page_size": 1, "portfolio_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"series": [], "next_cursor": "texte"}} - review_portfolio_series_profile≈ 441 tokens
Create an immutable profile revision using revise, or explicitly confirm a warning-free proposal with confirmation=true.
Paramètres, retour & exemple (5)
Paramètresaction· string · requis · revise | confirmrevisions· ? · optionnelprofile_id· string · requisconfirmation· boolean · optionnelanalysis_name· ? · optionnel
Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.
Exemple d'appel{"name": "review_portfolio_series_profile", "arguments": {"action": "revise", "profile_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"analysis_id": "texte", "analysis_url": "texte", "analysis_name": "texte", "series_profile": {}}} - upload_portfolio_series_rows≈ 1488 tokens
Upload normalized series_key/date/value/distribution rows and commit a dataset version. For up to 5,000 rows, omit chunk_index and total_chunks to complete in one call. For larger inputs, declare total_chunks on every call, send chunks in order, and reuse upload_id and idempotency_key. The final chunk automatically verifies and commits all data and returns immutable series profiles. Parse files locally before calling.
Paramètres, retour & exemple (13)
Paramètresrows· array · requissource· ? · optionnelupload_id· ? · optionneldataset_id· ? · optionnelchunk_index· integer · optionnel
Zero-based chunk position; upload chunks in order.content_hash· string · optionneldataset_name· string · optionnelportfolio_id· ? · optionneltotal_chunks· integer · optionnel
Total number of chunks in this upload. The last accepted chunk commits the dataset automatically.analysis_name· ? · optionnel
Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.idempotency_key· string · requisseries_profiles· ? · optionnel
Source-backed semantics for each series_key. Supply on the first or final chunk; the final chunk can complete the proposals before commit. Ambiguous or incomplete profiles require review before calculation.new_portfolio_name· string · optionnel
Exemple d'appel{"name": "upload_portfolio_series_rows", "arguments": {"rows": [], "idempotency_key": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"status": "texte", "row_count": "texte", "upload_id": "texte", "dataset_id": "texte", "expires_at": "texte", "total_rows": 1, "analysis_id": "texte", "total_bytes": 1, "analysis_url": "texte", "content_hash": "texte", "dataset_name": "texte", "finalized_at": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».