Skip to main content
Glama
Ansvar-Systems

Finnish Energy Regulation MCP

Finnish Energy Regulation MCP

▶ Try this MCP instantly via Ansvar Gateway

50 free queries/day · no card required · OAuth signup at ansvar.eu/gateway

One endpoint, one OAuth signup, access from any MCP-compatible client.

Connect

Claude Code (one line):

claude mcp add ansvar --transport http https://gateway.ansvar.eu/mcp

Claude Desktop / Cursor — add to claude_desktop_config.json (or mcp.json):

{
  "mcpServers": {
    "ansvar": {
      "type": "url",
      "url": "https://gateway.ansvar.eu/mcp"
    }
  }
}

Claude.ai — Settings → Connectors → Add custom connector → paste https://gateway.ansvar.eu/mcp

First request opens an OAuth flow at ansvar.eu/gateway. After signup, your client is bound to your account; tier (free / premium / team / company) determines fan-out, quota, and which downstream MCPs are reachable.


Self-host this MCP

You can also clone this repo and build the corpus yourself. The schema, fetcher, and tool implementations all live here. What is not in the repo is the pre-built database — TDM and standards-licensing constraints on the upstream sources mean we host the corpus on Ansvar infrastructure rather than redistribute it as a public artifact.

Build your own: run this repo's ingestion script (entry-point varies per repo — typically scripts/ingest.sh, npm run ingest, or make ingest; check the repo root).

MCP server for Finnish energy sector regulations -- Energiavirasto market rules, Fingrid grid codes, TEM energy policy, Tukes safety rules.

License

Covers four Finnish energy regulators with full-text search across regulations, grid codes, and regulatory decisions. All data is in Finnish.

Built by Ansvar Systems -- Stockholm, Sweden


Related MCP server: Estonian Law MCP Server

Regulators Covered

Regulator

Role

Website

Energiavirasto (Energy Authority)

Energy market regulation, network pricing, emissions trading, consumer protection

energiavirasto.fi

Fingrid Oyj (Finnish TSO)

Electricity transmission, grid codes, Datahub, balancing market, frequency regulation

fingrid.fi

TEM (Ministry of Economic Affairs and Employment)

Energy policy, renewable energy support, energy efficiency, climate targets

tem.fi

Tukes (Safety and Chemicals Agency)

Electrical safety, gas safety, pressure equipment, product safety

tukes.fi


Tools

Tool

Description

fi_energy_search_regulations

Full-text search across energy regulations from Energiavirasto, TEM, and Tukes

fi_energy_get_regulation

Get a specific regulation by reference string (e.g., 588/2013)

fi_energy_search_grid_codes

Search Fingrid grid codes, Datahub requirements, and balancing rules

fi_energy_get_grid_code

Get a specific grid code document by database ID

fi_energy_search_decisions

Search Energiavirasto network pricing decisions and emissions trading rulings

fi_energy_about

Return server metadata: version, regulators, tool list, data coverage

fi_energy_list_sources

List data sources with record counts and provenance URLs

fi_energy_check_data_freshness

Check data freshness and staleness status for each source

Full tool documentation: TOOLS.md


Data Coverage

Source

Records

Content

Finlex

59 regulations

Sahkomarkkinalaki, maakaasumarkkinalaki, energy acts and decrees

Energiavirasto

32 regulations

Network pricing methodology, market monitoring, emissions trading

TEM

22 regulations

Energy policy, climate targets, renewable energy support

Tukes

19 regulations

Electrical safety, gas safety, product safety

Fingrid

53 grid codes

Frequency regulation, reserve markets, Datahub, grid connection

Energiavirasto (decisions)

66 decisions

Methodology approvals, tariff determinations, revenue caps

Total

251 records

~328 KB database

Language note: All regulatory content is in Finnish. Search queries work best in Finnish (e.g., sahkomarkkina, siirtohinta, taajuus, datahub).

Full coverage details: COVERAGE.md


Data Sources

See sources.yml for machine-readable provenance metadata.


Docker

docker build -t finnish-energy-regulation-mcp .
docker run --rm -p 3000:3000 -v /path/to/data:/app/data finnish-energy-regulation-mcp

Set FI_ENERGY_DB_PATH to use a custom database location (default: data/fi-energy.db).


Development

npm install
npm run build
npm run seed         # populate sample data
npm run dev          # HTTP server on port 3000

Further Reading


License

Apache-2.0 -- Ansvar Systems AB

See LICENSE for the full license text.

See DISCLAIMER.md for important legal disclaimers about the use of this regulatory data.


ansvar.ai/mcp -- Full MCP server catalog

Available Tools

8 tools
fi_energy_aboutC

Finnish energy regulation MCP server. Covers Energiavirasto (market regulation and network pricing), Fingrid (grid codes and Datahub), TEM (energy policy and legislation), and Tukes (electrical and gas safety).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says nothing about side effects, output format, or whether the call is a safe read, leaving the agent to assume behavior for an unannotated tool.

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?

A single efficient sentence with the domain front-loaded. The parenthetical authority list is dense but informative, and no words are wasted.

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

Completeness3/5

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

For a zero-parameter informational tool with no output schema, the description supplies the scope of coverage but not the return shape or its relationship to fi_energy_list_sources and the search/get siblings. It is adequate but not 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 tool takes zero parameters, so the baseline for this dimension is 4; there is no parameter information the description could add or omit.

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

Purpose3/5

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

The description names the domain (Finnish energy regulation) and enumerates the four authorities covered (Energiavirasto, Fingrid, TEM, Tukes), but never states the tool's action verb or what it actually returns. An agent can infer this is an overview/about tool, but the purpose is implied rather than asserted.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all, and no differentiation from the overlapping sibling fi_energy_list_sources. The agent is left to guess whether this is an entry-point tool or a duplicate of the sources listing.

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

fi_energy_check_data_freshnessA

Check data freshness for each source. Reports staleness and provides update instructions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose output behavior ('reports staleness and provides update instructions'), which is useful for a diagnostic tool, but says nothing about whether it is a read-only operation, whether it hits the network, or how costly/slow it is.

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?

Two short, front-loaded sentences with no filler. The second sentence adds genuine value about behavior rather than restating the name, though it could be folded into one tighter statement.

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?

For a zero-parameter tool with no output schema, the description covers purpose and the nature of the result ('staleness' plus 'update instructions'). What an agent needs in order to call it is present, though permission/auth expectations are not mentioned.

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 tool takes zero parameters, so there are no parameter semantics to document; the baseline of 4 applies. The description correctly implies a global, no-argument check across all sources.

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

Purpose4/5

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

The description names a specific verb and resource ('Check data freshness for each source'), making its role distinct from siblings like fi_energy_list_sources and the various search/get tools. It is clear about scope ('for each source') but does not explicitly contrast itself with the closest sibling.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the tool to call when it needs to know whether source data is stale before relying on it. There is no explicit when-to-use statement, no prerequisites, and no mention of alternatives such as fi_energy_list_sources for enumerating sources.

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

fi_energy_get_grid_codeA

Get a specific Fingrid grid code document by its database ID. Returns full text.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesGrid code document ID (from search results)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses that the tool returns 'full text,' which is useful output context, but says nothing about error behavior, permissions, or rate limits. Adequate but with clear gaps for a data retrieval tool.

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?

Two short, front-loaded sentences with no wasted words. The core action is stated first and the return format follows immediately.

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?

For a simple one-parameter retrieval tool with no output schema, the description covers the essential action and the return type ('full text'). It could mention error handling for invalid IDs, but nothing critical for correct invocation is missing.

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 the single parameter is already documented as 'Grid code document ID (from search results).' The description adds no syntax, format, or edge-case information beyond what the schema provides, making the baseline 3 appropriate.

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

Purpose4/5

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

The description states a specific verb ('Get') and resource ('Fingrid grid code document') and clarifies retrieval is by database ID. It does not explicitly differentiate itself from sibling search tools like fi_energy_search_grid_codes, though the 'by its database ID' phrasing implies a direct lookup rather than a search.

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

Usage Guidelines3/5

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

Usage is implied: the tool is for fetching a known document ID, and the schema note '(from search results)' suggests it follows a search. However, the description itself provides no explicit when-to-use guidance or mention of alternatives such as fi_energy_search_grid_codes.

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

fi_energy_get_regulationA

Get a specific Finnish energy regulation by its reference string (e.g., '588/2013'). Returns full text.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceYesRegulation reference (e.g., '588/2013')

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It usefully discloses that the full text is returned, but says nothing about behavior on an unknown/malformed reference (error vs empty), rate limits, or access requirements for a lookup tool.

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?

Two short sentences with zero waste; the resource and keying method are front-loaded and the return hint follows immediately.

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?

With no output schema, the description correctly notes that full text is returned, closing the biggest return-value gap. The remaining omission is failure behavior for an unmatched reference string.

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?

Only one parameter and schema coverage is 100%, with the same '588/2013' example appearing in both schema and description, so the description adds no meaning beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Get a specific Finnish energy regulation') plus the keying mechanism ('by its reference string'). It does not distinguish itself from the sibling fi_energy_search_regulations, so an agent must infer the lookup-vs-search split.

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

Usage Guidelines3/5

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

Usage is implied by the required reference string: this tool is for when you already have an exact reference. There is no explicit 'use search_regulations to find a reference first' guidance, and no when-not conditions.

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

fi_energy_list_sourcesA

List data sources with record counts, provenance URLs, and last refresh dates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the shape of the returned content (counts, provenance URLs, refresh dates), which implies a read-only catalog operation, but it never explicitly states that it is read-only, whether it is paginated, or how large the result can be.

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?

A single front-loaded sentence with no filler. Every clause contributes: the resource, the record-count dimension, provenance, and freshness.

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?

There is no output schema, so the description must convey return content, and it does so by naming the three key fields. For a zero-parameter read-only listing tool this is nearly complete; only pagination/ordering behavior is unspecified.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies.

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

Purpose4/5

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

States a specific verb (List) and resource (data sources) and names the value of the result (record counts, provenance URLs, refresh dates). It is distinguishable from the regulation/grid-code/decision retrieval siblings, but does not explicitly contrast itself with the closest sibling, fi_energy_check_data_freshness.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is a discovery/catalog call, but the description never says when to call it instead of a search tool or fi_energy_check_data_freshness. No prerequisites or exclusions are given.

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

fi_energy_search_decisionsB

Search Energiavirasto network pricing decisions, market supervision rulings, and emissions trading decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (default 20, max 100).
queryYesSearch query (e.g., 'verkkopalvelu', 'siirtohinta', 'paastooikeus', 'sahkonmyynti')
decision_typeNoFilter by decision type. Optional.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about result ordering, pagination beyond the schema's limit, permissions, or the response shape. For a search tool with zero structured annotation coverage this leaves significant gaps.

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?

A single front-loaded sentence that names the verb and the covered decision domains with zero filler. Nothing to trim and nothing buried.

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

Completeness3/5

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

With no output schema and no annotations, the description should carry behavioral context, but it only covers topical scope. For a 3-parameter search tool with full schema coverage, this is the minimum viable level – an agent can call it, but knows nothing about result behavior.

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%: the query, limit, and decision_type parameters are all documented in the schema, including enum values and example query terms. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (search) and resource (Energiavirasto decisions) and enumerates three covered domains: network pricing decisions, market supervision rulings, and emissions trading decisions. This distinguishes it reasonably from siblings like fi_energy_search_regulations and fi_energy_search_grid_codes, though it never names them explicitly.

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

Usage Guidelines2/5

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

The description implies a search use case but gives no when-to-use guidance, no condition that selects this over fi_energy_search_regulations or fi_energy_search_grid_codes, and no prerequisites. The agent must infer routing from the resource noun alone.

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

fi_energy_search_grid_codesC

Search Fingrid grid codes, balancing rules, reserve market regulations, and Datahub requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (default 20, max 100).
queryYesSearch query (e.g., 'taajuus', 'reservi', 'liittyma', 'datahub', 'kantaverkko')
code_typeNoFilter by code type. Optional.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about read-only nature, response shape, ranking, or rate limits. The only implicit trait is that 'Search' is a read operation, which is left for the agent to assume.

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?

A single front-loaded sentence naming the verb and the covered content domains with no filler. It is efficient, though it wastes no words partly because it says so little.

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

Completeness3/5

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

For a simple three-parameter search with full schema coverage and no output schema, the description is minimally adequate. It lacks the disambiguation from sibling regulation/decision search tools and any behavioral hints, which for a retrieval tool is a meaningful but not fatal gap.

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%, with query, limit, and code_type all documented including enum values and a concrete query example. The description adds no parameter meaning beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

Names a specific verb (Search) and a concrete resource domain (Fingrid grid codes, balancing rules, reserve market regulations, Datahub requirements). It is clear what the tool returns, but it does not differentiate itself from the close sibling fi_energy_search_regulations, which an agent could easily confuse it with.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, no prerequisites, and no mention of alternatives despite five closely related siblings (search_regulations, get_grid_code, search_decisions, get_regulation). The agent must infer the boundary between this and the regulations search entirely on its own.

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

fi_energy_search_regulationsA

Search across Finnish energy regulations from Energiavirasto, TEM, and Tukes. Returns laki (acts), asetus (decrees), maarays (regulations/orders), and ohje (guidance). Supports Finnish-language queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by regulation type. Optional.
limitNoMaximum results (default 20, max 100).
queryYesSearch query in Finnish or English (e.g., 'sahkomarkkina', 'energiatehokkuus', 'sahkoturvallisuus', 'maakaasu')
statusNoFilter by status. Defaults to all.
regulatorNoFilter by regulator. Optional.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the returned document types (laki, asetus, maarays, ohje) and language support, which is useful, but says nothing about read-only safety, pagination beyond the limit param, rate limits, or result 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 short sentences, zero filler, and the corpus scope is front-loaded before the return types. Every sentence earns its place.

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?

For a search tool with no output schema and fully documented parameters, the description covers the corpus, the sources, and the returned document classes adequately. Minor gaps remain around result format and ranking/pagination behavior.

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%, with enum values and defaults already documented for type, status, regulator, and limit. The description adds no parameter syntax or semantics beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (Search) and resource (Finnish energy regulations) plus the authoritative sources (Energiavirasto, TEM, Tukes) and the document classes it returns. It does not explicitly distinguish itself from near siblings like fi_energy_search_decisions or fi_energy_search_grid_codes, so it falls short of a 5.

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

Usage Guidelines3/5

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

Usage is implied through the corpus boundary — it searches regulations, not decisions or grid codes — but there is no explicit when-to-use/when-not-to-use statement and no routing to alternatives. 'Supports Finnish-language queries' is a capability note rather than selection guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedfi_energy_about
    • First observedfi_energy_check_data_freshness
    • First observedfi_energy_get_grid_code
    • First observedfi_energy_get_regulation
    • First observedfi_energy_list_sources
    • First observedfi_energy_search_decisions
    • First observedfi_energy_search_grid_codes
    • First observedfi_energy_search_regulations

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: search vs. get for regulations and grid codes, separate search for decisions, and meta tools for about, sources, and freshness. Search regulations and search decisions are both legal-adjacent, but their descriptions specify different sources and document types, so confusion is unlikely.

Naming Consistency5/5

All tools use the predictable fi_energy_ prefix with snake_case and a consistent verb_noun pattern for most tools. The only noun-form tool, fi_energy_about, is a conventional exception that does not disrupt the naming scheme.

Tool Count5/5

Eight tools are well-scoped for a focused regulatory data server. The set avoids redundancy while providing search/get pairs for major content types and useful metadata tools.

Completeness4/5

The surface covers search and retrieval for regulations and grid codes plus search for decisions, with source and freshness metadata. The main gap is the absence of a get_decision tool, leaving full-text retrieval for Energiavirasto decisions asymmetric with the other content types.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers