REE MCP Server
Server Quality Checklist
Latest release: v1.4.0
- Disambiguation4/5
Most tools have clearly distinct purposes (demand, generation, prices, etc.), but get_indicator_data is a generic tool that can retrieve many of the same data types as dedicated tools, potentially causing confusion about which to use.
Naming Consistency5/5All tool names follow a consistent verb_noun snake_case pattern (e.g., get_carbon_intensity, list_indicators), making the set predictable and easy to navigate.
Tool Count5/5With 18 tools covering various aspects of electricity grid data (demand, generation, prices, storage, etc.), the count is well-scoped and each tool serves a specific role.
Completeness5/5The tool surface covers major domain operations: demand, generation mix, carbon intensity, prices, storage, international exchanges, and indicator discovery. The generic get_indicator_data fills any gaps.
Average 4.1/5 across 18 of 18 tools scored. Lowest: 3.2/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the full burden. It states the tool 'analyzes' and 'calculates,' implying a read-only operation, but does not explicitly confirm non-destructive behavior, rate limits, or any side effects. The lack of explicit transparency about safety or performance is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with an overview, args, returns, and examples. It is front-loaded with the purpose. However, the examples could be shortened; overall it is concise enough for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two parameters, no annotations, output schema exists), the description covers the core purpose, required args, and return format with examples. The missing annotation information reduces completeness slightly, but the provided elements are adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds format constraints (YYYY-MM-DD) and provides examples for usage. This adds meaning beyond the bare schema, though no further details on allowed values or behavior are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves peak demand analysis over a period, analyzing daily maximum and minimum demand to identify patterns and calculate load factors. While it is specific, it does not explicitly distinguish it from siblings like get_daily_demand_statistics, which may overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or sibling tools, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 states the tool 'gets' data, implying a read operation, and describes the return format (JSON with metadata, series, statistics). However, it does not disclose any potential side effects, authentication needs, or rate limits, which are important for a tool that fetches historical data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for Args, Returns, and Examples. Each sentence is informative and earns its place. It is slightly lengthy but still concise enough for an AI agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (the agent can infer return structure), the description covers the essential aspects: purpose, required parameters, optional parameters, and example calls. It does not detail error handling or data limits, but it is sufficiently complete for a data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description fully compensates by explaining each parameter with examples (e.g., indicator_id: '1293 for real demand, 549 for nuclear'; time_granularity: 'raw, hour, day, fifteen_minutes'). The examples provide concrete usage patterns, adding significant value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves time-series data for a specific electricity indicator from REE, listing examples like demand, generation, prices. It distinguishes itself from sibling tools that are more specialized (e.g., get_generation_mix, get_carbon_intensity) by being a generic fetcher for any indicator ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides Args and examples showing how to use the tool, but does not explicitly state when to use this tool versus the more specific sibling tools. It lacks direct 'when-to-use' or 'when-not-to-use' guidance, leaving the agent to infer based on the generic nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully carries the burden of behavioral disclosure. It does not mention whether the tool is read-only, any required permissions, rate limits, or side effects. While it states it returns a JSON string, deeper behavioral context is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line purpose, a brief convenience note, structured Args/Returns/Examples sections. No redundant information, and every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, a summary), the description covers purpose, parameters, return format, and usage example. It could be more complete by explaining the output structure in detail, but since an output schema exists (not shown), the return mention is sufficient. Minor gap compared to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by documenting the sole 'date' parameter: specifying format (YYYY-MM-DD), default value (2025-10-08), and providing an example. This adds meaning far beyond the bare input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a summary of electricity demand for a specific date, using a specific verb and resource. It distinguishes itself from siblings like analyze_demand_volatility or get_daily_demand_statistics by specifying it is a 'convenience tool' that provides key demand indicators in a single call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool versus similar alternatives like get_daily_demand_statistics. It does not specify prerequisites, when-not-to-use scenarios, or decision criteria for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It mentions returning a JSON with volatility analysis and stability assessment, but does not disclose computational cost, data freshness, or side effects (though likely read-only). Acceptable but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise: a clear purpose line, structured args/returns sections, and examples. No fluff, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so description needn't detail return structure. It provides high-level outcome and example usage. Given 2 required parameters and clear examples, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, but the description adds YYYY-MM-DD format and examples showing start/end dates. This compensates for the schema's lack of parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it analyzes demand volatility over a period, calculating daily demand swings, load factors, and volatility levels. This clearly distinguishes it from siblings that fetch data (e.g., get_daily_demand_statistics) or compare (compare_forecast_actual), providing a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like get_daily_demand_statistics or compare_forecast_actual. While examples show date range usage, they do not differentiate use cases or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It mentions the tool analyzes SPOT prices and returns JSON, but does not reveal potential behavioral traits such as error handling, rate limits, or what 'statistics' entails. More detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with docs-style sections (Args, Returns, Examples). However, the note about SPOT is somewhat redundant with the first sentence, and the description could be tightened without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, and an output schema, the description covers the basics (parameter formats, example usage) but lacks completeness on edge cases, error conditions, or more precise definition of 'statistics'. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description adds meaning: start_date and end_date are ISO format, geo_filter is optional with examples like "Península" and "Portugal". This compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: 'Get electricity price analysis over time' for SPOT market prices with multi-country comparison. It distinguishes from siblings like 'get_spain_hourly_prices' by stating it handles multiple countries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context: use for SPOT prices, with optional geo_filter to focus on a specific market. Examples clarify typical use cases. However, it does not explicitly mention when to avoid this tool (e.g., for Spain-only data) or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose any behavioral traits beyond input formats (date/hour) and return type (JSON string). Missing details like rate limits, permission requirements, or what exactly the JSON contains (e.g., keys like 'inertia_level', 'risk_score').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with a one-line purpose, followed by structured Args/Returns/Examples. Concise and well-organized, though the docstring format adds some verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the concept and provides examples, but lacks details about the output fields (e.g., what 'stability metrics' are included). With an output schema available, the burden is reduced, but the description could still summarize the return structure for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates fully: specifies date format YYYY-MM-DD, hour format HH with default '12' and range 00-23, and provides examples. This adds significant clarity beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves grid stability metrics at a specific time, analyzing synchronous generation vs variable renewables. It distinguishes itself from sibling tools like analyze_demand_volatility or get_carbon_intensity by focusing on grid inertia and stability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (specific time queries) via examples and context, but does not explicitly contrast with alternatives or specify conditions to avoid. It provides clear usage via Args and Examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral traits disclosed beyond basic retrieval; no annotations provided, but description is consistent and adds no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with docstring sections (Args, Returns, Examples), though slightly verbose; every part is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity and presence of output schema, description fully explains inputs, output format, and provides examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description includes detailed docstring with format (YYYY-MM-DD, HH) and default for 'hour', adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'get' with specific resource 'electricity generation mix'. Distinguishes from sibling 'get_generation_mix_timeline' by specifying 'at a specific time'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for a single hour via parameters 'date' and 'hour', but no explicit comparison with siblings or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions searching all available indicators and returning a JSON string, but does not disclose side effects, authentication, rate limits, or whether it is read-only (though implied). This is minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with a clear purpose statement, arg descriptions, return type, and examples. Every sentence serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no annotations, output schema exists), the description is largely complete. It covers search behavior, parameters, and examples. The output is described as 'JSON string with matching indicator metadata', which suffices since the output schema presumably details the structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds significant value by explaining the keyword parameter is searched in name/short name, giving concrete examples, and stating the limit parameter's default. This goes beyond the bare schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches indicators by keyword in their names or short names, which is specific and distinct from the sibling tools (e.g., list_indicators lists all, get_indicator_data retrieves data for a specific indicator). The verb 'search' and resource 'indicators' are precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides examples and default limit but does not explicitly state when to use this tool versus alternatives like list_indicators or get_indicator_data. No exclusion or comparative guidance is given, leaving the agent to infer usage from examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 that the tool calculates forecast accuracy metrics and returns a JSON string, but does not describe side effects, data sources, or whether it is destructive. The behavior is fairly transparent but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with clear sections (Args, Returns, Examples), and front-loaded with the core purpose. Every sentence adds value without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single parameter, output schema exists, no nested objects), the description fully covers the purpose, input format, and return type. No gaps remain for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one string parameter 'date' with no description (0% coverage). The description adds meaning by specifying the format ('YYYY-MM-DD') and providing an example, which compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Compare') and resource ('forecasted vs actual electricity demand'), and specifies it calculates accuracy metrics like error, MAE, RMSE. This distinguishes it from siblings that focus on other analyses like volatility or generation mix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for comparing forecasts to actuals and provides a concrete example, but does not explicitly state when to use this tool over alternatives or any prerequisites. No exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so the description must cover behavioral traits. It explains the aggregation and return format but lacks details on error scenarios, data availability, or any side effects. The tool is likely read-only, but this is not explicitly confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with clear sections (Args, Returns, Examples) and front-loads the core purpose. It is slightly verbose due to the examples, but each section adds value. One or two sentences could be trimmed, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only 2 parameters and an output schema (though not provided in input), the description explains the return as a JSON string with breakdown and percentages. It covers the essential information for using the tool, though it omits potential errors or data gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, so the description compensates well by specifying date format (YYYY-MM-DD), hour format (HH, 00-23), and default hour (12). This adds meaningful semantic information beyond the raw schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get renewable energy generation summary at a specific time.' It lists the specific renewable sources (wind, solar PV, solar thermal, hydro) and includes renewable percentage calculations, making it distinct from siblings like 'get_generation_mix' which likely covers total generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining renewable summary at a precise time, with examples showing how to call it at different hours. It does not explicitly compare to siblings or state when not to use, but the context of renewable-specific aggregation provides clear situational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description discloses it returns a JSON string with daily stats and summary. It does not mention authentication, rate limits, or side effects, but as a read-only tool, this is acceptable. The presence of an output schema reduces the need to describe return structure in detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for purpose, arguments, returns, and examples. It is concise (no superfluous sentences) and front-loaded with the main action. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, output schema present), the description covers all necessary context: what the tool does, parameter formats, return type, and usage examples. It is fully adequate for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully compensates by specifying both parameters (start_date, end_date) with their format (YYYY-MM-DD). It adds meaning beyond the schema's raw type definitions, ensuring correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves daily demand statistics (max, min, sum) for a period, distinguishing it from siblings like analyze_demand_volatility or get_demand_summary. The verb 'Get' and resource 'daily demand statistics' are 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 Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description explains when to use a date range and includes examples, it does not explicitly compare itself to sibling tools or state when not to use it. The guidance is implicit from the tool name and functionality, but the dimension requires explicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states the return format (JSON string) and provides example outputs, but lacks details on error handling, performance, or data provenance. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with no fluff. It front-loads the main purpose, then provides args, returns, and examples in a clear, easy-to-scan format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters) and the presence of an output schema, the description is largely complete. It covers the purpose, parameters, and usage examples. Minor omissions like date range limitations or error scenarios are acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by documenting both parameters with format and examples. It adds meaning beyond the bare schema, though it could explicitly list allowed values for time_granularity (e.g., 'hour' and 'day').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Get generation mix over time for a full day or period', which is a specific verb-resource combination and immediately clarifies the scope. It distinguishes from siblings like get_generation_mix (likely static) and other time-series tools by emphasizing temporal granularity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes examples with specific date and granularity options, showing when to use the tool. However, it does not explicitly state alternatives or when not to use it, which would be helpful given many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the return type (JSON string) and provides examples, but does not disclose if the operation is read-only, any side effects, or potential errors. Given the lack of annotations, the description is adequate but could be more explicit about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args, Returns, and Examples sections. It is concise but covers necessary details. Could be slightly more streamlined, but overall efficient for a two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (though not shown), the description does not need to detail return structure. It adequately covers input parameters, default, and format, with examples. The description is complete for a simple data retrieval tool, though additional context about the data range or rate source could enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds critical meaning. It specifies the exact format for 'date' (YYYY-MM-DD) and 'hour' (HH format, 00-23, default 12), which the schema lacks. This fully compensates for the absence of property descriptions in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the tool retrieves the PVPC regulated electricity rate at a specific time, with clear context about it being the Spanish regulated retail price. It uses a specific verb ('Get') and resource ('PVPC rate'), distinguishing it from siblings like 'get_spain_hourly_prices'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides parameters, default values, and concrete examples, making usage clear. However, it does not explicitly guide when to use this tool vs alternatives or mention any prerequisites or exclusions, which could be improved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 indicates a return value (JSON string) but does not disclose side effects, permissions, or rate limits. As a read operation, it is implicitly safe, but explicit transparency is lacking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with sections for intro, args, returns, and examples. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter. The description explains the return type and purpose. Given the existence of an output schema (not shown), the description adequately complements it. Minor lack of detail on efficiency metrics is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (date) with 0% description coverage. The description compensates by specifying the required format (YYYY-MM-DD) and providing a concrete example. This adds meaningful semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves pumped storage operations for a day, distinguishing it from sibling tools that handle generation mix, prices, demand, etc. It explains the concepts of pumping and turbining, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions the tool's use for identifying arbitrage opportunities and storage efficiency. While it does not directly contrast with siblings, the examples and context provide sufficient guidance for when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 describes the return format (JSON with imports/exports/net balance) and gives example usage, but does not disclose any side effects, rate limits, error conditions, or data availability constraints. For a read-only retrieval tool, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, parameter list, return description, and examples. Each sentence adds essential information without redundancy. It uses backtick formatting for parameters and examples, enhancing readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, one optional) and presence of an output schema, the description provides enough context for an agent to invoke it correctly. It covers parameter formats, purpose, and example usage. However, it lacks notes on error handling or data availability, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description fully compensates by specifying date format (YYYY-MM-DD), hour format (HH, 00-23), the default value for hour ('12'), and provides concrete examples. This adds significant meaning beyond the schema's bare type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the exact resource ('international electricity exchanges') and action ('Get') with a clear scope ('at a specific time'). It names the countries (Andorra, Morocco, Portugal, France) and the data returned (imports/exports, net balance). This distinguishes it from sibling tools focused on demand, prices, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use the tool (to obtain exchange data at a given time). It provides parameter formats and examples, but does not explicitly mention when not to use it or compare with sibling tools. However, the context of siblings (demand, prices, etc.) implies the tool's unique purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. It specifies input format (ISO datetime), expected granularity options, and return type (JSON string with time series and statistics). It does not mention any destructive or side effects, which is appropriate for a read-only data 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, a brief explanation, then organized Args, Returns, and Examples sections. Every sentence is informative with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description does not need to detail return structure. It covers purpose, parameters with examples, and return type. All necessary information for an agent to select and invoke the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully explain parameters. It does: start_date and end_date with ISO format examples, and time_granularity with default value and possible values ('raw, hour, day, fifteen_minutes'). This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get carbon intensity over time (gCO2/kWh)'. It specifies the resource (carbon intensity) and the action (get). It distinguishes itself from sibling tools by focusing specifically on carbon intensity, while siblings cover demand, generation mix, prices, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context via examples showing different time granularities. It explains that lower values indicate cleaner energy. However, it does not explicitly state when not to use this tool or provide comparisons to alternative tools among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the nature (list), returned data, and parameters. Could add explicit idempotency/read-only hint, but sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose, structured with Args/Returns/Examples sections. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has simple parameters and an output schema. Description covers behavior, parameters, and return format with examples, fully adequate for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage (no descriptions), but the description explains both limit (max number, default all) and offset (skip for pagination) with clear semantics and defaults, fully compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all available electricity indicators from REE' and details the metadata returned (IDs, names, units, frequencies, geographic scopes). This distinguishes it from siblings like search_indicators and get_indicator_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides examples for limiting and paginating results, implying use for listing all or a subset. However, it does not explicitly contrast with alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses behavior and output: it returns a JSON string with hourly prices, stats, and cheapest/most expensive hours. As a read-only query, the 'Get' verb indicates no side effects, and no annotations exist to contradict. The description carries the full burden well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with sections (Args, Returns, Example) and is concise yet informative. Every sentence adds value, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, clear purpose, and existing output schema), the description covers all necessary details: what the tool returns, the parameter format, and a usage example. 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/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'date' has its format ('YYYY-MM-DD') and an example provided in the description. With 0% schema coverage, the description fully compensates by explaining what the parameter expects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets Spanish hourly electricity prices for a specific day, naming the market (OMIE/MIBEL). It distinguishes itself as the simplified Spain-focused version, differentiating from siblings like get_price_analysis or get_generation_mix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context ('perfect for checking daily electricity costs') and implies it's for Spain-specific spot prices. However, it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ESJavadex/ree-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server