Skip to content
Back to QuantJourney Research Agent Fabric

Card snapshot

agents.quantjourney.cloud · 2026-09-30 08:03:48 UTC · 965f7f07b70ce29b2057ae4bc28ec3fd9e3de706f7750b2942c29fb96a7cd20f

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "QuantJourney Research Agent Fabric",
  "description": "Machine-payable, evidence-backed financial research for agents. 35 deterministic MCP-backed bounded queries are catalogued. Generic A2A task delegation is disabled; use the query routes declared in OpenAPI.",
  "supportedInterfaces": [
    {
      "url": "https://agents.quantjourney.cloud",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "QuantJourney",
    "url": "https://quantjourney.cloud"
  },
  "version": "0.27.2",
  "iconUrl": "https://agents.quantjourney.cloud/favicon.ico",
  "documentationUrl": "https://agents.quantjourney.cloud/llms-full.txt",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false,
    "boundedQueryExecution": true,
    "managedDataExecution": false,
    "publicDataExecution": true,
    "callerDataCompute": true,
    "a2aTaskDelegation": false,
    "extensions": [
      {
        "uri": "https://agents.quantjourney.cloud/extensions/evidence/v1",
        "description": "QJ evidence, freshness, product-grade and lineage contract.",
        "required": true
      },
      {
        "uri": "https://agents.quantjourney.cloud/v1/x402",
        "description": "QJ x402 v2 price, network, settlement and route contract.",
        "required": false
      },
      {
        "uri": "https://agents.quantjourney.cloud/mcp",
        "description": "Anonymous read-only MCP with 34 reviewed, zero-price QuantJourney tools.",
        "required": false,
        "params": {
          "transport": "streamable-http",
          "authentication": "none",
          "costUsd": "0.00",
          "toolCount": 34,
          "tools": [
            "get_company_snapshot",
            "get_company_snapshots",
            "compare_companies",
            "get_earnings_preview",
            "get_earnings_recap",
            "resolve_sec_company",
            "get_latest_sec_filing",
            "get_sec_company_facts",
            "get_security_history",
            "screen_securities",
            "get_sec_filing_delta",
            "get_insider_activity",
            "get_short_interest_state",
            "get_security_technicals",
            "get_market_regime",
            "get_treasury_yield_curve",
            "get_overnight_rates",
            "normalize_portfolio",
            "simulate_trade",
            "get_portfolio_exposure",
            "get_portfolio_volatility",
            "get_portfolio_var_cvar",
            "get_portfolio_drawdown",
            "get_portfolio_benchmark_risk",
            "get_portfolio_factor_exposure",
            "get_portfolio_liquidity",
            "get_portfolio_events",
            "get_portfolio_signals",
            "run_portfolio_scenario",
            "get_portfolio_position_risk",
            "get_portfolio_performance",
            "get_portfolio_correlations",
            "optimize_portfolio",
            "simulate_portfolio"
          ],
          "resources": [
            "qj://finance/manifest",
            "qj://finance/caller-market-data",
            "qj://finance/metric-dictionary",
            "qj://finance/coverage-and-freshness",
            "qj://finance/scenarios",
            "qj://finance/limits-and-access"
          ],
          "manifest": "qj://finance/manifest",
          "restA2APricingUnchanged": true
        }
      },
      {
        "uri": "https://agents.quantjourney.cloud/.well-known/agent-registration.json",
        "description": "Experimental ERC-8004 Draft identity and domain registration.",
        "required": false,
        "params": {
          "agentRegistry": "eip155:84532:0x8004A818BFB912233c491871b3d84c89A494BD9e",
          "agentId": 9136
        }
      }
    ]
  },
  "securitySchemes": {
    "qj_agent_oauth": {
      "oauth2SecurityScheme": {
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://agents.quantjourney.cloud/oauth/token",
            "scopes": {
              "product:agents": "Access the QuantJourney Agents product.",
              "agents:discover": "Read public and caller-specific agent discovery metadata.",
              "agents:billing": "Read the client wallet and create bounded top-up sessions.",
              "agents:query": "Submit bounded agent queries when execution is enabled."
            }
          }
        }
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {}
    },
    {
      "schemes": {
        "qj_agent_oauth": {
          "list": [
            "product:agents",
            "agents:query"
          ]
        }
      }
    }
  ],
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/markdown"
  ],
  "skills": [
    {
      "id": "qj-company-snapshot-lite",
      "name": "Company Snapshot Lite",
      "description": "Return a free, bounded factual ticker snapshot with price, selected metrics, freshness and explicit coverage gaps.",
      "tags": [
        "equity",
        "snapshot",
        "price",
        "metrics"
      ],
      "examples": [
        "Return the free company snapshot for NVDA."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {}
        }
      ]
    },
    {
      "id": "qj-earnings-preview",
      "name": "Earnings Preview",
      "description": "Prepare an evidence-backed earnings preview with consensus, revisions, dispersion, historical surprises, valuation context and explicit review questions.",
      "tags": [
        "earnings",
        "estimates",
        "revisions",
        "valuation"
      ],
      "examples": [
        "Prepare the free earnings preview for NVDA."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-earnings-recap",
      "name": "Earnings Recap",
      "description": "Reconcile the latest reported earnings with consensus, estimate changes, adjusted-close reactions, SPY-adjusted CAR and explicit thesis-review questions.",
      "tags": [
        "earnings",
        "recap",
        "surprise",
        "event-study"
      ],
      "examples": [
        "Prepare the paid earnings recap for NVDA."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-congress-gov-signals",
      "name": "Congress and Government Signals",
      "description": "Combine congressional disclosures and government-contract evidence with disclosure-lag warnings.",
      "tags": [
        "congress",
        "government",
        "contracts",
        "policy"
      ],
      "examples": [
        "Find recent congressional and government-contract signals relevant to PLTR."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-sec-company-identity",
      "name": "SEC Company Identity",
      "description": "Resolve a ticker or company name to official SEC identity and exchange fields.",
      "tags": [
        "sec",
        "identity",
        "cik",
        "public-data"
      ],
      "examples": [
        "Resolve AAPL to its SEC company identity."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {}
        }
      ]
    },
    {
      "id": "qj-sec-latest-filing",
      "name": "SEC Latest Filing",
      "description": "Return the latest official SEC submission for a ticker and bounded form type.",
      "tags": [
        "sec",
        "filing",
        "edgar",
        "public-data"
      ],
      "examples": [
        "Return AAPL's latest 10-Q filing."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-sec-company-facts-compact",
      "name": "SEC Company Facts Compact",
      "description": "Project selected current SEC XBRL facts into a small evidence envelope.",
      "tags": [
        "sec",
        "xbrl",
        "fundamentals",
        "public-data"
      ],
      "examples": [
        "Return compact SEC company facts for AAPL."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-gleif-entity-lookup",
      "name": "GLEIF Entity Lookup",
      "description": "Resolve an entity name or exact LEI against the official GLEIF index.",
      "tags": [
        "gleif",
        "lei",
        "entity",
        "public-data"
      ],
      "examples": [
        "Resolve Apple Inc. in the GLEIF index."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-treasury-yield-curve-latest",
      "name": "Treasury Yield Curve Latest",
      "description": "Return one latest bounded U.S. Treasury par-yield curve observation.",
      "tags": [
        "treasury",
        "rates",
        "yield-curve",
        "public-data"
      ],
      "examples": [
        "Return the latest available U.S. Treasury yield curve."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-overnight-rates-latest",
      "name": "Overnight Rates Latest",
      "description": "Return the latest bounded SOFR, EFFR and related official reference-rate observations.",
      "tags": [
        "ny-fed",
        "sofr",
        "effr",
        "rates",
        "public-data"
      ],
      "examples": [
        "Return the latest SOFR and Effective Federal Funds Rate."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-sec-filing-delta",
      "name": "SEC Filing Delta",
      "description": "Compare selected SEC XBRL facts between the latest two filings of one form type.",
      "tags": [
        "sec",
        "filing",
        "xbrl",
        "delta",
        "public-data"
      ],
      "examples": [
        "Compare AAPL's latest two 10-Q filings."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-government-demand-packet",
      "name": "Government Demand Packet",
      "description": "Combine bounded award rollups and materialized contract signals for one ticker.",
      "tags": [
        "government",
        "contracts",
        "usaspend",
        "evidence"
      ],
      "examples": [
        "Prepare a government demand packet for PLTR over 90 days."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-security-history",
      "name": "Security Price History",
      "description": "Return bounded normalized daily adjusted-close history for one public-equity ticker, with dates, currency, source and freshness. It is not a live quote.",
      "tags": [
        "equity",
        "prices",
        "history"
      ],
      "examples": [
        "Return the last 120 daily observations for AAPL."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-security-screen",
      "name": "Security Screen",
      "description": "Screen U.S. public companies or a named U.S. index using a small allowlist of precomputed financial metrics. ETFs and funds are excluded; arbitrary SQL is never accepted.",
      "tags": [
        "equity",
        "screen",
        "metrics"
      ],
      "examples": [
        "Screen the S&P 500 for P/E below 30 and positive free-cash-flow yield."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-insider-activity",
      "name": "SEC Insider Filing Activity",
      "description": "Return recent official SEC Form 4 filing metadata for one issuer. This version reports filing activity and accessions only; it does not claim parsed purchases, sales or ownership changes.",
      "tags": [
        "sec",
        "form-4",
        "insiders",
        "public-data"
      ],
      "examples": [
        "Return recent SEC Form 4 filing activity for AAPL."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-short-interest-state",
      "name": "Short Interest State",
      "description": "Return bounded official FINRA consolidated short-interest observations and optional Nasdaq Trader Reg SHO threshold-list membership. Semi-monthly short interest is not daily short volume.",
      "tags": [
        "finra",
        "short-interest",
        "reg-sho",
        "public-data"
      ],
      "examples": [
        "Return the latest short-interest state for AAPL."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-security-technicals",
      "name": "Security Technical State",
      "description": "Return latest precomputed technical indicators from an explicit indicator-family allowlist. Use for structured technical state, not a trading signal or live quote.",
      "tags": [
        "equity",
        "technicals",
        "signals"
      ],
      "examples": [
        "Return RSI, MACD and moving-average state for NVDA."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-market-regime",
      "name": "Market Regime Context",
      "description": "Return the latest compact market-risk context computed by QJ Analytics from governed Warehouse inputs. It is descriptive evidence, not a forecast or allocation instruction.",
      "tags": [
        "market",
        "regime",
        "risk",
        "macro"
      ],
      "examples": [
        "Return the latest QuantJourney market-regime context."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-simulate-trade",
      "name": "Stateless Trade Risk Simulation",
      "description": "Estimate before, after and delta portfolio volatility, effective number of bets and fractional risk contribution for one bounded hypothetical long-only trade. No order or portfolio state is created.",
      "tags": [
        "portfolio",
        "risk",
        "what-if",
        "stateless"
      ],
      "examples": [
        "Show how buying $25,000 of NVDA changes an inline portfolio's risk."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-normalize",
      "name": "Portfolio Normalize",
      "description": "Resolve up to 25 unique long-only tickers and return normalized weights, identity coverage and concentration without creating a stored portfolio.",
      "tags": [
        "portfolio",
        "stateless",
        "identity",
        "weights"
      ],
      "examples": [
        "Normalize an inline AAPL, NVDA and TSM portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {}
        }
      ]
    },
    {
      "id": "qj-portfolio-exposure",
      "name": "Portfolio Exposure",
      "description": "Return compact sector, country, asset-class and supplied-currency exposure for an inline portfolio.",
      "tags": [
        "portfolio",
        "stateless",
        "sector",
        "country",
        "currency"
      ],
      "examples": [
        "Calculate exposure for an inline AAPL, NVDA and TSM portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-volatility",
      "name": "Portfolio Volatility",
      "description": "Estimate bounded annualized volatility from authorized aligned daily prices or returns.",
      "tags": [
        "portfolio",
        "stateless",
        "volatility",
        "risk"
      ],
      "examples": [
        "Estimate 120-day volatility for an inline AAPL and NVDA portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-var-cvar",
      "name": "Portfolio VaR and CVaR",
      "description": "Calculate bounded portfolio VaR and CVaR from authorized aligned daily prices or returns.",
      "tags": [
        "portfolio",
        "stateless",
        "var",
        "cvar",
        "risk"
      ],
      "examples": [
        "Calculate 95% and 99% one-day VaR and CVaR for an inline portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-drawdown",
      "name": "Portfolio Drawdown",
      "description": "Calculate bounded portfolio and position drawdowns from authorized aligned daily prices or returns.",
      "tags": [
        "portfolio",
        "stateless",
        "drawdown",
        "risk"
      ],
      "examples": [
        "Calculate 250-day drawdown statistics for an inline portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-benchmark-risk",
      "name": "Portfolio Benchmark Risk",
      "description": "Estimate portfolio beta, correlation and regression evidence versus one benchmark.",
      "tags": [
        "portfolio",
        "stateless",
        "benchmark",
        "beta",
        "correlation"
      ],
      "examples": [
        "Compare an inline portfolio with SPY over 120 sessions."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-factor-exposure",
      "name": "Portfolio Factor Exposure",
      "description": "Estimate bounded CAPM, Fama-French 3 or Fama-French 5 factor exposure.",
      "tags": [
        "portfolio",
        "stateless",
        "factors",
        "risk"
      ],
      "examples": [
        "Estimate FF5 factor exposure for an inline portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-liquidity",
      "name": "Portfolio Liquidity",
      "description": "Estimate compact position liquidity using observed price-volume history.",
      "tags": [
        "portfolio",
        "stateless",
        "liquidity",
        "volume",
        "risk"
      ],
      "examples": [
        "Estimate liquidity for an inline portfolio using a 10% ADV participation limit."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-events",
      "name": "Portfolio Events",
      "description": "Return bounded upcoming-event exposure and event-risk summaries.",
      "tags": [
        "portfolio",
        "stateless",
        "events",
        "catalysts",
        "risk"
      ],
      "examples": [
        "Return the next seven days of event risk for an inline portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-signals",
      "name": "Portfolio Signals",
      "description": "Return compact precomputed technical, congressional and government-contract signals for the largest supplied positions.",
      "tags": [
        "portfolio",
        "stateless",
        "signals",
        "technicals",
        "government"
      ],
      "examples": [
        "Return 90-day signals for the five largest positions in an inline portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-scenario",
      "name": "Portfolio Scenario",
      "description": "Run one named or bounded custom QJ Risk scenario over an inline portfolio.",
      "tags": [
        "portfolio",
        "stateless",
        "scenario",
        "stress",
        "risk"
      ],
      "examples": [
        "Run the GFC_2008 scenario for an inline portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-position-risk",
      "name": "Portfolio Position Risk",
      "description": "Return compact per-position volatility, beta, correlation and drawdown evidence.",
      "tags": [
        "portfolio",
        "stateless",
        "positions",
        "beta",
        "drawdown",
        "risk"
      ],
      "examples": [
        "Return per-position risk enrichment for an inline portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-performance",
      "name": "Portfolio Performance",
      "description": "Calculate whole-portfolio hypothetical constant-weight performance, Sharpe, Sortino and Calmar. Not account TWR/MWR.",
      "tags": [
        "portfolio",
        "stateless",
        "performance",
        "research"
      ],
      "examples": [
        "Use QuantJourney to calculate portfolio performance for an inline AAPL and MSFT portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-correlations",
      "name": "Portfolio Correlations",
      "description": "Calculate the full Pearson or Spearman matrix of aligned daily asset returns; constant-series correlations are null.",
      "tags": [
        "portfolio",
        "stateless",
        "correlations",
        "research"
      ],
      "examples": [
        "Use QuantJourney to calculate portfolio correlations for an inline AAPL and MSFT portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-optimization",
      "name": "Portfolio Optimization",
      "description": "Calculate stateless long-only fully-invested weights using min_variance, risk_parity or max_sharpe. Research only, no orders or persistence.",
      "tags": [
        "portfolio",
        "stateless",
        "optimization",
        "research"
      ],
      "examples": [
        "Use QuantJourney to calculate portfolio optimization for an inline AAPL and MSFT portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "qj-portfolio-simulation",
      "name": "Portfolio Simulation",
      "description": "Simulate a constant-weight portfolio with calibrated lognormal GBM or IID historical bootstrap. Seeded, bounded, not a forecast.",
      "tags": [
        "portfolio",
        "stateless",
        "simulation",
        "research"
      ],
      "examples": [
        "Use QuantJourney to calculate portfolio simulation for an inline AAPL and MSFT portfolio."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "qj_agent_oauth": {
              "list": [
                "product:agents",
                "agents:query"
              ]
            }
          }
        }
      ]
    }
  ]
}