Développeurs et API

Connecte Paperball à des assistants IA et à tes propres outils. L'accès programmatique passe par le serveur MCP — via OAuth (p. ex. claude.ai) ou avec une clé API personnelle.

Ce que tu peux en faire

  • Lister tes sets de backtest et portefeuilles et les consulter en détail
  • Lancer des backtests (simulations) et récupérer ou comparer les résultats
  • Interroger les Community-Backtests publics et les taux de change actuels
  • Interroger ton compte et les limites de ton abonnement (whoami)
  • Créer des sets de backtest, enregistrer des portefeuilles issus des résultats, lancer des simulations de Monte-Carlo et gérer modèles, listes et dossiers
  • Lister tes titres, compléter les cours depuis des fichiers sous forme de lots supprimables et définir les données de base (p. ex. TER) manuellement
  • Supprimer uniquement avec le droit « Supprimer » (delete), uniquement en tant que propriétaire ou administrateur du compte, et seulement si c'est activé pour le compte dans Paramètres → Clés API — sinon l'assistant ne voit même pas les outils de suppression

Chaque clé est liée à ton compte et agit en ton nom. Scopes disponibles : lecture (read), exécution de simulations (run_simulation), gestion des titres (watchlist:write — importer des cours, définir les données de base) et suppression (delete — accordé uniquement par les propriétaires et les administrateurs du compte, voir « Suppression »). Les backtests, les simulations de Monte-Carlo et les mises à jour consomment des crédits de ton solde.

Démarrage rapide : créer une clé

Crée une clé API personnelle dans les paramètres de ton compte, sous « Clés API ». La clé commence par sk_ppf_ et n'est affichée qu'une seule fois — copie-la tout de suite.

Aller à la gestion des clés

Connecter claude.ai (OAuth)

Dans claude.ai, va dans Paramètres → Connectors et ajoute un connecteur personnalisé avec cette URL MCP. Laisse les champs OAuth vides — l'enregistrement est automatique (Dynamic Client Registration). Lors de la première connexion, tu confirmes l'accès à ton compte.

https://www.paperball.finance/mcp

Pas besoin de clé API — la connexion se fait via OAuth 2.1 avec PKCE et apparaît ensuite dans « Applications connectées ».

Connecter Claude Desktop (clé)

Ajoute le bloc suivant à ton claude_desktop_config.json et remplace sk_ppf_… par ta clé. mcp-remote fait le pont entre le transport local stdio et le serveur MCP HTTP.

{
  "mcpServers": {
    "paperball": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.paperball.finance/mcp",
               "--header", "Authorization: Bearer ${PAPERBALL_API_KEY}"],
      "env": { "PAPERBALL_API_KEY": "sk_ppf_..." }
    }
  }
}

n8n, Make et tes propres scripts

Tout client HTTP compatible MCP peut appeler l'endpoint directement — via Streamable HTTP avec ta clé dans l'en-tête Authorization.

# n8n / Make / eigener MCP-Client (Streamable HTTP, JSON-RPC 2.0)
MCP-Endpoint:  https://www.paperball.finance/mcp
Auth:          Header  ->  Authorization: Bearer sk_ppf_...
Tools:         tools/list zeigt, was dein Schlüssel darf (Scope).
Backtest-Sets: list_my_tables · get_table_detail · create_table
               add_to_table · create_table_from_result
               create_table_from_portfolio_list · rename_table · copy_table
               set_table_client_tag · update_table_security
               link_table_securities_to_funds · validate_table
               get_table_data_status · set_table_distribution
Backtest:      run_simulation · wait_for_simulation · cancel_simulation
               list_recent_simulations · get_simulation_result
               rename_simulation_result · get_result_wealth
               filter_simulation_portfolios · compare_simulations
Vorlagen:      list_simulation_presets · create_simulation_preset
               update_simulation_preset · list_current_portfolio_templates
               create_current_portfolio_template
               update_current_portfolio_template · list_withdrawal_templates
               create_withdrawal_template · update_withdrawal_template
Portfolios:    list_portfolio_lists · create_portfolio_list
               update_portfolio_list · list_my_favorite_portfolios
               save_portfolio_from_result · update_saved_portfolio
               get_saved_portfolio_price_start · start_saved_portfolio_earlier
               get_saved_portfolio_wealth
               get_portfolio_metrics_over_time · set_portfolio_list_update
               refresh_saved_portfolios
Monte Carlo:   run_monte_carlo · run_monte_carlo_mix
               run_monte_carlo_community · get_monte_carlo_result
               list_monte_carlo_results · rename_monte_carlo_run
               check_monte_carlo_history · list_monte_carlo_building_blocks
               list_monte_carlo_securities · list_monte_carlo_mix_templates
               create_monte_carlo_mix_template
               update_monte_carlo_mix_template
               add_monte_carlo_allocation_reference
               list_monte_carlo_allocation_folders
               create_monte_carlo_allocation_folder
               update_monte_carlo_allocation_folder
               list_monte_carlo_settings · create_monte_carlo_settings
               update_monte_carlo_settings · list_saved_monte_carlo
               save_monte_carlo_result · create_saved_monte_carlo_folder
               update_saved_monte_carlo_folder · update_saved_monte_carlo
               list_community_portfolios
Altersvorsorge: get_av_depot_grant
Wertpapiere:   list_watchlist · add_securities · get_add_securities_status
               refresh_watchlist · get_watchlist_refresh_status
               get_watchlist_metrics_over_time · get_watchlist_correlation
               compare_watchlist_securities · get_security_crisis_behaviour
               get_security_price_history · get_security_fundamentals
               get_security_master_data · set_security_master_data
               get_price_sources · upload_prices
               list_benchmarks · set_security_benchmark
               set_watchlist_item_note · list_watchlist_folders
               create_watchlist_folder · update_watchlist_folder
               add_to_watchlist_folder · remove_from_watchlist_folder
               set_watchlist_folder_update · set_watchlist_folder_email
               start_portfolio_test · get_portfolio_test_result
               save_portfolio_test_as_portfolio
Markt, Konto:  get_top_portfolios_leaderboard · get_exchange_rates
               whoami · get_my_subscription_limits · get_credits
Löschen:       nur mit Scope delete — siehe Abschnitt „Löschen“
               delete_table · delete_table_security
               delete_table_uploaded_prices · delete_table_distribution
               delete_simulation_result · delete_saved_portfolio
               delete_portfolio_list · delete_simulation_preset
               delete_current_portfolio_template · delete_withdrawal_template
               delete_monte_carlo_run · delete_monte_carlo_mix_template
               delete_saved_monte_carlo · delete_saved_monte_carlo_folder
               delete_monte_carlo_settings
               delete_monte_carlo_allocation_folder
               delete_watchlist_folder · remove_from_watchlist
               delete_price_upload

Suppression

Les outils de suppression n'apparaissent dans tools/list que si trois conditions sont réunies : la clé porte le droit « delete », elle appartient à un propriétaire ou un administrateur du compte, et « Suppression via les assistants IA et l'API » est activée dans Paramètres → Clés API (par défaut : désactivée). Seul ce qui n'est pas encore utilisé peut être supprimé.

Les clés et connexions existantes n'ont pas le droit « Supprimer ». Crée pour cela une nouvelle clé avec « Autoriser la suppression » ou reconnecte l'assistant et confirme la suppression.

Outils modifiés (28/10/2026)

Les outils renvoient désormais les mêmes chiffres que les pages de l'application. Pour cela, certains champs et valeurs par défaut ont changé — adapte tes appels et scripts enregistrés :

  • run_monte_carlo, run_monte_carlo_mix, run_monte_carlo_community : les champs portent les noms des paramètres Monte Carlo enregistrés (horizon_years → horizont_jahre, start_capital → startkapital, block_months → block_monate, tax → steuer) ; alter_heute est nouveau. Les champs inconnus sont refusés au lieu d'être ignorés.
  • get_exchange_rates : les cours suivent désormais le sens de l'application, 1 EUR = X devise étrangère — auparavant, c'était l'inverse.
  • get_top_portfolios_leaderboard : les mêmes classements que la page Backtests de la communauté (sharpe_ratio, sortino_ratio, calmar_ratio, sterling_ratio, martin_ratio, recovery_ratio, par défaut sharpe_ratio) ; cagr, ulcer et max_drawdown disparaissent.
  • list_community_portfolios : sans paramètres, une page de la recherche comme sur la page Monte Carlo (10 entrées, historique de cours le plus long d'abord) avec total — au lieu de 200 au maximum triés par Sharpe.
  • get_table_detail : weight_pct et distribution_type disparaissent (ils étaient toujours vides) ; les champs de la page du jeu de backtest s'ajoutent.
  • list_my_favorite_portfolios : nouveau champ metrics avec les indicateurs du backtest propre, comme les affiche Mes portefeuilles ; leaderboard_metrics reste à part.
  • run_simulation : valeurs par défaut comme le formulaire de la page (au moins 2 titres, pas selon ton abonnement) ; un modèle s'applique à chaque champ que tu ne transmets pas.
  • list_watchlist, compare_watchlist_securities, get_security_price_history : les mêmes titres que la watchlist (y compris les données de test et les dossiers partagés) ; sans indication, la période est celle de ta tuile.

Indicateurs modifiés (30/10/2026)

ulcer_index est désormais exprimé en points de pourcentage, comme max_drawdown (7,65 au lieu de 0,0765). sortino_ratio fait la moyenne des pertes au carré sur tous les jours et non plus seulement sur les jours de baisse, comme c'est l'usage ; la valeur est ainsi environ une fois et demie plus élevée. Cela vaut pour chaque outil qui renvoie ces indicateurs, et pour les backtests et portefeuilles enregistrés dès qu'ils ont été recalculés.

OAuth discovery

Pour les clients OAuth, les métadonnées sont fournies aux chemins standard selon RFC 8414 / RFC 9728 :

https://www.paperball.finance/.well-known/oauth-authorization-server
https://www.paperball.finance/.well-known/oauth-protected-resource

Schéma OpenAPI

La surface programmatique de Paperball est MCP-first. Un document OpenAPI lisible par machine des endpoints REST publics (liste blanche uniquement, sans routes internes) est disponible ici : openapi.json