Skip to main content
Glama

Server Details

Semantic search over Nordic filings, press releases, macro data and electricity prices.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
AIDataNordic/nordic_financial_mcp
GitHub Stars
0
Server Listing
Nordic Financial MCP

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.7/5 across 7 of 7 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clear, distinct purpose: analyze_company for synthesized answers, company_research for raw grouped search results, search_filings for direct database queries, get_company_info for registry data, get_current_power_price for electricity prices, parse_pdf_to_text for full document extraction, and ping for connectivity. Descriptions explicitly differentiate them, preventing confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: analyze_company, company_research, get_company_info, get_current_power_price, parse_pdf_to_text, search_filings, and ping (a single word but acceptable). No mixing of conventions or inconsistent styles.

Tool Count5/5

Seven tools is well-scoped for a Nordic financial data server. Each tool serves a necessary function without redundancy or bloat. The count covers core data retrieval, analysis, registry lookup, niche data (power prices), and utility tools (PDF parsing, health check), fitting the server's purpose.

Completeness4/5

The tool set covers the main workflows: searching filings, analyzing companies, retrieving registry data, fetching power prices, and extracting full documents. A minor gap is the lack of a direct Swedish registry lookup (get_company_info excludes Sweden, and search_filings doesn't provide registration data). Otherwise, the surface is well-rounded for Nordic financial queries.

Available Tools

7 tools
analyze_companyA
Read-only
Inspect

AI-powered company analysis using semantic search over Nordic financial data.

Orchestrates multiple searches internally and returns a synthesized narrative answer with source citations. Covers annual reports, quarterly reports, press releases and macroeconomic context for Nordic listed companies.

Use this when you want a synthesized answer rather than raw search chunks. For raw data access, use search_filings or company_research instead. For a full due diligence report with AI-planned sections, use the Alfred MCP server: alfred.aidatanorge.no/mcp

Args: company: Company name or ticker question: What you want to know about the company model: 'haiku' (default) or 'sonnet'

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoModel: 'haiku' (default, fast, ~$0.07/call) or 'sonnet' (more capable, ~$0.24/call)haiku
companyYesCompany name or ticker, e.g. 'Equinor' or 'EQNR'
questionYesQuestion to answer, e.g. 'How did margins develop 2022-2024?' or 'What are the main risk factors?'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only and closed-world behavior. The description adds value by explaining that the tool orchestrates internal searches and returns a synthesized narrative with source citations. It also mentions cost differences between model options. While transparent, it lacks explicit details about potential time or scope limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise at about six sentences, with the core purpose front-loaded. Each sentence adds value, and there is no redundancy. Minor improvements could tighten the phrasing, but overall structure is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (covering return value details), the description provides adequate context: scope (Nordic financial data), data sources, and citation behavior. Some might expect explicit mention of supported company formats or geographic limitations, but overall completeness is strong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already provides detailed descriptions for all parameters (including examples and cost info). The tool description's parameter section merely repeats the schema without adding new semantic value, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it performs 'AI-powered company analysis using semantic search over Nordic financial data' and distinguishes itself from sibling tools by emphasizing it returns a synthesized narrative answer with citations rather than raw data. It clearly identifies the verb (analyze/answer), resource (Nordic financial data), and scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'Use this when you want a synthesized answer rather than raw search chunks.' It also provides clear alternatives: 'For raw data access, use search_filings or company_research instead.' Additionally, it directs users to an external server for full due diligence reports, covering all usage contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_researchA
Read-only
Inspect

Run multiple targeted searches and return raw results grouped by section.

The caller defines all sections and queries — this tool does not decide what is relevant. Before calling, reason about which topics and data sources matter for this specific company: financial metrics, risk factors, sector-specific macro drivers (e.g. freight rates for shipping, power prices for aluminium smelters), recent press releases, peer context, etc. Formulate one query per section.

Each query is run independently as a full hybrid search (dense + sparse + rerank). Results are raw chunks — the caller is responsible for synthesis.

For a fully orchestrated due diligence report (AI-planned sections, synthesized narrative), use the Alfred MCP server instead: alfred.aidatanorge.no/mcp

IMPORTANT — use 'ticker' on company-specific sections to avoid false positives. Without a ticker filter, documents that merely mention the company (e.g. as a customer or competitor) can rank above actual filings from that company. Omit 'ticker' only for sections where cross-company results are intentional, such as sector macro context or peer comparisons.

Args: company: Company name, used for metadata only (not a filter). sections: Up to 8 sections. Example: [ {"name": "financials", "query": "Equinor revenue EBITDA operating profit 2024", "ticker": "EQNR"}, {"name": "risk", "query": "Equinor climate regulatory risk stranded assets", "ticker": "EQNR"}, {"name": "macro", "query": "Brent crude oil price energy sector Norway 2024", "limit": 3}, {"name": "news", "query": "Equinor press release dividend acquisition 2024", "ticker": "EQNR"} ]

Returns: Dict with 'company', 'generated_at', and 'sections' — one entry per requested section with its name and results (same format as search_filings). Sections with no results return an empty list.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyYesCompany name to research, e.g. 'Equinor', 'Norsk Hydro', 'Aker BP'
sectionsYesList of section dicts. Each must have 'name' (str) and 'query' (str). Optional: 'ticker' (str, filters results to that company), 'limit' (int, default 5, max 10). Maximum 8 sections.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that results are raw chunks, queries are independent, and synthesis is caller's responsibility. Annotations already indicate readOnlyHint=true, but description adds important behavioral context like hybrid search and false positive risks without ticker.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections, but slightly long. Front-loads purpose and usage. Minor redundancy (ticker explanation appears twice) prevents perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complexity and presence of output schema, description covers all necessary behavioral aspects: return format, section behavior, limits, error handling implied. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description greatly extends meaning: company is metadata-only, sections includes examples, optional ticker/limit fields, and clarifications. Adds value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Run multiple targeted searches and return raw results grouped by section.' It distinguishes from siblings like search_filings and analyze_company by focusing on multi-section, raw output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Detailed guidance on when to use (multiple targeted searches, raw synthesis) and when not (use Alfred MCP for orchestrated reports). Provides explicit alternatives and instructions for query formulation, ticker usage, and section structuring.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_company_infoA
Read-only
Inspect

Look up a company in the official business registry for Norway, Denmark or Finland.

Use this to retrieve authoritative registration data (legal name, status, address) for a known organisation number. Do not use for Sweden (SE) — use search_filings with country='SE' instead, as Bolagsverket integration is not yet available. Do not use to discover tickers or ISIN codes — use search_filings for that.

Args: identifier: Organisation/business/CVR number. Format varies by country: NO: 9-digit organisation number, e.g. 923609016 (Equinor) DK: 8-digit CVR number, e.g. 22756214 (Maersk) FI: Business ID with hyphen, e.g. 0112038-9 (Nokia) country: Two-letter country code: 'NO' (default), 'DK', or 'FI'.

Returns: Dict with company name, status and registered business address. Returns {'error': ''} if the company is not found, the identifier format is invalid, or the upstream registry API is unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoTwo-letter country code: NO (default), DK, or FINO
identifierYesOrganisation number (NO: 9 digits, DK: 8 digits CVR, FI: business ID with hyphen)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds behavioral context beyond annotations: it describes the return format (dict with company name, status, address), error handling (returns error message if not found or API unavailable), and external API dependency. This is valuable additional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded: purpose first, then usage guidelines, then parameter details with examples, then return format. Every sentence adds value, no wasted words. It is concise yet comprehensive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the moderate complexity (three country-specific formats, error handling) and the presence of an output schema (though not shown), the description covers the essential aspects. It explains inputs, outputs, and error cases. A slight improvement could be to mention that the output schema exists or provide more detail on the returned fields, but it is already complete enough for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds significant value by providing format examples per country (NO: 9 digits, DK: 8 digits CVR, FI: business ID with hyphen) and specifying the default for country. This helps the agent construct correct parameter values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool looks up a company in official business registries for Norway, Denmark, or Finland. It specifies the verb 'Look up' and resource 'company in official business registry'. It distinguishes from siblings by explicitly stating not to use for Sweden (use search_filings) and not for tickers/ISIN (use search_filings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides when-to-use (retrieve authoritative registration data for known organisation numbers) and when-not-to-use (for Sweden, for tickers/ISIN). It gives concrete alternatives: use search_filings with country='SE' for Sweden and search_filings for tickers/ISIN. This leaves no ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_power_priceA
Read-only
Inspect

Fetch today's hourly day-ahead electricity spot prices for a Nordic bidding zone.

Use this for current and near-term (today/tomorrow) price queries. Do not use for historical price analysis — use search_filings with report_type='macro_summary' and a date reference in the query for that purpose. Tomorrow's prices are published by NordPool around 13:00 CET; requests before that time will return "not yet available" for the tomorrow field.

All zones return prices in EUR/kWh (NordPool day-ahead, native currency). Norwegian zones (NO1–NO5) use hvakosterstrommen.no; all other zones use ENTSO-E.

Args: zone: Bidding zone code. Options: NO1 (East/Oslo), NO2 (Southwest), NO3 (Central/Trondheim), NO4 (North), NO5 (West/Bergen), SE1–SE4, DK1, DK2, FI. include_tomorrow: Set to True to also fetch tomorrow's hourly prices if already published (default False).

Returns: Dict containing zone, date, current_hour_utc, current price, and a 'today' summary with min/max/avg and the full hourly list. Includes a 'tomorrow' key if include_tomorrow=True. Returns {'error': ''} if price data is unavailable for the requested zone or date.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneNoBidding zone: NO1–NO5, SE1–SE4, DK1, DK2, or FINO1
include_tomorrowNoAlso fetch tomorrow's prices if available (published after 13:00 CET)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes price units (EUR/kWh), data sources (hvakosterstrommen.no vs ENTSO-E), and behavior for unavailable tomorrow data. Annotations already declare readOnlyHint and openWorldHint; description adds valuable transparent context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections (purpose, usage, parameters, returns). Front-loaded with main verb and resource. Slightly verbose in parameter listing but justified by tool complexity; no redundant sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all aspects: purpose, usage constraints, behavioral details, parameter options, return format, and error handling. With only 2 parameters and detailed annotations, the description is fully adequate for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description repeats parameter details and adds minor behavioral context (sources, timing) but does not fundamentally enhance understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch' and the resource 'today's hourly day-ahead electricity spot prices for a Nordic bidding zone'. It distinguishes from sibling tool search_filings for historical analysis, making the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this for current and near-term (today/tomorrow) price queries. Do not use for historical price analysis — use search_filings...' and provides timing details (publication at 13:00 CET). This offers clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_pdf_to_textA
Read-only
Inspect

Download a PDF from a URL and extract all text content, page by page.

Use this to read the full text of a specific document — for example, an annual report PDF linked from a search_filings result. Best combined with search_filings: use search_filings to locate the document, then parse_pdf_to_text for the full text. Do not use for PDFs that are already well-represented in the database — search_filings is faster and returns pre-ranked, relevant excerpts. Not suitable for scanned (image-only) PDFs without embedded text; those pages will be returned as "(no extractable text)".

Args: pdf_url: Direct HTTPS URL to the PDF file, e.g. https://example.com/report.pdf. Must be publicly accessible; authentication-protected URLs will fail.

Returns: All text from the PDF with "--- Page N ---" separators between pages. Returns an error string if the download fails, the URL does not point to a valid PDF, or the document exceeds the 60-second download timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdf_urlYesDirect HTTPS URL to the PDF file

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint and openWorldHint. Description adds key behaviors: page separators, error handling for failed downloads or invalid URLs, timeouts, and behavior for scanned PDFs. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured: opens with main purpose, then usage guidance, constraints, parameter details, and return format. Every sentence adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, single parameter, presence of annotations and output schema, the description covers all necessary context: return format, error conditions, and limitations. Fully adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (pdf_url) with schema coverage 100%. Description adds important context: must be publicly accessible, authentication-protected URLs fail, and includes an example. This goes beyond the schema's minimal description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool downloads a PDF from a URL and extracts text page by page. It distinguishes itself from sibling tools like search_filings, which returns excerpts, making the purpose specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (full text of specific document), when not to use (already well-represented in database, scanned PDFs), and alternatives (search_filings for excerpts). Also specifies constraints like public URLs and timeout.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingA
Read-only
Inspect

Connectivity check that confirms the Nordic MCP server process is responding.

Use this at the start of a session to verify the server is reachable before making other calls. Do not use as a proxy for database health — the server can respond while the Qdrant vector database is temporarily unavailable. To confirm data availability, call search_filings directly.

Returns: A greeting string: "Hello {name}! Nordic MCP server is running."

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoArbitrary label included in the response, e.g. 'healthcheck' or 'agent-1'world

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses behavior: it returns a greeting string with the input name. This complements the readOnlyHint annotation. There are no contradictions, and the description adds value beyond annotations by specifying the return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three focused sentences: purpose, usage guidelines with alternatives, and return description. No redundant information, front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 optional parameter, read-only) and the presence of an output schema, the description covers all necessary aspects: purpose, usage context, caveats, and return value. It is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the 'name' parameter with 100% coverage. The description adds value by providing usage examples ('e.g. healthcheck or agent-1'), enhancing semantic understanding even though the baseline is 3 due to schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as a connectivity check for the Nordic MCP server. It uses specific verbs ('confirms', 'respond') and distinguishes itself from sibling tools like search_filings by explicitly stating it is not a proxy for database health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: use at session start before other calls, and do not use for database health—instead call search_filings. This directly addresses when to use and when not to, with a clear alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_filingsA
Read-only
Inspect

Search the Nordic financial database for company filings, press releases and macroeconomic summaries.

Use this as the primary tool for any question about Nordic listed companies, markets or macro conditions. Do not use to retrieve a full document — results are chunked text excerpts; use parse_pdf_to_text for the full original document. Do not use for Swedish company registration data — use get_company_info instead.

The database contains ~1 million vectors across four Nordic markets (NO/SE/DK/FI).

COMPANY FILINGS Annual reports (XBRL/ESEF) and quarterly reports from ~1 500 listed companies across Oslo Børs, Nasdaq Stockholm, Nasdaq Helsinki, Nasdaq Copenhagen and First North markets. Covers 2020–present. Strong coverage for NO and SE; growing coverage for DK and FI.

EXCHANGE ANNOUNCEMENTS & PRESS RELEASES Regulatory filings, exchange announcements and press releases from listed companies in NO, SE, DK and FI. Covers 2020–present.

MACROECONOMIC SUMMARIES Quarterly macro summaries covering key indicators per country: Norway (NO): policy rate, FX rates, CPI, house prices, credit growth, electricity price, salmon price, GDP components Sweden (SE): policy rate, house price index, household credit Denmark (DK): policy rate, house price index, household loans, electricity price Finland (FI): house price index, household debt-to-income ratio, electricity price Use report_type='macro_summary' and country='NO'/'SE'/'DK'/'FI' to filter. Use fiscal_year and a quarter reference in your query, e.g. "Norwegian housing market Q1 2024".

Args: query: What you are looking for, e.g. 'net interest margin outlook', 'salmon price Q3', 'dividend policy', 'fleet utilization', 'Norwegian housing market 2024 Q1', 'Swedish policy rate inflation 2023' ticker: Optional — filter by company ticker, e.g. 'SALM', 'EQNR', 'NDA' fiscal_year: Optional — filter by year, e.g. 2024 report_type: Optional — one of: 'annual_report' – Nordic XBRL/ESEF annual reports 'quarterly_report' – Quarterly/interim reports 'press_release' – Exchange announcements and press releases 'macro_summary' – Quarterly macroeconomic summaries sector: Optional — filter by sector: 'seafood' – seafood companies 'energy' – energy / oil & gas 'shipping' – shipping companies country: Optional — filter by country code: 'NO', 'SE', 'DK' or 'FI' limit: Number of results after reranking (default 5, max 20)

Returns: List of relevant text excerpts with metadata, reranked by relevance. Each result includes rerank_score, hybrid_score, vector_score, company, ticker, country, fiscal_year, report_type, period, filing_date and the full text chunk. Returns an empty list if no relevant results are found or if the Qdrant database is temporarily unreachable.

ParametersJSON Schema
NameRequiredDescriptionDefault
fastNoSkip reranking and return results ranked by hybrid score only. Faster but less precise.
limitNoNumber of results to return (1–20)
queryYesNatural language search query, e.g. 'Equinor dividend 2024' or 'Norwegian housing market Q3'
sectorNoFilter by sector, e.g. 'energy', 'financials', 'salmon'
sourceNoFilter by data source, e.g. 'xbrl_esef', 'newsweb', 'mfn_nordics', 'nasdaq_se'
tickerNoFilter by company ticker, e.g. 'EQNR', 'SALM', 'NDA'
countryNoFilter by country: NO, SE, DK, or FI
fiscal_yearNoFilter by fiscal year, e.g. 2024. Use 0 for no filter
report_typeNoFilter by type: annual_report, quarterly_report, press_release, exchange_announcement, macro_summary
max_chunk_indexNoOnly return chunks with chunk_index <= this value. Use 3 to target introductory sections of long documents. Use 0 for no filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description aligns with readOnlyHint=true, indicating a safe read-only operation. It adds context: database contains ~1M vectors, results are chunked excerpts reranked by relevance, returns empty list if no results or database unreachable. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is lengthy but well-structured with sections for different content types (COMPANY FILINGS, EXCHANGE ANNOUNCEMENTS, MACROECONOMIC SUMMARIES) and uses bullet points. Every sentence adds value given the complexity (10 params, multiple categories). Minor redundancy in some examples but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, 1 required, full schema description, and no output schema in input (but has it according to context), the description covers all necessary aspects: database scope, parameter details, usage examples, return format, and error handling. It is complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description's Args section adds significant value with examples, allowed values, and context for each parameter. For instance, query examples include 'net interest margin outlook', 'Norwegian housing market Q4', and report_type options are listed with explanations. This exceeds what the schema alone provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool searches the Nordic financial database for company filings, press releases, and macro summaries. It distinguishes from siblings by specifying it is the primary tool for Nordic-related queries and explicitly telling agents not to use it for full document retrieval (use parse_pdf_to_text) or Swedish company registration (use get_company_info).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use ('primary tool for questions about Nordic listed companies, markets or macro conditions') and when-not-to-use ('do not use to retrieve a full document', 'do not use for Swedish company registration data') with alternatives. Includes concrete examples for macro summaries and query patterns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    Financial research data backend for AI agents, offering standardized financial data, semantic news and event search, paragraph-cited company filings, and alternative data across US, Japan, Hong Kong, and China A-shares.
    6
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI clients to search and analyze SEC filings, financial statements, insider trades, and institutional holdings through natural language tools.
    9
    13
    1
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Enables to search and retrieve SEC EDGAR filings, insider transactions, major shareholders, and executive compensation data through natural language.
    10
    MIT
  • -
    license
    -
    quality
    -
    maintenance
    Enables deep analysis of SEC EDGAR filings through universal company search, document content extraction, and advanced filing search capabilities. Provides AI-ready access to business descriptions, risk factors, financial statements, and full-text search across any public company's SEC documents.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.