{
  "name": "io.github.rawsd10/annalist",
  "title": "Annalist Financial Statements",
  "description": "Financial statements, ratios, key findings, screens and comparisons on calendar quarters of listed companies from their official filings; every figure carries the id of its source document. Read-only, no account or key.",
  "version": "1.2.1",
  "protocolVersion": "2025-11-25",
  "serverInfo": {
    "name": "annalist",
    "title": "Annalist Financial Statements",
    "version": "1.2.1"
  },
  "websiteUrl": "https://annalist.io/agents/",
  "documentationUrl": "https://annalist.io/llms.txt",
  "icons": [
    {
      "src": "https://annalist.io/assets/favicon.svg",
      "mimeType": "image/svg+xml",
      "sizes": [
        "any"
      ]
    },
    {
      "src": "https://annalist.io/assets/apple-touch-icon.png",
      "mimeType": "image/png",
      "sizes": [
        "180x180"
      ]
    }
  ],
  "transport": {
    "type": "streamable-http",
    "endpoint": "/mcp"
  },
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://annalist.io/mcp"
    }
  ],
  "authentication": {
    "required": false,
    "schemes": []
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "prompts": {
      "listChanged": false
    }
  },
  "instructions": "Annalist serves company fundamentals collected from official filings (company investor-relations sites and SEC EDGAR) as versioned snapshots. Use search_companies to find a company id, and get_company_overview for one answer on a company: its latest figures, measures, key findings and peers. get_statement and get_ratios give the series, get_findings the key findings with their figures and history, screen_companies ranks the coverage by a measure, compare_companies sets 2 to 4 companies side by side on calendar quarters, get_events lists corporate events and get_data_quality the withheld and restated values. get_snapshot_info gives the units, sign conventions and the fiscal calendar, and get_sources resolves source document ids. Amounts are in the unit given for each item; period labels follow the issuer's fiscal calendar and every row has start and end dates. Pass compact: true to get_statement and get_ratios for the figures without the conventions and definitions, and at: an ISO date for the snapshot that was the latest on that date (list_snapshots lists them). Quote figures as published and cite them as: Annalist, {company}, snapshot {company id}/{snapshot id}; {item}, {period}; source {document id}.",
  "tools": [
    {
      "name": "search_companies",
      "title": "Search companies",
      "description": "Find companies covered by Annalist by name, ticker, SEC CIK or id, optionally filtered by country. Returns each company's id (used by the other tools), identifiers, sources and latest snapshot.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "part of a name, ticker, CIK or id; leave empty to list all"
          },
          "country": {
            "type": "string",
            "description": "ISO 3166 country code, for example US, GB, ID, HK or JP"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "maximum number of companies (default 20)"
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer"
          },
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "country": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tickers": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "cik": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "sources": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "latest": {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          }
        },
        "required": [
          "total",
          "companies"
        ]
      },
      "annotations": {
        "title": "Search companies",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_company_overview",
      "title": "Get a company overview",
      "description": "One answer on a company, the first call for a question about it: identity, sector, latest snapshot, revenue and net income of the latest quarter (or fiscal year) with their change against a year earlier, the latest value of each measure of the directory (margins, returns, growth, debt, liquidity) with its period and unit, the current key findings with their source document ids, 3 peers, data quality and links to the page and the workbook.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple or telkom-indonesia"
          }
        },
        "required": [
          "company"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tickers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "market": {
            "type": [
              "string",
              "null"
            ]
          },
          "exchange": {
            "type": [
              "string",
              "null"
            ]
          },
          "sector": {
            "type": [
              "string",
              "null"
            ]
          },
          "industry": {
            "type": [
              "string",
              "null"
            ]
          },
          "template": {
            "type": "string"
          },
          "accounting": {
            "type": [
              "string",
              "null"
            ]
          },
          "fiscal_year_end": {
            "type": [
              "string",
              "null"
            ]
          },
          "sources": {
            "type": [
              "string",
              "null"
            ]
          },
          "snapshot": {
            "type": "string"
          },
          "as_of": {
            "type": "object",
            "properties": {
              "period": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "period_end": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "release_date": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": []
          },
          "published_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "latest": {
            "type": "object"
          },
          "measures": {
            "type": "object"
          },
          "findings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rule": {
                  "type": "string"
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "module": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "claim": {
                  "type": "string"
                },
                "state": {
                  "type": "string"
                },
                "text": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "documents": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "rule",
                "claim",
                "state"
              ]
            }
          },
          "peers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id"
              ]
            }
          },
          "data_quality": {
            "type": [
              "object",
              "null"
            ]
          },
          "checks": {
            "type": "object"
          },
          "documents": {
            "type": "integer"
          },
          "links": {
            "type": "object",
            "properties": {
              "page": {
                "type": "string"
              },
              "workbook": {
                "type": "string"
              },
              "api": {
                "type": "string"
              }
            },
            "required": []
          },
          "more": {
            "type": "string"
          },
          "citation": {
            "type": "object",
            "properties": {
              "snapshot": {
                "type": "string"
              },
              "as_of": {
                "type": "object",
                "properties": {
                  "period": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "period_end": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "release_date": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": []
              },
              "format": {
                "type": "string"
              },
              "documents": {
                "type": "string"
              }
            },
            "required": [
              "snapshot"
            ]
          }
        },
        "required": [
          "company",
          "name",
          "snapshot",
          "as_of",
          "latest",
          "measures",
          "findings",
          "peers",
          "citation"
        ]
      },
      "annotations": {
        "title": "Get a company overview",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_statement",
      "title": "Get a financial statement",
      "description": "Figures of one statement for one company from its latest snapshot, filtered by period and item. Every row gives its period with start and end dates, whether each value is reported or derived, and the source document ids of its values; item units are in `items`. Cite the snapshot and the source document id.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple or mizuho"
          },
          "statement": {
            "type": "string",
            "enum": [
              "income_statement",
              "cash_flow",
              "balance_sheet",
              "capital",
              "npl",
              "shares",
              "annual_highlights"
            ],
            "description": "income_statement, balance_sheet and cash_flow; Mizuho also has capital, npl, shares and annual_highlights"
          },
          "frequency": {
            "type": "string",
            "enum": [
              "annual",
              "quarterly"
            ],
            "description": "for income_statement and cash_flow (default annual); other statements have one frequency"
          },
          "from": {
            "type": "string",
            "description": "first period: a fiscal year (2024), a fiscal quarter (FY2024 Q2) or an ISO date"
          },
          "to": {
            "type": "string",
            "description": "last period, in the same forms"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "description": "item keys to keep, for example [\"revenue\", \"net_income\"]; leave empty for all"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 60,
            "description": "maximum rows, latest first kept (default 40, at most 60)"
          },
          "at": {
            "type": "string",
            "description": "an ISO date: the snapshot that was the latest on that date, in place of the latest snapshot"
          },
          "compact": {
            "type": "boolean",
            "description": "true for the rows with their units only, without the conventions, item definitions and citation format"
          }
        },
        "required": [
          "company",
          "statement"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "snapshot": {
            "type": "string"
          },
          "as_of": {
            "type": "object",
            "properties": {
              "period": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "period_end": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "release_date": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": []
          },
          "published_at": {
            "type": "string"
          },
          "statement": {
            "type": "string"
          },
          "frequency": {
            "type": "string"
          },
          "conventions": {
            "type": "object"
          },
          "items": {
            "type": "object"
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "rows_matched": {
            "type": "integer"
          },
          "truncated": {
            "type": "boolean"
          },
          "citation": {
            "type": "object",
            "properties": {
              "snapshot": {
                "type": "string"
              }
            },
            "required": [
              "snapshot"
            ]
          }
        },
        "required": [
          "company",
          "snapshot",
          "statement",
          "items",
          "rows",
          "rows_matched",
          "truncated",
          "citation"
        ]
      },
      "annotations": {
        "title": "Get a financial statement",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_ratios",
      "title": "Get financial ratios",
      "description": "Ratios computed from a company's latest snapshot by formulas with stable ids (bank.roe, corp.roic). Every value gives its unit, period and the snapshot figures it was computed from, each with its value and source document ids. Banks use the bank template (quarterly values annualised); other companies use the corporate template (annual, quarterly and trailing four quarters, ttm), which includes credit metrics, liquidity, earnings quality and forensic scores; scores, credit reconciliations and the liquidity cover also give their parts, named with their coefficients in the catalogue. A value computed with an estimated input, such as the lease cost of the latest fiscal year for quarters that do not report it, names it in estimates; a ratio that a rule leaves out for the company gives the reason in excluded. Call without ratios to list the catalogue of one frequency.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple or mizuho"
          },
          "frequency": {
            "type": "string",
            "enum": [
              "annual",
              "quarterly",
              "ttm"
            ],
            "description": "default annual"
          },
          "ratios": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "description": "ratio ids or short names, for example [\"roe\", \"corp.operating_margin\"]; leave empty for all"
          },
          "category": {
            "type": "string",
            "description": "keep one category, for example Profitability or Credit metrics"
          },
          "from": {
            "type": "string",
            "description": "first period: a fiscal year (2024), a fiscal quarter (FY2024 Q2) or an ISO date"
          },
          "to": {
            "type": "string",
            "description": "last period, in the same forms"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 400,
            "description": "maximum values, those of the latest periods kept (default 120)"
          },
          "at": {
            "type": "string",
            "description": "an ISO date: answers when the snapshot that was the latest on that date is the latest one, since ratios are published beside the latest snapshot only"
          },
          "compact": {
            "type": "boolean",
            "description": "true for the values with their units only, without the conventions, the catalogue entries, the inputs and the citation format"
          }
        },
        "required": [
          "company"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "snapshot": {
            "type": "string"
          },
          "template": {
            "type": "string"
          },
          "engine": {
            "type": "string"
          },
          "frequency": {
            "type": "string"
          },
          "conventions": {
            "type": "object"
          },
          "ratios": {
            "type": "object"
          },
          "values": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ratio": {
                  "type": "string"
                },
                "period": {
                  "type": "string"
                },
                "end": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "value": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "unit": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "inputs": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "estimates": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "parts": {
                  "type": "object"
                }
              },
              "required": [
                "ratio",
                "period",
                "value"
              ]
            }
          },
          "values_matched": {
            "type": "integer"
          },
          "truncated": {
            "type": "boolean"
          },
          "citation": {
            "type": "object",
            "properties": {
              "snapshot": {
                "type": "string"
              }
            },
            "required": [
              "snapshot"
            ]
          }
        },
        "required": [
          "company",
          "snapshot",
          "frequency",
          "values",
          "values_matched",
          "truncated",
          "citation"
        ]
      },
      "annotations": {
        "title": "Get financial ratios",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_findings",
      "title": "Get key findings",
      "description": "The key findings of a company, written by fixed rules from its figures: each a sentence ready to quote with its rule, claim, state (New, Confirmed, Strengthened, Weakened), the period, the measure and the figures it states with their source document ids. Modules: overview (growth, margins, returns, net debt), credit (debt against the S&P benchmark bands), liquidity, quality (cash backing of earnings) and scores (Altman, Beneish, Piotroski). Pass history for the record of each finding across snapshots, and retired for findings that no longer apply.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple or mizuho"
          },
          "module": {
            "type": "string",
            "enum": [
              "overview",
              "credit",
              "liquidity",
              "quality",
              "scores"
            ],
            "description": "keep the findings of one module"
          },
          "history": {
            "type": "boolean",
            "description": "true to add the records of each finding: state, change type, period and snapshot"
          },
          "retired": {
            "type": "boolean",
            "description": "true to add the findings that no longer apply"
          }
        },
        "required": [
          "company"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "snapshot": {
            "type": "string"
          },
          "as_of": {
            "type": "object",
            "properties": {
              "period": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "period_end": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "release_date": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": []
          },
          "findings_version": {
            "type": "string"
          },
          "modules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "count": {
            "type": "integer"
          },
          "findings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "thread": {
                  "type": "string"
                },
                "rule": {
                  "type": "string"
                },
                "rule_version": {
                  "type": "string"
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "module": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "claim": {
                  "type": "string"
                },
                "claim_meaning": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "state": {
                  "type": "string"
                },
                "since": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "active": {
                  "type": "boolean"
                },
                "period": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "period_end": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "text": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "measure": {
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "figures": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "documents": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "basis": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "snapshot": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "history": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              },
              "required": [
                "thread",
                "rule",
                "claim",
                "state",
                "figures",
                "documents"
              ]
            }
          },
          "conventions": {
            "type": "object"
          },
          "corrections": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "page": {
            "type": "string"
          },
          "citation": {
            "type": "object",
            "properties": {
              "snapshot": {
                "type": "string"
              },
              "as_of": {
                "type": "object",
                "properties": {
                  "period": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "period_end": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "release_date": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": []
              },
              "format": {
                "type": "string"
              },
              "documents": {
                "type": "string"
              }
            },
            "required": [
              "snapshot"
            ]
          }
        },
        "required": [
          "company",
          "snapshot",
          "count",
          "findings",
          "citation"
        ]
      },
      "annotations": {
        "title": "Get key findings",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "screen_companies",
      "title": "Screen companies",
      "description": "Filter and rank the companies of the coverage by the latest published value of a measure, for questions such as the most profitable companies of a sector or those with the least debt against EBITDA. Measures are ratio ids with a frequency, as corp.operating_margin@ttm, corp.roic@ttm, corp.revenue_growth@quarterly, corp.net_debt_to_ebitda@ttm, corp.current_ratio@quarterly or bank.cet1_ratio@quarterly; companies that report fiscal years only carry @annual values. Each value names its period and unit. An amount, such as corp.net_debt, is in the currency of each company: it is ranked within its currency, and its bounds need currency unless they are 0. Call without where and sort to list the measures.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "where": {
            "type": "array",
            "maxItems": 8,
            "description": "conditions that every company meets, for example [{\"measure\": \"corp.roic@ttm\", \"min\": 15}]",
            "items": {
              "type": "object",
              "properties": {
                "measure": {
                  "type": "string"
                },
                "min": {
                  "type": "number"
                },
                "max": {
                  "type": "number"
                }
              },
              "required": [
                "measure"
              ],
              "additionalProperties": false
            }
          },
          "sort": {
            "type": "string",
            "description": "the measure to rank by, for example corp.operating_margin@ttm"
          },
          "order": {
            "type": "string",
            "enum": [
              "desc",
              "asc"
            ],
            "description": "desc (default) for the highest first"
          },
          "country": {
            "type": "string",
            "description": "ISO 3166 country code, for example US, GB, ID or HK"
          },
          "sector": {
            "type": "string",
            "description": "part of a sector name, for example Technology or Health care"
          },
          "industry": {
            "type": "string",
            "description": "part of an industry name, for example Semiconductors or Banks"
          },
          "template": {
            "type": "string",
            "enum": [
              "corporate",
              "bank"
            ]
          },
          "currency": {
            "type": "string",
            "description": "keep the companies that report in one currency, for example USD"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "maximum companies (default 20)"
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "measures": {
            "type": "object"
          },
          "measures_available": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filters": {
            "type": "object"
          },
          "matched": {
            "type": "integer"
          },
          "without_value": {
            "type": "integer"
          },
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "country": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "sector": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "industry": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "template": {
                  "type": "string"
                },
                "as_of": {
                  "type": "object",
                  "properties": {
                    "period": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "period_end": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "release_date": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": []
                },
                "values": {
                  "type": "object"
                }
              },
              "required": [
                "id",
                "name",
                "values"
              ]
            }
          },
          "truncated": {
            "type": "boolean"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "measures",
          "matched",
          "companies",
          "truncated"
        ]
      },
      "annotations": {
        "title": "Screen companies",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "compare_companies",
      "title": "Compare companies on calendar quarters",
      "description": "2 to 4 companies side by side, aligned on calendar quarters as Annalist Compare places their fiscal periods, so that companies whose fiscal years end in different months stand in the same quarter. Measures are ratio ids (corp.operating_margin, corp.roic, corp.revenue_growth, bank.roe; short names such as roic work) or statement items (revenue, net_income, total_assets, cfo). Ratios use the last 4 quarters where the ratio has them, else the quarter; a company that reports fiscal years only gives fiscal years. Each value gives the company's fiscal period, and each statement value its source document ids. Amounts stay in the currency of each company.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 2,
            "maxItems": 4,
            "description": "2 to 4 company ids from search_companies"
          },
          "measures": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "maxItems": 6,
            "description": "1 to 6 ratio ids or statement item keys, for example [\"corp.operating_margin\", \"revenue\"]"
          },
          "frequency": {
            "type": "string",
            "enum": [
              "ttm",
              "quarterly",
              "annual"
            ],
            "description": "the form of every ratio, in place of the last 4 quarters where a ratio has them; annual compares fiscal years"
          },
          "from": {
            "type": "string",
            "description": "first calendar quarter: CY2025 Q1, a year (2025) or an ISO date"
          },
          "to": {
            "type": "string",
            "description": "last calendar quarter, in the same forms"
          },
          "quarters": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "the latest calendar quarters kept (default 8)"
          }
        },
        "required": [
          "companies",
          "measures"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "snapshot": {
                  "type": "string"
                },
                "as_of": {
                  "type": "object",
                  "properties": {
                    "period": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "period_end": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "release_date": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": []
                },
                "annual": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "name",
                "snapshot"
              ]
            }
          },
          "measures": {
            "type": "object"
          },
          "quarters": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "quarter": {
                  "type": "string"
                },
                "quarter_end": {
                  "type": "string"
                },
                "companies": {
                  "type": "object"
                }
              },
              "required": [
                "quarter",
                "quarter_end",
                "companies"
              ]
            }
          },
          "quarters_matched": {
            "type": "integer"
          },
          "truncated": {
            "type": "boolean"
          },
          "latest_common_quarter": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "conventions": {
            "type": "object"
          },
          "citation": {
            "type": "object"
          }
        },
        "required": [
          "companies",
          "measures",
          "quarters",
          "quarters_matched",
          "truncated",
          "notes"
        ]
      },
      "annotations": {
        "title": "Compare companies on calendar quarters",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_events",
      "title": "Get corporate events",
      "description": "Corporate events of a company found by fixed rules in its filings: acquisitions, disposals, spin-offs, discontinued operations, reorganisations, stock splits, restatements, name changes and changes of fiscal year, each with its date, fiscal period, a sentence, the counterparty and amount where the filing names them, and its source document ids. Events are recorded for companies that file with the SEC.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple or mizuho"
          },
          "types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "spin_off",
                "acquisition",
                "disposal",
                "acquisition_or_disposal",
                "reorganisation",
                "discontinued_operations",
                "cash_acquisitions",
                "cash_disposals",
                "stock_split",
                "reverse_split",
                "restatement",
                "non_reliance",
                "name_change",
                "fiscal_year_change"
              ]
            },
            "maxItems": 14,
            "description": "keep these event types"
          },
          "from": {
            "type": "string",
            "description": "first date: a year (2024) or an ISO date"
          },
          "to": {
            "type": "string",
            "description": "last date, in the same forms"
          },
          "at": {
            "type": "string",
            "description": "an ISO date: the snapshot that was the latest on that date, in place of the latest snapshot"
          }
        },
        "required": [
          "company"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "snapshot": {
            "type": "string"
          },
          "as_of": {
            "type": "object",
            "properties": {
              "period": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "period_end": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "release_date": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": []
          },
          "total": {
            "type": "integer"
          },
          "matched": {
            "type": "integer"
          },
          "types": {
            "type": "object"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "date": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "text": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "type"
              ]
            }
          },
          "note": {
            "type": "string"
          },
          "citation": {
            "type": "object",
            "properties": {
              "snapshot": {
                "type": "string"
              },
              "as_of": {
                "type": "object",
                "properties": {
                  "period": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "period_end": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "release_date": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": []
              },
              "format": {
                "type": "string"
              },
              "documents": {
                "type": "string"
              }
            },
            "required": [
              "snapshot"
            ]
          }
        },
        "required": [
          "company",
          "snapshot",
          "total",
          "matched",
          "events",
          "citation"
        ]
      },
      "annotations": {
        "title": "Get corporate events",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_data_quality",
      "title": "Get data quality",
      "description": "How far the figures of a company are proven: the values published, confirmed by a check, confirmed by a second document, derived from reported figures and withheld, with the meaning of each measure; every withheld value with its reason and documents; and every restated figure with the first, latest and published value, each with its document and filing date.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple or mizuho"
          },
          "at": {
            "type": "string",
            "description": "an ISO date: the snapshot that was the latest on that date, in place of the latest snapshot"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "maximum withheld values and restated figures each (default 50)"
          }
        },
        "required": [
          "company"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "snapshot": {
            "type": "string"
          },
          "as_of": {
            "type": "object",
            "properties": {
              "period": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "period_end": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "release_date": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": []
          },
          "measures": {
            "type": [
              "object",
              "null"
            ]
          },
          "measures_note": {
            "type": "string"
          },
          "withheld": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "table": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "period": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "item": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "reason": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": []
            }
          },
          "withheld_total": {
            "type": "integer"
          },
          "restated": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "restated_total": {
            "type": "integer"
          },
          "truncated": {
            "type": "boolean"
          },
          "conventions": {
            "type": "object"
          },
          "page": {
            "type": "string"
          },
          "citation": {
            "type": "object",
            "properties": {
              "snapshot": {
                "type": "string"
              },
              "as_of": {
                "type": "object",
                "properties": {
                  "period": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "period_end": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "release_date": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": []
              },
              "format": {
                "type": "string"
              },
              "documents": {
                "type": "string"
              }
            },
            "required": [
              "snapshot"
            ]
          }
        },
        "required": [
          "company",
          "snapshot",
          "withheld",
          "withheld_total",
          "restated",
          "restated_total",
          "citation"
        ]
      },
      "annotations": {
        "title": "Get data quality",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_snapshot_info",
      "title": "Get snapshot information",
      "description": "The latest snapshot of a company: as-of period, release date and time of publication, coverage, conventions (units, signs, fiscal calendar), validation summary, available statements, files with SHA-256 and the citation format. With at, the snapshot that was the latest on that date (point in time).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple or mizuho"
          },
          "at": {
            "type": "string",
            "description": "an ISO date: the snapshot that was the latest on that date, in place of the latest snapshot"
          }
        },
        "required": [
          "company"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "object"
          },
          "snapshot": {
            "type": "string"
          },
          "as_of": {
            "type": "object",
            "properties": {
              "period": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "period_end": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "release_date": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": []
          },
          "published_at": {
            "type": "string"
          },
          "statements": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "citation": {
            "type": "object"
          }
        },
        "required": [
          "snapshot"
        ]
      },
      "annotations": {
        "title": "Get snapshot information",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_snapshots",
      "title": "List published snapshots",
      "description": "Every snapshot that the site has published for a company, oldest first, with its as-of period, dataset hash and time of publication: the point-in-time record of the coverage. Pass a date of it as at to get_statement, get_snapshot_info, get_sources, get_events or get_data_quality for the figures as they stood then.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple or mizuho"
          }
        },
        "required": [
          "company"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "latest": {
            "type": "string"
          },
          "count": {
            "type": "integer"
          },
          "snapshots": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "snapshot": {
                  "type": "string"
                },
                "as_of": {
                  "type": "object",
                  "properties": {
                    "period": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "period_end": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "release_date": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": []
                },
                "dataset_sha256": {
                  "type": "string"
                },
                "published_at": {
                  "type": "string"
                },
                "available": {
                  "type": "boolean"
                },
                "info": {
                  "type": "string"
                }
              },
              "required": [
                "snapshot",
                "published_at"
              ]
            }
          },
          "conventions": {
            "type": "object"
          }
        },
        "required": [
          "company",
          "latest",
          "count",
          "snapshots"
        ]
      },
      "annotations": {
        "title": "List published snapshots",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_sources",
      "title": "Get source documents",
      "description": "Source documents of a company's latest snapshot: kind, period, release or filing date (indexed: the date an index added a report that states no date of publication), URL of the official document or of the search page of its store, and SHA-256 of the file used. Pass the document ids found in a statement's sources to resolve them.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple or mizuho"
          },
          "ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "description": "document ids, for example [\"10-K:0000320193-25-000079\"]; leave empty for all"
          },
          "at": {
            "type": "string",
            "description": "an ISO date: the snapshot that was the latest on that date, in place of the latest snapshot"
          }
        },
        "required": [
          "company"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "snapshot": {
            "type": "string"
          },
          "documents": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "url": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id"
              ]
            }
          },
          "citation": {
            "type": "object",
            "properties": {
              "snapshot": {
                "type": "string"
              },
              "as_of": {
                "type": "object",
                "properties": {
                  "period": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "period_end": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "release_date": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": []
              },
              "format": {
                "type": "string"
              },
              "documents": {
                "type": "string"
              }
            },
            "required": [
              "snapshot"
            ]
          }
        },
        "required": [
          "company",
          "snapshot",
          "documents",
          "citation"
        ]
      },
      "annotations": {
        "title": "Get source documents",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "run_buyout",
      "title": "Run a buyout model",
      "description": "Run the buyout model 1.0 of Annalist Deal Lab on a company's published figures, at its starting values or with the caller's assumptions under the keys of the address of the page (entry, exit_mult, years, debt, growth, margin, tax, base and the others that the starting values list). Returns the returns, sources and uses, the debt schedule, the covenants and the checks of the model, optionally the 3 solvers, every input with its source document ids, and the address of the same deal on the site. Shares and rates are fractions (0.2 for 20%) and multiples are times EBITDA. The result is arithmetic on published figures and the caller's assumptions: it values no company, recommends no transaction and forecasts nothing.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "company id from search_companies, for example apple"
          },
          "assumptions": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            },
            "description": "assumptions to change, for example {\"entry\": 8, \"debt\": 4}; leave out for the starting values"
          },
          "solvers": {
            "type": "boolean",
            "description": "also return the highest entry multiple for the target return, the growth it needs and the debt capacity"
          }
        },
        "required": [
          "company"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "snapshot": {
            "type": "string"
          },
          "model": {
            "type": "object"
          },
          "currency": {},
          "base": {},
          "computed": {
            "type": "string"
          },
          "assumptions": {
            "type": "object"
          },
          "ok": {
            "type": "boolean"
          },
          "failed_checks": {},
          "returns": {
            "type": [
              "object",
              "null"
            ]
          },
          "sources_and_uses": {
            "type": "object"
          },
          "projection": {
            "type": "object"
          },
          "debt_schedule": {
            "type": "object"
          },
          "return_bridge": {
            "type": [
              "object",
              "null"
            ]
          },
          "solvers": {
            "type": "object"
          },
          "inputs": {
            "type": [
              "object",
              "null"
            ]
          },
          "address": {
            "type": "string"
          },
          "citation": {
            "type": "string"
          }
        },
        "required": [
          "company",
          "snapshot",
          "model",
          "assumptions",
          "ok",
          "address",
          "citation"
        ]
      },
      "annotations": {
        "title": "Run a buyout model",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "search",
      "title": "Search documents",
      "description": "Search the documents of Annalist for a question in words, as ChatGPT connectors and deep research do: the overview, key findings, statements and ratios of the companies that the question names, or the overviews of the companies of an industry or sector it names. Returns ids for fetch, titles and the address of each page. For a company id to pass to the other tools, use search_companies.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "the question or keywords, for example Apple revenue growth or semiconductor margins"
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "title",
                "url"
              ]
            }
          }
        },
        "required": [
          "results"
        ]
      },
      "annotations": {
        "title": "Search documents",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "fetch",
      "title": "Fetch a document",
      "description": "The full text of one document that search returned (an overview, key findings, a statement or the ratios of one frequency of a company), as JSON with its figures, units, periods and source document ids, with the address of its page for the citation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "a document id from search, for example company:apple or statement:apple:pl_annual"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "metadata": {
            "type": "object"
          }
        },
        "required": [
          "id",
          "title",
          "text",
          "url"
        ]
      },
      "annotations": {
        "title": "Fetch a document",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    }
  ],
  "prompts": [
    {
      "name": "company_brief",
      "title": "Company brief",
      "description": "A brief of one company from its latest figures and key findings, each figure with its source document.",
      "arguments": [
        {
          "name": "company",
          "description": "the company: its name, ticker or Annalist id",
          "required": true
        }
      ]
    },
    {
      "name": "credit_review",
      "title": "Credit review",
      "description": "The credit metrics, liquidity, earnings quality and scores of one company, with the benchmark bands that its findings state.",
      "arguments": [
        {
          "name": "company",
          "description": "the company: its name, ticker or Annalist id",
          "required": true
        }
      ]
    },
    {
      "name": "peer_comparison",
      "title": "Peer comparison",
      "description": "2 to 4 companies side by side on calendar quarters, or one company with the 3 peers that Annalist names for it.",
      "arguments": [
        {
          "name": "companies",
          "description": "1 to 4 companies, by name, ticker or Annalist id, separated by commas",
          "required": true
        }
      ]
    }
  ]
}