arelle-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ARELLE_MCP_PORT | No | HTTP port (when using streamable-http) | 8000 |
| ARELLE_MCP_CACHE_DIR | No | Directory for taxonomy cache | |
| ARELLE_MCP_LOG_LEVEL | No | Logging level | INFO |
| ARELLE_MCP_TRANSPORT | No | Transport: stdio or streamable-http | stdio |
| ARELLE_MCP_MAX_FILINGS | No | Max filings cached in memory | 5 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| xbrl_load_filingA | Load an XBRL or iXBRL filing for analysis. Accepts local file paths, HTTP/HTTPS URLs (including SEC EDGAR), and ZIP archives. Returns a filing_id for use with all other tools, plus a summary with entity name, document type, period, and fact counts. This is the entry point — call this first before using any other tool. Args: params (LoadFilingInput): Filing path/URL and options. Returns: str: JSON with filing_id and filing summary. |
| xbrl_filing_summaryA | Get detailed metadata about a loaded filing. Returns entity name, CIK, document type, reporting period, fact/context/unit counts, namespaces used, and more. Args: params (FilingIdInput): The filing_id from xbrl_load_filing. Returns: str: JSON with comprehensive filing metadata. |
| xbrl_compare_filingsA | Compare two loaded XBRL filings. Identifies added, removed, and changed facts between two filings. Useful for analyzing changes between quarterly or annual reports. Both filings must be loaded first with xbrl_load_filing. Args: params (CompareFilingsInput): Two filing IDs to compare. Returns: str: JSON with added/removed/changed facts and counts. |
| xbrl_close_filingA | Close a loaded filing and free its memory (30-60MB per filing). Args: params (FilingIdInput): The filing_id to close. Returns: str: Confirmation message. |
| xbrl_list_filingsA | List all currently loaded filings with their IDs and basic info. Returns: str: JSON array of loaded filing summaries. |
| xbrl_validateA | Validate an XBRL/iXBRL filing against a disclosure system. Returns structured validation results including errors, warnings, and informational messages. Supports SEC EFM, EU ESEF, UK HMRC, and generic XBRL validation. The filing does NOT need to be loaded first — this tool loads, validates, and closes in one operation. Args: params (ValidateFilingInput): Filing path and validation options. Returns: str: JSON with validation results (valid, error_count, warning_count, errors, warnings). |
| xbrl_extract_factsA | Extract and filter XBRL facts from a loaded filing. Supports filtering by concept name, period type, dimensions, units, and more. Returns paginated results with full fact details including values, contexts, periods, and dimensional breakdowns. The filing must be loaded first with xbrl_load_filing. Args: params (ExtractFactsInput): Filtering and pagination parameters. Returns: str: JSON with filtered facts, total count, and pagination info. |
| xbrl_fact_detailsA | Get comprehensive details for all facts of a specific concept. Returns every reported value for the concept across all periods and dimensions, plus the concept's taxonomy definition with labels, data type, and balance direction. Args: params (FactDetailsInput): Filing ID and concept name. Returns: str: JSON with concept definition and all reported facts. |
| xbrl_browse_taxonomyA | Search and browse concepts in the filing's taxonomy (DTS). The Discoverable Taxonomy Set includes all standard taxonomy concepts (us-gaap, dei, srt, ifrs) plus company extensions. Filter by name, type, namespace, or whether concepts have facts. Args: params (BrowseTaxonomyInput): Search and filter parameters. Returns: str: JSON with matching concepts and pagination info. |
| xbrl_concept_detailsA | Get full details for a taxonomy concept. Returns all labels (standard, terse, verbose, documentation), references to accounting standards, data type, period type, balance direction, substitution group, and sample reported facts. Args: params (ConceptDetailsInput): Filing ID and concept name. Returns: str: JSON with comprehensive concept information. |
| xbrl_presentation_treeA | Get the presentation hierarchy (financial statement structure). The presentation linkbase defines how concepts are organized for display — each extended link role typically represents one financial statement (Balance Sheet, Income Statement, Cash Flow, etc.). Use role_filter to get a specific statement, or list_roles_only=true to see what statements are available. Args: params (PresentationTreeInput): Filing ID and filter options. Returns: str: JSON with hierarchical tree structure per role. |
| xbrl_calculation_treeA | Get calculation relationships showing how totals are computed. The calculation linkbase defines mathematical relationships between concepts — e.g., Assets = CurrentAssets + NoncurrentAssets. Each component has a weight (+1 or -1) indicating addition or subtraction. Args: params (CalculationTreeInput): Filing ID and filter options. Returns: str: JSON with calculation trees showing components and weights. |
| xbrl_dimension_structureA | Get the dimensional structure of a filing. XBRL Dimensions enable multi-dimensional data breakdowns. Returns hypercubes, dimensions (axes), domains, and members. Example: Revenue broken down by ProductOrServiceAxis with members like SoftwareMember, HardwareMember. Args: params (DimensionStructureInput): Filing ID and optional dimension filter. Returns: str: JSON with dimensional hierarchy. |
| xbrl_fetch_sec_filingA | Fetch an SEC EDGAR filing by CIK or ticker symbol. Finds the specified filing type (10-K, 10-Q, etc.) from SEC EDGAR, returns filing metadata, and optionally loads it for analysis. Either cik or ticker must be provided. If ticker is provided, it will be resolved to a CIK automatically. Args: params (FetchSecFilingInput): CIK/ticker and filing type. Returns: str: JSON with filing metadata and optionally a filing_id. |
| xbrl_search_sec_conceptA | Search SEC EDGAR for a specific XBRL concept across all filings. Returns historical values for a concept (e.g., Assets, Revenue) across all available filing periods. Uses SEC's companyconcept API. Does NOT require loading a filing first. Args: params (SearchSecConceptInput): CIK, concept name, and taxonomy. Returns: str: JSON with historical values, periods, and units. |
| xbrl_company_factsA | Get all available XBRL facts for a company from SEC EDGAR. Returns a summary of all concepts reported by the company across all filings, organized by taxonomy. Does NOT require loading a filing first. Args: params (CompanyFactsInput): CIK and optional concept filter. Returns: str: JSON with available concepts, their observation counts, and units. |
| xbrl_render_statementA | Render financial statements from XBRL data. Reconstructs balance sheet, income statement, cash flow statement, or equity statement using the presentation linkbase hierarchy, filling in actual reported values from the instance document. Args: params (RenderStatementInput): Filing ID, statement type, and format. Returns: str: Financial statement in markdown or JSON format. |
| xbrl_extract_textA | Extract clean text from a specific section of a loaded filing. Sections: 'mda' (Management Discussion & Analysis), 'risk_factors', 'financial_statements', 'notes', 'controls', 'legal', 'cover', 'all'. This extracts the actual human-readable text from the iXBRL/HTML document, not just XBRL-tagged data points. Useful for MD&A analysis, risk assessment, and qualitative content extraction. Args: params: Filing ID, section name, and max characters. Returns: str: Clean text content from the requested section. |
| xbrl_search_textA | Full-text search within a loaded filing's content. Searches the entire document text (not just XBRL facts) for the query string. Returns matching passages with surrounding context. Useful for finding guidance, forward-looking statements, specific disclosures, etc. Args: params: Filing ID, search query, context size, max results. Returns: str: JSON with matching passages and their positions. |
| xbrl_get_footnotesA | Extract footnotes linked to XBRL facts. XBRL filings can attach footnotes to specific facts, providing additional context or explanations. This tool extracts those footnotes. Args: params: Filing ID, optional concept filter, limit. Returns: str: JSON with footnotes and their linked facts. |
| xbrl_list_sectionsA | Map the complete document structure of a filing. Identifies major sections (Items, Parts) and their approximate positions and sizes. Useful for navigating large 10-K/10-Q documents. Args: params: Filing ID. Returns: str: JSON with section titles, positions, and sizes. |
| xbrl_get_cover_pageA | Extract complete cover page data from a filing. Returns all DEI (Document Entity Information) facts as a structured object: company name, CIK, ticker, fiscal year, filing date, period, shares, etc. Args: params: Filing ID. Returns: str: JSON with all DEI facts. |
| xbrl_get_html_tablesC | Extract HTML tables from the filing document. Finds tables in the HTML content, with optional text search filter. Returns tables as structured row/column data. Args: params: Filing ID, optional search filter, table index, limits. Returns: str: JSON with table data. |
| xbrl_get_exhibitsA | List exhibits attached to a filing. SEC filings include exhibits like press releases (EX-99.1), certifications (EX-31, EX-32), and other documents. Returns exhibit list with types and descriptions. Args: params: Filing ID. Returns: str: JSON with exhibit list. |
| xbrl_get_raw_xmlA | Access raw XML/HTML content from the filing document. Allows XPath queries against the document tree. Useful for advanced extraction when other tools don't cover a specific need. Args: params: Filing ID, optional XPath, max chars. Returns: str: Raw XML string of matched elements. |
| xbrl_financial_ratiosB | Compute standard financial ratios from a loaded filing. Returns liquidity, profitability, leverage, and per-share ratios calculated from the most recent period's data. Args: params: Filing ID. Returns: str: JSON with computed ratios and their interpretations. |
| xbrl_trend_analysisA | Analyze trends across periods within a single filing. 10-K filings contain 3 years of data, 10-Q has 2 quarters. Computes absolute and percentage changes for specified concepts. Args: params: Filing ID and list of concepts. Returns: str: JSON with per-concept period values and changes. |
| xbrl_segment_breakdownA | Extract dimensional breakdowns for a concept. Shows how a total (e.g., Revenue) breaks down by segments, geographies, products, or other dimensions. Args: params: Filing ID, concept name, optional dimension filter. Returns: str: JSON with dimensional breakdown including values and percentages. |
| xbrl_anomaly_detectionA | Detect unusual patterns or potential issues in a filing. Checks for: negative values where unexpected, extreme period changes, calculation mismatches, missing expected concepts, zero values. Args: params: Filing ID. Returns: str: JSON with anomaly list, severity, and descriptions. |
| xbrl_smart_summaryB | Generate an LLM-optimized structured summary of a filing. Returns a compact (<4K tokens) JSON with company info, key metrics, period comparisons, and notable items. Designed for efficient use of LLM context windows. Args: params: Filing ID and focus area. Returns: str: Compact JSON summary. |
| xbrl_peer_comparisonA | Compare a concept across multiple companies using SEC EDGAR Frames API. Returns a ranked list of companies with values for the specified concept in the given period. No filing load required. Args: params: Concept, taxonomy, unit, period, limit. Returns: str: JSON with ranked company list. |
| xbrl_run_formulaA | Execute XBRL formulas defined in the filing's linkbase. Runs value assertions, existence assertions, and consistency assertions. Returns pass/fail results for each formula. Args: params: Filing ID and trace option. Returns: str: JSON with formula execution results. |
| xbrl_list_formulasB | List all formulas, assertions, and validation rules in a filing's DTS. Args: params: Filing ID. Returns: str: JSON with formula names, types, and descriptions. |
| xbrl_dts_comparisonA | Compare two taxonomy/filing schemas. Identifies concepts, relationships, and labels that were added, removed, or changed between two filings or taxonomy versions. Args: params: Two filing IDs. Returns: str: JSON with added/removed/changed concepts and relationships. |
| xbrl_check_calculationsB | Verify calculation consistency for totals and their components. For each calculation relationship, compares the reported total with the sum of components, reporting mismatches. Args: params: Filing ID, optional concept filter, max results. Returns: str: JSON with calculation check results. |
| xbrl_validate_extendedA | Extended validation with granular control over which checks to run. Supports: xbrl21, calculations, dimensions, utr, duplicates. Returns results grouped by category with severity filtering. Args: params: Filing ID or path, checks to run, severity filter. Returns: str: JSON with categorized validation results. |
| xbrl_edgar_searchA | Full-text search across SEC EDGAR filings. Search by company name, keyword, or filing content. Returns matching filings with metadata. Args: params: Search query, optional type/date filters, limit. Returns: str: JSON with matching filings. |
| xbrl_edgar_company_infoA | Get comprehensive company profile from SEC EDGAR. Returns: name, CIK, SIC code, state, addresses, former names, and recent filing history by type. Args: params: CIK or ticker. Returns: str: JSON with company profile. |
| xbrl_edgar_filing_indexB | Get the full index of documents within a specific SEC filing. Lists all exhibits, schemas, instances, and other documents in a filing with their types, sizes, and URLs. Args: params: CIK and accession number. Returns: str: JSON with document list. |
| xbrl_edgar_bulk_factsA | Bulk download fact data for multiple concepts across multiple companies. Returns a matrix of company × concept with the most recent value. No filing load required. Args: params: List of CIKs, list of concepts, taxonomy. Returns: str: JSON matrix of values. |
| xbrl_edgar_insider_tradesA | Get insider trading data from SEC Forms 3, 4, 5. Returns recent insider transactions including the filer name, form type, and filing date. Args: params: Company CIK and limit. Returns: str: JSON with insider filing list. |
| xbrl_export_jsonA | Export all facts from a filing as structured JSON. Returns a complete JSON export of filing facts, suitable for data pipelines, database import, or further processing. Args: params: Filing ID, filters, and limit. Returns: str: JSON array of serialized facts. |
| xbrl_export_csvA | Export facts as CSV format for spreadsheet analysis. Returns CSV string with customizable columns. Args: params: Filing ID, columns, filters, limit. Returns: str: CSV-formatted string. |
| xbrl_export_conceptsB | Export taxonomy concepts as structured data. Returns all concepts in the filing's DTS with their properties. Args: params: Filing ID, namespace filter, with_facts_only flag. Returns: str: JSON with concept list. |
| xbrl_export_dtsA | Export the Discoverable Taxonomy Set (DTS) document map. Lists all schemas, linkbases, and instance documents in the DTS with their types and URLs. Args: params: Filing ID. Returns: str: JSON with DTS document list. |
| xbrl_create_instanceB | Create a new XBRL instance document from scratch. Generates a valid XBRL instance with the specified facts, contexts, and units. Returns the XML as a string. Args: params: Schema ref, entity info, and list of facts. Returns: str: JSON with the generated XBRL XML. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze_filing | Comprehensive XBRL filing analysis workflow. Guides the LLM through loading, validating, extracting key metrics, and rendering financial statements from an XBRL filing. Args: filing_source: Path or URL to the XBRL/iXBRL filing analysis_depth: 'quick' (key metrics only), 'standard' (full analysis), or 'deep' (includes dimensions, extensions, calculations) |
| compare_periods | Compare two filing periods (e.g., Q3 vs Q2, or YoY comparison). Args: filing_url_1: URL/path to the first (earlier) filing filing_url_2: URL/path to the second (later) filing |
| sec_company_deep_dive | Deep dive analysis of a public company's SEC filings. Args: identifier: Company ticker (e.g., 'AAPL') or CIK number filing_type: Filing type to analyze ('10-K' or '10-Q') |
| validate_and_fix | Validate a filing and analyze all errors/warnings. Args: filing_source: Path or URL to the filing to validate |
| taxonomy_explorer | Explore a filing's taxonomy — standard and extension concepts. Args: filing_source: Path or URL to the filing |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_disclosure_systems | Available disclosure systems for XBRL validation. Lists all supported validation rulesets: SEC EFM, EU ESEF, UK HMRC, and generic GFM. |
| get_common_concepts | Frequently used US-GAAP XBRL concepts. A curated list of the most commonly queried financial statement concepts for quick reference. |
| get_statement_types | Financial statement types and their role pattern keywords. Maps statement types (balance_sheet, income_statement, etc.) to the keywords used to match presentation link roles. |
| get_calculation_modes | Available calculation checking modes for validation. |
| get_xbrl_primer | Brief XBRL primer for LLMs. Explains key XBRL concepts: facts, contexts, units, taxonomies, linkbases, and dimensions. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheKingHippopotamus/Arelle-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server