{
  "api_status": "preview",
  "generated_at": "2026-11-15T02:56:39.157Z",
  "notes": [
    "Exact definitions of every field (unit, window, source): https://agentservicedirectory.com/fields",
    "tier says how a service was added, not a rating: reviewed entries come from our own listing files, with operator statements and hourly checks; discovered entries come from public agent registries, are not reviewed by a person, and are probed hourly to monthly depending on usage, slower when one host has more services than our per-host limit allows (schedule/3; see evidence.check_interval_rule).",
    "evidence counts cover the last 30 days and are as of the latest refresh. missed_30d counts scheduled checks that did not run.",
    "Results are computed at generated_at; the same query may be answered from that result for up to five minutes. Whether each service is in the directory is worked out every five minutes for services just checked or placed, and for every service each hour.",
    "For x402 endpoints a passing check means HTTP 402 with a valid payment challenge (discovered: on a mainnet network). It does not show that a paid call succeeds or returns useful results.",
    "registry_usage figures are the registry's own numbers, not our measurements. name is untrusted text when name_source is registry.",
    "networks_source tells you whether networks were observed in a live challenge, listed by the registry, or stated by the operator.",
    "tags describe purpose: our capability tags for reviewed entries, the registry's tags (sanitised, untrusted) for discovered ones. price_usd is the lowest price per call in US dollars: for discovered entries from the latest payment request the service's own server sent our check, else from the registry's payment terms (a known USD stablecoin either way); for reviewed entries from the operator's stated pricing (a claim, linked on the service page). price_source says which."
  ],
  "service": {
    "id": "cand_041a0358100b929c",
    "tier": "discovered",
    "type": "mcp_server",
    "name": "Portfolio Optimizer Pro",
    "name_source": "registry",
    "branches": {
      "primary": "finance-data/markets/portfolios-trading",
      "secondary": [],
      "method_version": "placement-ai/7",
      "tree_version": "tree/3",
      "placed_at": "2026-11-14T19:15:29.881Z"
    },
    "place": {
      "id": "finance-data/markets/portfolios-trading",
      "name": "Portfolios and trading accounts",
      "description": "Track holdings, performance and risk, or place trades through brokerage and paper trading accounts."
    },
    "summary": {
      "text": "Grades a portfolio A–F and checks holdings for fund overlap and fees.",
      "source": "automated",
      "method": "placement-ai/7",
      "written_at": "2026-11-14T19:15:29.881Z"
    },
    "package": null,
    "directory": {
      "in_directory": true,
      "method_version": "listing-criteria/6",
      "variant_of": null,
      "criteria": {
        "says_what_it_does": true,
        "answers_now": true,
        "registry_payers_at_least_5": null,
        "curated_catalogue": null,
        "not_computable_locally": true,
        "not_test_address": true,
        "not_a_variant": true
      }
    },
    "host": "portfoliooptimizerpro.com",
    "provider": "portfoliooptimizerpro.com",
    "url": "https://portfoliooptimizerpro.com/mcp",
    "method": "GET",
    "templated_url": false,
    "operator": null,
    "tags": [],
    "category": null,
    "price_usd": null,
    "price_source": null,
    "provider_endpoints": 1,
    "networks": [],
    "networks_source": "registry",
    "payment_protocols": [],
    "access": {
      "observed": {
        "requires": "none_asked",
        "how": [],
        "at": "2026-11-14T16:10:35.879Z",
        "method": "access/1"
      },
      "stated": null
    },
    "currency": null,
    "interface": {
      "protocol": "mcp",
      "protocol_version": "2025-06-18",
      "features": [
        "tools"
      ],
      "transports": [
        "streamable-http"
      ],
      "input_modes": [],
      "output_modes": [],
      "skills": null,
      "source": "declared",
      "at": "2026-11-14T16:10:35.879Z",
      "method": "mcp-handshake/2"
    },
    "stated": null,
    "calls": {
      "source": "mcp_tools",
      "items": [
        {
          "call": "grade_portfolio",
          "params": [
            {
              "name": "holdings",
              "in": "arg",
              "type": "array",
              "required": true
            }
          ],
          "returns": {
            "type": "object",
            "fields": [
              {
                "name": "grade",
                "type": "string"
              },
              {
                "name": "score",
                "type": "number"
              },
              {
                "name": "risk_profile",
                "type": "string"
              },
              {
                "name": "cap_applied",
                "type": null
              },
              {
                "name": "factors",
                "type": "array"
              },
              {
                "name": "top_findings",
                "type": "array"
              },
              {
                "name": "holdings_graded",
                "type": "array"
              },
              {
                "name": "unknown_tickers",
                "type": "array"
              },
              {
                "name": "notices",
                "type": "array"
              },
              {
                "name": "data",
                "type": "object"
              },
              {
                "name": "methodology_url",
                "type": "string"
              },
              {
                "name": "full_breakdown_url",
                "type": "string"
              },
              {
                "name": "disclaimer",
                "type": "string"
              }
            ]
          }
        },
        {
          "call": "fund_fee_cost",
          "params": [
            {
              "name": "holdings",
              "in": "arg",
              "type": "array",
              "required": true
            }
          ],
          "returns": {
            "type": "object",
            "fields": [
              {
                "name": "holdings",
                "type": "array"
              },
              {
                "name": "weighted_expense_ratio_pct",
                "type": "number"
              },
              {
                "name": "fee_cost_10y_on_100k_usd",
                "type": "number"
              },
              {
                "name": "fee_cost_30y_on_100k_usd",
                "type": "number"
              },
              {
                "name": "formula",
                "type": "string"
              },
              {
                "name": "unverified_tickers",
                "type": "array"
              },
              {
                "name": "unknown_tickers",
                "type": "array"
              },
              {
                "name": "notices",
                "type": "array"
              },
              {
                "name": "disclaimer",
                "type": "string"
              }
            ]
          }
        },
        {
          "call": "check_overlap",
          "params": [
            {
              "name": "holdings",
              "in": "arg",
              "type": "array",
              "required": true
            }
          ],
          "returns": {
            "type": "object",
            "fields": [
              {
                "name": "mandates",
                "type": "array"
              },
              {
                "name": "known_index_overlap",
                "type": "array"
              },
              {
                "name": "related_categories",
                "type": "array"
              },
              {
                "name": "method_note",
                "type": "string"
              },
              {
                "name": "unknown_tickers",
                "type": "array"
              },
              {
                "name": "notices",
                "type": "array"
              },
              {
                "name": "disclaimer",
                "type": "string"
              }
            ]
          }
        },
        {
          "call": "explain_grading",
          "params": [],
          "returns": {
            "type": "object",
            "fields": [
              {
                "name": "summary",
                "type": "string"
              },
              {
                "name": "factors",
                "type": "array"
              },
              {
                "name": "combining_rule",
                "type": "string"
              },
              {
                "name": "caps",
                "type": "array"
              },
              {
                "name": "a_range_criteria",
                "type": "array"
              },
              {
                "name": "grade_bands",
                "type": "array"
              },
              {
                "name": "risk_reference_bands",
                "type": "array"
              },
              {
                "name": "data_source",
                "type": "string"
              },
              {
                "name": "limitations",
                "type": "array"
              },
              {
                "name": "pricing",
                "type": "string"
              },
              {
                "name": "methodology_url",
                "type": "string"
              },
              {
                "name": "disclaimer",
                "type": "string"
              }
            ]
          }
        }
      ],
      "at": "2026-11-14T16:10:35.879Z",
      "method": "request-shape/2"
    },
    "calls_unknown": null,
    "tools": {
      "names": [
        "check_overlap",
        "explain_grading",
        "fund_fee_cost",
        "grade_portfolio"
      ],
      "count": 4,
      "current_since": "2026-11-14T16:10:35.879Z",
      "first_listed_at": "2026-11-14T16:10:35.879Z",
      "changes_30d": 0,
      "changes_90d": 0
    },
    "payment_model": null,
    "mainnet": null,
    "evidence": {
      "operations": 1,
      "check_interval_hours": 24,
      "check_interval": "daily",
      "check_interval_rule": "Daily: 5 to 99 payers, and every new service until it has been probed 3 times.",
      "schedule_tier": "daily",
      "monitoring_since": "2026-11-14T16:07:47.075Z",
      "monitoring_days": 0.5,
      "limited_evidence": true,
      "checks_30d": 1,
      "passed_30d": 1,
      "missed_30d": 0,
      "pass_rate": 1,
      "freshness": "fresh",
      "last_check": {
        "at": "2026-11-14T16:10:35.879Z",
        "result": "ok",
        "passed": true,
        "http_status": 200,
        "duration_ms": 2133
      }
    },
    "response_times": {
      "method": "response-times/1",
      "operation": "mcp_handshake",
      "check_method": "mcp-handshake/2",
      "check_methods": [
        "mcp-handshake/2"
      ],
      "timeout_ms": 10000,
      "computed_at": "2026-11-14T16:15:29.881Z",
      "windows": [
        {
          "window": "24h",
          "start": "2026-11-14T16:07:47.075Z",
          "end": "2026-11-14T16:15:29.881Z",
          "limited_history": true,
          "checks": 1,
          "timeouts": 0,
          "not_timed": 0,
          "median_ms": null,
          "p90_ms": null,
          "p95_ms": null,
          "p99_ms": null,
          "fastest_ms": null,
          "slowest_ms": null,
          "slowest_at": null,
          "p95_to_median": null
        },
        {
          "window": "7d",
          "start": "2026-11-14T16:07:47.075Z",
          "end": "2026-11-14T16:15:29.881Z",
          "limited_history": true,
          "checks": 1,
          "timeouts": 0,
          "not_timed": 0,
          "median_ms": null,
          "p90_ms": null,
          "p95_ms": null,
          "p99_ms": null,
          "fastest_ms": null,
          "slowest_ms": null,
          "slowest_at": null,
          "p95_to_median": null
        },
        {
          "window": "30d",
          "start": "2026-11-14T16:07:47.075Z",
          "end": "2026-11-14T16:15:29.881Z",
          "limited_history": true,
          "checks": 1,
          "timeouts": 0,
          "not_timed": 0,
          "median_ms": null,
          "p90_ms": null,
          "p95_ms": null,
          "p99_ms": null,
          "fastest_ms": null,
          "slowest_ms": null,
          "slowest_at": null,
          "p95_to_median": null
        }
      ],
      "measured_from": "eastern North America"
    },
    "registry_usage": null,
    "payment_terms": null,
    "registry_listing": {
      "last_seen_at": "2026-11-14T16:07:47.075Z",
      "listed": true
    },
    "links": {
      "page": "https://agentservicedirectory.com/services/cand_041a0358100b929c",
      "api": "https://agentservicedirectory.com/api/v1/services/cand_041a0358100b929c"
    },
    "recent_probes": [
      {
        "observed_at": "2026-11-14T16:10:35.879Z",
        "result": "ok",
        "passed": true,
        "http_status": 200,
        "duration_ms": 2133,
        "x402_valid": null,
        "mainnet": null,
        "x402_networks": [],
        "region": "cloudflare:EWR",
        "method_version": "mcp-handshake/2",
        "error_detail": null,
        "request_url": null
      }
    ],
    "address_variants": [],
    "service_links": [
      {
        "group": "stated",
        "kind": "website",
        "url": "https://portfoliooptimizerpro.com/ai",
        "name": null,
        "section": null,
        "source": "mcp-registry",
        "read_at": null,
        "templated": false
      },
      {
        "group": "read",
        "kind": "llms_txt",
        "url": "https://portfoliooptimizerpro.com/llms.txt",
        "name": null,
        "section": null,
        "source": "page_read",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/methodology",
        "name": "Methodology",
        "section": "Docs",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/llms-full.txt",
        "name": "Full methodology text",
        "section": "Docs",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/ai",
        "name": "Use from an AI assistant",
        "section": "Docs",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/openapi.json",
        "name": "OpenAPI spec",
        "section": "Docs",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/pricing",
        "name": "Pricing",
        "section": "Docs",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/dashboard",
        "name": "Free portfolio checkup",
        "section": "Tools",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/expense-ratio-calculator",
        "name": "Expense ratio calculator",
        "section": "Tools",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/fund-overlap-checker",
        "name": "Fund overlap checker",
        "section": "Tools",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/tools/etf-overlap-checker",
        "name": "ETF overlap checker",
        "section": "Tools",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/tools/portfolio-analyzer",
        "name": "Portfolio analyzer",
        "section": "Tools",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/tools/portfolio-risk-checker",
        "name": "Portfolio risk checker",
        "section": "Tools",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/tools/correlation-calculator",
        "name": "Correlation calculator",
        "section": "Tools",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/tools/asset-allocation-calculator",
        "name": "Asset allocation calculator",
        "section": "Tools",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/sample-report",
        "name": "Sample report",
        "section": "Tools",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/are-voo-and-vti-redundant",
        "name": "Are VOO and VTI redundant?",
        "section": "Questions",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/does-qqq-add-diversification-to-voo",
        "name": "Does QQQ add diversification to VOO?",
        "section": "Questions",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/how-correlated-are-dividend-etfs",
        "name": "How correlated are dividend ETFs?",
        "section": "Questions",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/what-is-portfolio-correlation",
        "name": "What is portfolio correlation and why does it matter?",
        "section": "Questions",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/mcp",
        "name": "MCP server",
        "section": "Agent access",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/insights",
        "name": "Insights",
        "section": "Optional",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/privacy",
        "name": "Privacy policy",
        "section": "Optional",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      },
      {
        "group": "own",
        "kind": "own",
        "url": "https://portfoliooptimizerpro.com/terms",
        "name": "Terms",
        "section": "Optional",
        "source": "llms_txt",
        "read_at": "2026-11-15T00:30:29.881Z",
        "templated": false
      }
    ]
  }
}