Fred St Louis MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fred St Louis MCPShow me the latest observations for the US unemployment rate"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fred St Louis MCP

Author: Nicolo Ceneda
Contact: n.ceneda20@imperial.ac.uk
Website: nicoloceneda.github.io
Institution: Imperial College London
Course: PhD in Finance
Description
This repository provides an MCP server that lets MCP-compatible clients query and explore economic data from FRED. It exposes structured tools for common workflows (searching series, retrieving observations, browsing categories/releases/tags) and also supports raw endpoint passthrough for advanced use cases.
Supported APIs:
FRED API v1 (
/fred/*)GeoFRED maps API (
/geofred/*)FRED API v2 (
/fred/v2/*)
Related MCP server: fred-mcp
Requirements
Python
>=3.11A FRED API key from FRED API Keys
Installation Step 1: Cloning and API Key
First, cd into the directory where you want the mcp-fred repository to be created. Then execute the following commands from the terminal.
git clone https://github.com/nicoloceneda/mcp-fred.git
cd mcp-fred
python3 -m venv .venv
.venv/bin/pip install -e .Create a local .env:
cp .env.example .envThen set:
FRED_API_KEY=your_fred_api_key_hereInstallation Step 2: Configure MCP clients
Path A: Codex CLI
Run once (note: you need to replace /absolute/path/to/ with your actual path):
codex mcp add fred -- /absolute/path/to/mcp-fred/.venv/bin/python /absolute/path/to/mcp-fred/fred_server.pyCheck:
codex mcp list
codex mcp get fredSuccessful setup should show:
In
codex mcp list:fredwithStatus=enabledIn
codex mcp get fred:enabled: true
Launch Codex (codex) and verify that the MCP has successfully been installed (/mcp).
Path B: Claude Code CLI
Run once (note: you need to replace /absolute/path/to/ with your actual path):
claude mcp add --transport stdio fred -- /absolute/path/to/mcp-fred/.venv/bin/python /absolute/path/to/mcp-fred/fred_server.pyCheck:
claude mcp list
claude mcp get fredLaunch Claude Code (claude) and verify that the MCP has successfully been installed (/mcp).
Optional: Generic mcpServers JSON config
{
"mcpServers": {
"fred": {
"command": "/absolute/path/to/mcp-fred/.venv/bin/python",
"args": ["/absolute/path/to/mcp-fred/fred_server.py"],
"env": {
"FRED_API_KEY": "your_fred_api_key_here"
}
}
}
}Optional quick smoke test
Run this script to verify that the MCP server starts, the stdio MCP connection initializes correctly, and a real tool call (search_series) succeeds.
cd mcp-fred
.venv/bin/python - <<'PY'
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def main():
params = StdioServerParameters(
command=".venv/bin/python",
args=["fred_server.py"],
)
async with stdio_client(params) as (r, w):
async with ClientSession(r, w) as s:
await s.initialize()
tools = await s.list_tools()
print("tool_count =", len(tools.tools))
out = await s.call_tool("search_series", {"query": "unemployment rate", "limit": 1})
print(out.content[0].text)
asyncio.run(main())
PYExamples
$ codex
OpenAI Codex (v0.101.0)
model: gpt-5.3-codex xhigh
directory: ~
> Use the FRED MCP to retrieve the last 13 values of GS10 and create a matplotlib line chart saved to /Users/nicoloceneda/Desktop/gs10.png.
I’ll fetch the latest 13 GS10 observations via FRED MCP, then generate and save a matplotlib line chart at /Users/nicoloceneda/Desktop/gs10.png.
Called fred.get_observations({"series_id":"GS10","sort_order":"desc","limit":13})Retrieved the last 13 GS10 observations from FRED and created the matplotlib line chart.
Saved file: /Users/nicoloceneda/Desktop/gs10.png
Values used (most recent first):
2026-01-01: 4.21
2025-12-01: 4.14
2025-11-01: 4.09
2025-10-01: 4.06
2025-09-01: 4.12
2025-08-01: 4.26
2025-07-01: 4.39
2025-06-01: 4.38
2025-05-01: 4.42
2025-04-01: 4.28
2025-03-01: 4.28
2025-02-01: 4.45
2025-01-01: 4.63
Graph generated by MCP:

Original graph by FRED:

$ codex
OpenAI Codex (v0.101.0)
model: gpt-5.3-codex xhigh
directory: ~
> Tell me the latest value of US GDP (nominal).
I’ll pull the most recent GDP observation from FRED now and report its date and value.
Called fred.get_observations({"series_id":"GDP","limit":1,"sort_order":"desc"})Latest FRED nominal U.S. GDP (GDP) is 31,098.027 (billions of dollars, SAAR), for 2025-07-01 (i.e., 2025 Q3).
Functionality and endpoint coverage
The server includes both dedicated tools and generic passthrough tools.
fred_request(endpoint, params_json)for/fred/*geofred_request(endpoint, params_json)for/geofred/*fred_v2_request(endpoint, params_json)for/fred/v2/*
get_category->fred/categoryget_category_children->fred/category/childrenget_category_related->fred/category/relatedget_category_series->fred/category/seriesget_category_tags->fred/category/tagsget_category_related_tags->fred/category/related_tags
get_releases->fred/releasesget_releases_dates->fred/releases/datesget_release->fred/releaseget_release_dates->fred/release/datesget_release_series->fred/release/seriesget_release_sources->fred/release/sourcesget_release_tags->fred/release/tagsget_release_related_tags->fred/release/related_tagsget_release_tables->fred/release/tables
get_series->fred/seriesget_series_categories->fred/series/categoriesget_observations->fred/series/observationsget_series_observations-> alias ofget_observationsget_series_release->fred/series/releasesearch_series->fred/series/searchsearch_series_by_tags->fred/series/search/tagssearch_series_related_tags->fred/series/search/related_tagsget_series_tags->fred/series/tagsget_series_updates->fred/series/updatesget_series_vintage_dates->fred/series/vintagedates
get_sources->fred/sourcesget_source->fred/sourceget_source_releases->fred/source/releases
get_tags->fred/tagsget_related_tags->fred/related_tagsget_tag_series->fred/tags/series
get_map_shape_file->geofred/shapes/fileget_map_series_group->geofred/series/groupget_map_series_data->geofred/series/dataget_map_regional_data->geofred/regional/data
get_release_observations_v2->fred/v2/release/observations
Available Tools
40 toolsfred_requestC
Call any FRED API v1 endpoint path directly.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | ||
| params_json | No | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to mention critical traits such as authentication requirements, rate limits, error handling, or the fact that it's a direct API call (which implies it might bypass built-in validation or safety checks). The description is minimal and offers no behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It earns its place by clearly stating the tool's function, making it appropriately sized for a generic API tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of calling arbitrary API endpoints (which requires understanding endpoint paths, parameter formats, and potential side effects), the description is inadequate. No annotations exist to cover safety or behavioral aspects, and while an output schema is present, the description doesn't address critical context like authentication, error cases, or when to prefer specialized tools over this generic one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for the two parameters, the description adds no semantic information beyond what the schema provides. It doesn't explain what 'endpoint' should contain (e.g., path format, examples) or how 'params_json' should be structured (e.g., JSON string details). The description fails to compensate for the lack of schema documentation, leaving parameters largely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Call') and target ('any FRED API v1 endpoint path directly'), providing a specific verb+resource combination. It distinguishes itself from sibling tools by being a generic API caller rather than a specialized function, though it doesn't explicitly contrast with 'fred_v2_request' which is a notable omission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many specialized sibling tools (e.g., 'get_series', 'search_series') or the 'fred_v2_request' alternative. It lacks context about appropriate use cases, prerequisites, or exclusions, leaving the agent to infer usage from the generic nature of the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_v2_requestB
Call any FRED API v2 endpoint path directly.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | ||
| params_json | No | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool calls API endpoints but doesn't mention authentication requirements, rate limits, error handling, or what the output looks like. For a tool that interacts with an external API, this is a significant gap in transparency, as agents need to understand these behavioral traits to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with a single sentence: 'Call any FRED API v2 endpoint path directly.' It wastes no words and immediately conveys the core functionality, making it easy for an agent to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (direct API calls with 2 parameters) and the presence of an output schema, the description is somewhat complete but lacks crucial details. The output schema likely handles return values, but without annotations and with low parameter coverage, the description should provide more context on usage, authentication, or error handling to be fully adequate for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning beyond the input schema. It implies 'endpoint' refers to a FRED API v2 path and 'params_json' is for parameters, but with 0% schema description coverage, it doesn't explain the format or examples (e.g., endpoint syntax, JSON structure). Since schema coverage is low, the description should compensate more but only provides basic context, meeting the baseline for moderate value addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Call any FRED API v2 endpoint path directly.' It specifies the action ('Call') and resource ('FRED API v2 endpoint path'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate itself from sibling tools like 'fred_request' or 'geofred_request', which appear to be similar API-calling tools, so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., 'fred_request', 'get_series', 'search_series'), there's no indication of when this direct API call is preferred over more specific tools. This lack of context leaves the agent guessing about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geofred_requestC
Call any GeoFRED API endpoint path directly.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | ||
| params_json | No | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 mentions 'Call any GeoFRED API endpoint,' implying a read operation, but does not disclose behavioral traits such as authentication needs, rate limits, error handling, or response formats. This is inadequate for a tool that interacts with an external API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded and appropriately sized for its purpose, earning full marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (direct API calls with 2 parameters), lack of annotations, and 0% schema coverage, the description is incomplete. While an output schema exists, the description does not address key aspects like authentication, error cases, or how to interpret endpoints, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not explain the 'endpoint' parameter (e.g., what endpoint paths are available) or 'params_json' (e.g., expected JSON structure for parameters). Without this, the agent cannot infer parameter meanings beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Call[s] any GeoFRED API endpoint path directly,' which provides a clear verb ('Call') and resource ('GeoFRED API endpoint path'). However, it lacks specificity about what GeoFRED is (e.g., a geographic economic data service) and does not differentiate from siblings like 'fred_request' or 'get_map_regional_data,' making it vague in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. With many sibling tools for specific FRED/GeoFRED operations (e.g., 'get_observations,' 'get_map_regional_data'), it fails to indicate scenarios where direct endpoint calls are preferred over specialized tools, leaving the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_categoryD
fred/category
| Name | Required | Description | Default |
|---|---|---|---|
| category_id | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description 'fred/category' reveals nothing about whether this is a read or write operation, authentication requirements, rate limits, error conditions, or what the tool actually returns. It provides zero behavioral context beyond the name itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (two words), this is under-specification rather than effective conciseness. The description fails to convey any meaningful information about the tool's purpose or usage, making it inefficient rather than appropriately brief. Every sentence should earn its place, but this description has no sentences to evaluate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and 30+ sibling tools, the description is completely inadequate. While an output schema exists, the description provides no context about what kind of category information is retrieved, how it relates to other FRED tools, or any operational considerations. This leaves the agent with insufficient information to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 3 parameters and 0% schema description coverage, the description must compensate by explaining parameter meanings, but 'fred/category' provides no parameter information whatsoever. The agent cannot understand what category_id represents, what realtime_start/end mean, their formats, or how they affect the operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/category' is a tautology that merely restates the tool name 'get_category' in a different format, providing no meaningful information about what the tool does. It doesn't specify any verb or resource, nor does it distinguish this tool from its many siblings in the FRED API family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance about when to use this tool versus alternatives. With 30+ sibling tools available (including get_category_children, get_category_related, get_category_series, etc.), the agent has no information about when this specific category retrieval tool is appropriate versus other category-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_category_childrenD
fred/category/children
| Name | Required | Description | Default |
|---|---|---|---|
| category_id | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description 'fred/category/children' reveals nothing about whether this is a read or write operation, what permissions might be required, rate limits, error conditions, or what the tool actually does behaviorally. It fails to provide any operational context beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 'fred/category/children', which is technically efficient with zero wasted words. However, this conciseness comes at the cost of being severely under-specified rather than appropriately informative. Given the scoring criteria focuses on appropriate sizing and front-loading, this minimal description meets the technical definition of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters with 0% schema coverage, no annotations, and multiple sibling tools, the description 'fred/category/children' is completely inadequate. While an output schema exists (which might help with return values), the description fails to explain what the tool does, when to use it, how parameters work, or any behavioral aspects. For a tool in this complex context, the description provides essentially no useful information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 3 parameters and 0% schema description coverage, the schema provides no documentation about what these parameters mean. The description 'fred/category/children' adds no semantic information about any parameters—it doesn't mention category_id, realtime_start, or realtime_end, nor does it explain their purpose or format. The description completely fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/category/children' is a tautology that essentially restates the tool name without adding meaningful context. It doesn't specify what action the tool performs (e.g., 'retrieve' or 'list') or what 'children' refers to in this context. While it hints at a relationship to categories, it lacks the specific verb+resource clarity needed for an AI agent to understand its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'get_category', 'get_category_related', and 'get_category_series', there's no indication of how this tool differs or when it's appropriate. The description offers no context, prerequisites, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_category_seriesD
fred/category/series
| Name | Required | Description | Default |
|---|---|---|---|
| category_id | Yes | ||
| limit | No | ||
| offset | No | ||
| order_by | No | popularity | |
| sort_order | No | desc | |
| filter_variable | No | ||
| filter_value | No | ||
| tag_names | No | ||
| exclude_tag_names | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description 'fred/category/series' reveals nothing about whether this is a read or write operation, authentication requirements, rate limits, pagination behavior (though parameters suggest it), error conditions, or what the response contains. For an 11-parameter tool with no annotation coverage, this is completely inadequate behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise at three words/slashes. While severely under-specified, it contains no wasted words and is front-loaded with the only information it provides. Every element (fred, category, series) earns its place by at least hinting at the domain and resource scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, 1 required), zero annotation coverage, and the existence of an output schema, the description is completely inadequate. While the output schema may describe return values, the description fails to explain what the tool does, when to use it, how parameters interact, or any behavioral characteristics. For a data retrieval tool with extensive filtering and pagination options, this minimal description leaves the agent guessing about fundamental purpose and usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 11 parameters (10 optional with defaults, 1 required), the description 'fred/category/series' adds zero semantic information about any parameters. It doesn't explain what category_id represents, what filtering options exist, what order_by values are valid, what tag_names format should be used, or what realtime_start/end mean. The description fails completely to compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/category/series' is essentially a tautology that restates the tool name with path notation. It doesn't specify what action the tool performs (list? retrieve? filter?) or what resource it operates on beyond what's implied by the name. While it hints this is related to FRED economic data, it doesn't clearly state the verb or distinguish this from sibling tools like get_category, get_category_children, or get_tag_series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides zero guidance on when to use this tool versus alternatives. With 35 sibling tools on the server including get_category, get_category_children, get_category_related, get_tag_series, and search_series, there's no indication of when this specific series-retrieval-by-category tool is appropriate versus other series-related tools. No context, prerequisites, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_category_tagsD
fred/category/tags
| Name | Required | Description | Default |
|---|---|---|---|
| category_id | Yes | ||
| limit | No | ||
| offset | No | ||
| order_by | No | series_count | |
| sort_order | No | desc | |
| tag_names | No | ||
| tag_group_id | No | ||
| search_text | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description provides zero information about whether this is a read/write operation, authentication requirements, rate limits, pagination behavior, or what happens when parameters are used. It's completely inadequate for a tool with 10 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just 'fred/category/tags', this is under-specification rather than effective conciseness. The single fragment doesn't form a complete thought or provide any useful information. It fails to front-load essential purpose or usage information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, 1 required), zero annotation coverage, and 0% schema description coverage, the description is completely inadequate. While an output schema exists, the description doesn't explain what the tool does, when to use it, or how parameters work. This is insufficient for even basic tool understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning parameter titles provide minimal context. The description adds absolutely no information about what any parameter means, how they interact, or what values are expected. For a tool with 10 parameters (including complex ones like 'tag_names', 'realtime_start', and 'order_by'), this is critically insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/category/tags' is essentially a tautology that restates the tool name without explaining what the tool does. It doesn't specify the action (retrieve/list/filter), the resource (tags within a category), or the purpose. No differentiation from sibling tools like 'get_tags' or 'get_category_related_tags' is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention any context, prerequisites, or comparisons to sibling tools like 'get_tags' (general tags) or 'get_category_related_tags' (related tags within a category).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_map_regional_dataD
geofred/regional/data
| Name | Required | Description | Default |
|---|---|---|---|
| series_group | Yes | ||
| region_type | Yes | ||
| date | Yes | ||
| start_date | No | ||
| season | No | ||
| units | No | ||
| transformation | No | ||
| frequency | No | ||
| aggregation_method | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description 'geofred/regional/data' reveals nothing about the tool's behavior - whether it's a read or write operation, what permissions might be required, whether it has rate limits, what format the output takes, or any side effects. For a tool with 9 parameters and no annotation coverage, this complete lack of behavioral information is severely inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just three words separated by slashes. While this is technically efficient, it's under-specified rather than appropriately concise. The structure doesn't front-load key information or provide any meaningful organization. It's more of a placeholder than a helpful description, though it doesn't waste words on irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 parameters, 3 required, no schema descriptions) and the presence of an output schema, the description is woefully incomplete. While the output schema might help with understanding return values, the description fails to explain what the tool does, when to use it, how parameters work, or any behavioral characteristics. For a data retrieval tool in a crowded namespace of 35 sibling tools, this description provides almost no useful context for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 9 parameters (3 required), the description provides zero information about parameter meanings or usage. The schema only provides titles like 'Series Group', 'Region Type', and 'Date' without explaining what these mean, what values are acceptable, or how they interact. The description 'geofred/regional/data' adds no semantic context about any parameters, leaving the agent with no guidance on how to properly invoke this tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'geofred/regional/data' is essentially a tautology that restates the tool name without adding meaningful context. It doesn't specify what action the tool performs (e.g., 'retrieve', 'fetch', 'query') or what resource it operates on beyond what's already implied by the name. While it hints at geographic/regional data from FRED, it lacks a clear verb and doesn't distinguish this tool from its many siblings in the FRED/GeoFRED ecosystem.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. With 35 sibling tools on the server (including other GeoFRED tools like 'get_map_series_data' and 'get_map_series_group'), there's no indication of what makes this tool distinct or when it should be selected over similar tools. The description offers no context about appropriate use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_map_series_dataD
geofred/series/data
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | ||
| date | No | ||
| start_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't indicate whether this is a read or write operation, what permissions might be required, whether it has rate limits, what format the data returns in, or any error conditions. The description provides zero behavioral context beyond the minimal name restatement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just 'geofred/series/data', this represents under-specification rather than effective brevity. The single phrase doesn't provide enough information to be useful, and there's no structure or front-loading of critical information. The description is too minimal to serve its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters with 0% schema coverage, no annotations, but does have an output schema, the description is severely inadequate. While the output schema may document return values, the description fails to explain what the tool does, when to use it, how parameters work, or any behavioral characteristics. For a data retrieval tool in a complex API with many alternatives, this description provides insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 3 parameters (series_id, date, start_date), the description provides no information about any parameters. It doesn't explain what a 'series_id' represents, what format dates should use, how date and start_date interact, or what happens when parameters are omitted. The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'geofred/series/data' is essentially a tautology that restates the tool name with minimal additional information. It vaguely suggests retrieving data related to a series in the GeoFRED context, but doesn't specify what kind of data, for what purpose, or how it differs from similar tools like 'get_series_observations' or 'get_map_regional_data'. The description lacks a clear verb and specific resource definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. With numerous sibling tools available (including 'get_series_observations', 'get_map_regional_data', and 'get_series'), there's no indication of what distinguishes this tool's functionality or appropriate use cases. The description fails to mention any prerequisites, constraints, or relationships to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_map_series_groupD
geofred/series/group
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. However, the description offers no information about what the tool does operationally (e.g., whether it retrieves, modifies, or deletes data), what permissions are required, rate limits, or what the output entails. It fails to describe any behavioral traits beyond the minimal hint in the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise ('geofred/series/group'), which could be seen as efficient, but it is under-specified rather than appropriately concise. It lacks any structure or front-loading of key information, making it more of a placeholder than a helpful description. However, it does not waste words on irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (1 parameter with no schema description, no annotations, but an output schema exists), the description is incomplete. While the output schema may cover return values, the description fails to explain the tool's purpose, usage, or parameter meaning, leaving critical gaps for an AI agent to understand and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter (series_id) with 0% description coverage, meaning the schema provides no semantic context. The description does not mention this parameter at all, offering no compensation for the lack of schema documentation. For a tool with an undocumented parameter, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'geofred/series/group' is essentially a tautology that restates the tool name without clarifying what the tool actually does. It mentions 'geofred' and 'series/group' but provides no verb or specific action. While it hints at retrieving something related to series groups in the GeoFRED context, it fails to distinguish this tool from its many siblings (like get_map_series_data or get_series) in a meaningful way.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With numerous sibling tools (e.g., get_map_series_data, get_series, get_category_series), there is no indication of what makes this tool unique or when it should be selected over others. No context, exclusions, or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_map_shape_fileD
geofred/shapes/file
| Name | Required | Description | Default |
|---|---|---|---|
| shape | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description 'geofred/shapes/file' gives no insight into what the tool does behaviorally—whether it's a read operation, a download, a transformation, or something else. It doesn't mention permissions, rate limits, side effects, or output format, making it impossible for an agent to understand how to interact with it safely or effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description 'geofred/shapes/file' is extremely brief but not effectively concise—it's under-specified rather than efficiently informative. It lacks structure and fails to front-load key information, making it unhelpful despite its brevity. Every word should earn its place, but here the words don't convey actionable meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (1 parameter with no schema descriptions, no annotations, but an output schema exists), the description is incomplete. While the output schema might cover return values, the description doesn't address the tool's purpose, usage, parameters, or behavior, leaving significant gaps for an agent to understand and invoke the tool correctly in context with its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, and the tool description provides no information about the 'shape' parameter. It doesn't explain what 'shape' means, what values it accepts, or how it relates to the tool's purpose. With low schema coverage and no compensatory details in the description, the agent has no semantic understanding of the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'geofred/shapes/file' is a tautology that essentially restates the tool name 'get_map_shape_file' without providing meaningful context. It mentions 'geofred' and 'shapes/file' but doesn't specify what action the tool performs (e.g., download, retrieve, generate) or what resource it operates on beyond the vague 'shape file'. This fails to distinguish it from siblings like 'get_map_regional_data' or 'get_map_series_data'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context, or comparison to sibling tools (e.g., 'get_map_regional_data' or 'get_map_series_data'), leaving the agent with no information about appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_observationsD
fred/series/observations
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No | ||
| limit | No | ||
| offset | No | ||
| sort_order | No | desc | |
| observation_start | No | ||
| observation_end | No | ||
| units | No | ||
| frequency | No | ||
| aggregation_method | No | ||
| output_type | No | ||
| vintage_dates | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but offers none. It doesn't indicate whether this is a read or write operation, what permissions might be needed, rate limits, pagination behavior (despite limit/offset parameters), or what the response contains. The description fails to describe any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with a single path-like string, this is under-specification rather than effective conciseness. The description doesn't front-load critical information and fails to provide any meaningful content that would help an agent understand or use the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 13 parameters, no annotations, and many similar sibling tools, the description is completely inadequate. While an output schema exists (which reduces the need to describe return values), the description fails to address the tool's purpose, usage context, behavioral characteristics, or parameter meanings - leaving critical gaps for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 13 parameters and 0% schema description coverage, the description provides absolutely no information about any parameters. It doesn't explain what 'series_id' refers to, what the various date parameters mean, what units/frequency/aggregation_method options exist, or how output_type works. The description adds zero value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/series/observations' is a tautology that merely restates the tool name in a path-like format without explaining what the tool actually does. It doesn't specify what 'observations' are, what resource is being accessed, or what action is performed. No verb or clear purpose is stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides zero guidance on when to use this tool versus the many sibling tools (like get_series_observations, get_release_observations_v2, etc.). There's no mention of appropriate contexts, prerequisites, or alternatives, leaving the agent with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_releaseD
fred/release
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. However, 'fred/release' offers no information about the tool's behavior—it doesn't indicate if it's a read or write operation, what data it returns, any rate limits, authentication needs, or error handling. This leaves critical behavioral traits completely undocumented, making it inadequate for a tool with parameters and an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just 'fred/release', which is appropriately sized for its minimal content. It's front-loaded with no wasted words, though this conciseness comes at the cost of under-specification. Every part of the description serves a purpose, even if that purpose is insufficient for tool understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a tool with 3 parameters (one required), 0% schema coverage, no annotations, and sibling tools, the description is completely inadequate. While an output schema exists, the description fails to provide any context about the tool's purpose, usage, or behavior. It doesn't compensate for the lack of structured data, leaving the agent with insufficient information to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning none of the three parameters (release_id, realtime_start, realtime_end) are documented in the schema. The description 'fred/release' adds no meaning beyond the schema—it doesn't explain what these parameters represent, their formats, or how they affect the tool's operation. For a tool with multiple parameters, this lack of semantic information is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/release' is a tautology that essentially restates the tool name 'get_release' without adding meaningful purpose. It doesn't specify what action is performed (e.g., retrieve, fetch, or get details about a release) or what resource is involved beyond the vague term 'release'. While it hints at the FRED domain, it lacks a clear verb+resource statement that distinguishes it from sibling tools like 'get_releases' or 'get_release_dates'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, and fails to differentiate it from sibling tools such as 'get_releases' (plural) or 'get_release_series'. There's no explicit or implied usage information, leaving the agent with no direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_release_datesD
fred/release/dates
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | ||
| limit | No | ||
| offset | No | ||
| sort_order | No | desc | |
| include_release_dates_with_no_data | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but provides none. It doesn't indicate whether this is a read or write operation, what permissions might be needed, whether it's paginated, what format the output takes, or any rate limits. The description is completely silent on all behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (just three words), this is under-specification rather than effective conciseness. The description doesn't communicate essential information, so its brevity is a deficiency rather than a virtue. It's not front-loaded with useful information - it provides no useful information at all.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and complex sibling relationships, the description is completely inadequate. While an output schema exists, the description doesn't explain what the tool does, when to use it, what parameters mean, or how it behaves. This leaves the agent with insufficient context to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 7 parameters and 0% schema description coverage, the description provides no information about any parameters. It doesn't explain what 'release_id' refers to, what 'realtime_start/end' mean, what 'include_release_dates_with_no_data' controls, or how the limit/offset/sort_order parameters affect results. The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/release/dates' is tautological - it essentially restates the tool name without explaining what it does. It doesn't specify the action (e.g., 'retrieve', 'list', 'fetch') or clarify what 'release dates' refers to in this context. No meaningful purpose is communicated beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus the many sibling tools (like get_release, get_releases_dates, get_release_observations_v2, etc.). There's no indication of what problem this tool solves or what context it's appropriate for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_release_observations_v2D
fred/v2/release/observations
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | ||
| date | No | ||
| series_id | No | ||
| limit | No | ||
| offset | No | ||
| sort_order | No | desc | |
| next_cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description reveals nothing about whether this is a read/write operation, authentication needs, rate limits, pagination behavior (despite 'limit' and 'offset' parameters), or what happens when parameters are omitted. It's completely inadequate for a tool with 7 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (one phrase), this is under-specification rather than effective brevity. The single phrase 'fred/v2/release/observations' doesn't communicate purpose or usage, making it inefficient. It fails to front-load essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, 0% schema description coverage, no annotations, and an output schema (which helps but doesn't compensate), the description is completely inadequate. It doesn't explain what the tool does, when to use it, how parameters work, or behavioral characteristics. The presence of an output schema doesn't rescue this minimal description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides only parameter names and types without meaning. The description adds no information about what parameters do (e.g., what 'release_id' refers to, what 'observations' are, how 'date' filtering works, what 'next_cursor' is for). For 7 parameters with no schema descriptions, this is a critical failure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/v2/release/observations' is a tautology that restates the tool name without explaining what it does. It doesn't specify the action (e.g., 'retrieve' or 'list') or clarify what 'observations' means in this context. No distinction from sibling tools like 'get_observations' or 'get_series_observations' is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 is given. The description doesn't mention any context, prerequisites, or exclusions. With multiple observation-related sibling tools (e.g., 'get_observations', 'get_series_observations'), the lack of differentiation is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_releasesD
fred/releases
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| order_by | No | release_id | |
| sort_order | No | desc | |
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'fred/releases' gives no indication of whether this is a read or write operation, what permissions might be required, whether it's paginated, or what the response format looks like. It fails to disclose any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just 'fred/releases', this represents under-specification rather than effective brevity. The single term doesn't provide meaningful information and fails to structure the description with any useful content that would help an agent understand the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is completely inadequate for a tool with 6 parameters and no annotations. It provides no purpose, no behavioral context, no parameter guidance, and no differentiation from sibling tools. The presence of an output schema doesn't compensate for the description's fundamental deficiencies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 6 parameters have descriptions in the schema. The tool description provides no information about what any parameter means, their relationships, or how they affect the operation. It doesn't compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/releases' is a tautology that merely restates the tool name without specifying what action it performs. It doesn't indicate whether this tool retrieves, lists, creates, or modifies releases, nor does it distinguish this tool from sibling tools like 'get_release' or 'get_releases_dates'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention any context, prerequisites, or distinctions from related tools like 'get_release' (singular) or 'get_releases_dates', leaving the agent with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_releases_datesD
fred/releases/dates
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| sort_order | No | desc | |
| include_release_dates_with_no_data | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'fred/releases/dates' reveals nothing about whether this is a read or write operation, what permissions are needed, rate limits, pagination behavior, or what the output contains. This is completely inadequate for a tool with 6 parameters and complex filtering options.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just three words, this is a case of harmful under-specification rather than effective brevity. The description fails to provide any useful information that would help an agent understand or use the tool. Every word should earn its place, but here the words don't convey meaningful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no annotations, but with output schema), the description is completely inadequate. While the output schema may document return values, the description fails to explain what the tool does, when to use it, how parameters work, or any behavioral characteristics. This leaves the agent unable to properly select or invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 6 parameters have descriptions in the schema. The description 'fred/releases/dates' adds zero semantic information about what parameters like 'realtime_start', 'include_release_dates_with_no_data', or 'sort_order' actually mean or how they affect results. This leaves all parameters completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/releases/dates' is essentially a tautology that restates the tool name without explaining what it does. It provides no verb, no resource specification, and no differentiation from sibling tools like 'get_release_dates' or 'get_releases'. This fails to communicate any meaningful purpose to an AI agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. With multiple sibling tools dealing with releases and dates (e.g., 'get_release_dates', 'get_releases'), the agent receives no context about appropriate use cases, prerequisites, or exclusions. This leaves the agent guessing about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_release_seriesD
fred/release/series
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | ||
| limit | No | ||
| offset | No | ||
| order_by | No | popularity | |
| sort_order | No | desc | |
| filter_variable | No | ||
| filter_value | No | ||
| tag_names | No | ||
| exclude_tag_names | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but provides none. It doesn't indicate whether this is a read or write operation, what permissions might be required, whether it's idempotent, what error conditions exist, or what the response format looks like. The description gives no insight into how the tool behaves beyond its cryptic name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (a single cryptic phrase), this is a case of under-specification rather than effective brevity. The description doesn't contain enough information to be useful, so its conciseness is detrimental rather than beneficial. There's no structure or front-loading of key information - just an opaque string that provides minimal value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, 1 required) and the presence of an output schema, the description is woefully incomplete. While the output schema might help with understanding return values, the description fails to explain what the tool does, when to use it, how parameters work, or any behavioral characteristics. For a tool with this many parameters and many similar sibling tools, the description provides almost no contextual help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides zero information about any of the 11 parameters. With 0% schema description coverage, the schema provides only parameter names and types without explaining their meaning or usage. The description doesn't compensate at all - it doesn't mention release_id (the only required parameter), filtering options, pagination, sorting, or any other parameter semantics. This leaves the agent guessing about what each parameter does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/release/series' is essentially a tautology that restates the tool name with minimal additional meaning. It doesn't specify what action the tool performs (e.g., 'retrieve', 'list', or 'search') or what resource it operates on beyond the name. While 'release/series' suggests some relationship between releases and series, the exact purpose remains vague and undifferentiated from sibling tools like get_release, get_series, or get_release_tags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. With many sibling tools dealing with releases, series, and their relationships (e.g., get_release, get_series, get_release_tags, get_category_series), the agent has no indication of when this specific tool is appropriate versus other options. There's no mention of prerequisites, constraints, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_release_sourcesD
fred/release/sources
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't indicate whether this is a read or write operation, what kind of data it returns, whether it has rate limits, authentication requirements, or any side effects. The description is completely silent on all behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (just three words), this is under-specification rather than effective brevity. The description doesn't front-load essential information and fails to communicate even basic functionality. Every word should earn its place, but here the words don't provide meaningful value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a tool with 3 parameters (one required), no annotations, 0% schema description coverage, and an output schema (which the description doesn't reference), this description is completely inadequate. It provides no context about what the tool does, how to use it, what it returns, or how it relates to sibling tools in the FRED API ecosystem.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for all 3 parameters, the description provides no information about what 'release_id', 'realtime_start', or 'realtime_end' mean, their expected formats, or how they affect the operation. The description doesn't mention parameters at all, leaving them completely undocumented beyond their names in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/release/sources' is essentially a tautology that restates the tool name without explaining what it does. It doesn't specify the action (e.g., 'retrieve', 'list', 'fetch') or clarify what 'sources' means in this context. Compared to siblings like 'get_release', 'get_release_dates', and 'get_release_tags', this provides no differentiation or meaningful purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. It doesn't mention what distinguishes it from sibling tools like 'get_source', 'get_sources', or 'get_source_releases', nor does it indicate any prerequisites, constraints, or appropriate contexts for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_release_tablesD
fred/release/tables
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | ||
| element_id | No | ||
| observation_date | No | ||
| include_observation_values | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't indicate whether this is a read or write operation, what permissions might be required, whether it has rate limits, what format the output takes, or any side effects. The description fails to provide any behavioral context beyond the minimal name restatement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 'fred/release/tables' - a single phrase with no sentence structure. While this is technically brief, it's under-specified rather than efficiently informative. It lacks the front-loaded clarity that would help an agent quickly understand the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters with 0% schema coverage, no annotations, but does have an output schema, the description is inadequate. While the output schema might document return values, the description fails to explain what the tool does, when to use it, or how parameters work. For a tool with multiple parameters in a complex API environment, this minimal description leaves significant gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 4 parameters have descriptions in the schema. The tool description provides no information about what these parameters mean, their expected formats, or how they affect the tool's behavior. The description doesn't compensate for the complete lack of parameter documentation in the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/release/tables' is essentially a tautology that restates the tool name with minimal additional information. It vaguely suggests something about FRED releases and tables but doesn't specify what action the tool performs (retrieve, list, generate, etc.) or what resource it operates on. While it distinguishes from some siblings by mentioning 'tables,' it doesn't clearly differentiate from tools like get_release_series or get_release_observations_v2.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of context, prerequisites, or comparison with sibling tools like get_release_series or get_release_observations_v2 that might serve similar purposes. The agent receives no help in selecting this tool over others in the FRED API suite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_release_tagsD
fred/release/tags
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | ||
| limit | No | ||
| offset | No | ||
| order_by | No | series_count | |
| sort_order | No | desc | |
| tag_names | No | ||
| tag_group_id | No | ||
| search_text | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description 'fred/release/tags' reveals nothing about the tool's behavior—whether it's a read operation, what data it returns, if it has side effects, rate limits, authentication needs, or error conditions. For a tool with 10 parameters and no annotation coverage, this complete lack of behavioral information is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single phrase with no wasted words. While this results in under-specification, it's structurally efficient and front-loaded. There are no redundant sentences or unnecessary elaborations, making it easy to parse despite its lack of content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, 1 required), lack of annotations, 0% schema description coverage, and the presence of an output schema, the description is completely inadequate. It doesn't explain the tool's purpose, usage, behavior, or parameters, forcing the agent to rely entirely on the input/output schemas. For a data retrieval tool in a family of similar tools, this minimal description provides insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 10 parameters have descriptions in the schema. The tool description 'fred/release/tags' adds no information about any parameters—it doesn't explain what 'release_id' refers to, what 'tag_names' or 'tag_group_id' represent, how 'search_text' works, what 'realtime_start/end' mean, or the significance of ordering by 'series_count'. With 10 undocumented parameters, the description fails to compensate for the schema's deficiencies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/release/tags' is essentially a tautology that restates the tool name without meaningful elaboration. It doesn't specify what action the tool performs (e.g., 'retrieve', 'list', 'fetch') or clarify what 'tags' represent in this context. While it mentions the resource ('release tags'), it lacks a clear verb and doesn't distinguish this tool from sibling tools like 'get_tags' or 'get_release_related_tags'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_tags' (for general tags) or 'get_release_related_tags' (for related tags), nor does it specify prerequisites, context, or exclusions. Without any usage context, an agent must infer everything from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seriesD
fred/series
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. 'fred/series' reveals nothing about whether this is a read or write operation, what permissions might be required, whether it has side effects, rate limits, or what kind of response to expect. This leaves the agent completely uninformed about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (two words), this description represents under-specification rather than effective brevity. It fails to communicate essential information about the tool's purpose and usage, making it inefficient for the agent's understanding despite its short length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and an output schema (whose existence doesn't compensate for the complete lack of functional description), 'fred/series' is completely inadequate. The description provides no context about what the tool does, when to use it, or how it behaves, leaving the agent unable to make informed decisions about tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 3 parameters (series_id, realtime_start, realtime_end), the description 'fred/series' adds zero semantic information about what these parameters mean, how they should be formatted, or how they affect the operation. The agent would have no understanding of what constitutes valid input for this tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/series' is a tautology that merely restates the tool name without specifying what action it performs. It doesn't indicate whether this retrieves, creates, modifies, or analyzes series data, nor does it distinguish this tool from its many sibling tools (like get_series_observations, get_series_tags, etc.). This provides no meaningful guidance about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance about when to use this tool versus alternatives. With numerous sibling tools dealing with series data (get_series_observations, get_series_tags, search_series, etc.), there's no indication of what specific aspect of series data this tool addresses or when it should be selected over related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_series_categoriesD
fred/series/categories
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description fails to indicate whether this is a read or write operation, what data it returns, any rate limits, authentication requirements, or error conditions. It provides zero behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with a single phrase, this is under-specification rather than effective brevity. The description doesn't front-load essential information and wastes its minimal content on a tautology that provides no value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters with 0% schema coverage, no annotations, and sibling tools that suggest complex relationships (e.g., 'get_category', 'get_series'), the description is severely incomplete. Although an output schema exists, the description doesn't help the agent understand when or why to use this specific tool in the FRED ecosystem.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the three parameters (series_id, realtime_start, realtime_end) are documented in the schema. The description adds no information about what these parameters mean, their formats, or how they affect the operation, failing to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/series/categories' is a tautology that merely restates the tool name without explaining what the tool does. It doesn't specify the action (e.g., 'retrieve', 'list', 'fetch') or clarify what 'categories' refers to in this context. No differentiation from sibling tools is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or relationships to sibling tools like 'get_category', 'get_category_series', or 'get_series', leaving the agent with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_series_observationsD
Alias for get_observations.
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No | ||
| limit | No | ||
| offset | No | ||
| sort_order | No | desc | |
| observation_start | No | ||
| observation_end | No | ||
| units | No | ||
| frequency | No | ||
| aggregation_method | No | ||
| output_type | No | ||
| vintage_dates | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description fails to mention any behavioral traits such as whether this is a read-only operation, potential rate limits, authentication requirements, or what the output contains. For a tool with 13 parameters and no annotation coverage, this is a critical omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence that directly states the alias relationship. There is no wasted verbiage or unnecessary elaboration, making it front-loaded and efficient. However, this conciseness comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (13 parameters, 1 required), 0% schema description coverage, no annotations, and the presence of an output schema, the description is completely inadequate. It fails to explain the tool's purpose, parameter semantics, or behavioral context, leaving the agent unable to use the tool effectively despite the output schema potentially covering return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning none of the 13 parameters are documented in the schema. The description adds no information about parameter meanings, usage, or relationships (e.g., what 'series_id' refers to, how date parameters work, or what 'output_type' controls). This leaves all parameters semantically undefined, severely hindering tool invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Alias for get_observations' is a tautology that restates the tool name without explaining what it actually does. It doesn't specify the verb (e.g., 'retrieve' or 'fetch') or the resource (e.g., 'economic data observations for a series'), making the purpose vague. While it references a sibling tool, it doesn't distinguish this tool's specific function from that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'get_observations' as an alias but doesn't explain if this is preferred over other tools like 'get_release_observations_v2' or 'search_series', nor does it specify any context or prerequisites for usage. This leaves the agent without practical direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_series_releaseD
fred/series/release
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description 'fred/series/release' reveals nothing about the tool's behavior - whether it's a read or write operation, what permissions are required, rate limits, error conditions, or what the tool actually returns. It's completely inadequate for a tool with parameters and an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just 'fred/series/release', this is under-specification rather than effective brevity. The description doesn't communicate any useful information, so its conciseness is a flaw rather than a virtue. It's structured as a path fragment rather than a meaningful description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters (one required), 0% schema description coverage, no annotations, and an output schema, the description is completely inadequate. It provides no context about what the tool does, how to use it, what it returns, or how it relates to sibling tools. The existence of an output schema doesn't compensate for the complete lack of functional description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 3 parameters (series_id, realtime_start, realtime_end) have descriptions in the schema. The tool description adds no information about what these parameters mean, their expected formats, or how they affect the tool's behavior. The description fails completely to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/series/release' is a tautology that restates the tool name without explaining what it does. It doesn't specify a verb or resource, nor does it distinguish this tool from its many siblings in the FRED API family. The description provides no meaningful information about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. With 30+ sibling tools in the FRED API, including get_series, get_release, get_series_categories, and others, the description offers no context about appropriate use cases or how this tool differs from related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_series_tagsD
fred/series/tags
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | ||
| limit | No | ||
| offset | No | ||
| order_by | No | series_count | |
| sort_order | No | desc | |
| tag_names | No | ||
| tag_group_id | No | ||
| search_text | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description 'fred/series/tags' reveals nothing about whether this is a read or write operation, what permissions might be needed, rate limits, pagination behavior (though parameters suggest it), or what happens when invoked. For a tool with 10 parameters, this complete lack of behavioral context is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (just three words), this is under-specification rather than effective conciseness. The description doesn't front-load essential information - it's just a path fragment that doesn't communicate purpose. Every word should earn its place, but here the words don't provide meaningful guidance to an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, 1 required), complete lack of annotations, and 0% schema description coverage, the description is completely inadequate. While an output schema exists (which might help with return values), the description fails to explain what the tool does, when to use it, how parameters work, or any behavioral characteristics. This is insufficient for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 10 parameters (only 1 required), the description 'fred/series/tags' adds zero semantic information about any parameters. It doesn't explain what 'series_id' refers to, what 'tag_names' should contain, what 'realtime_start/end' mean, or how the filtering/sorting parameters interact. The description fails completely to compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/series/tags' is essentially a tautology that restates the tool name without explaining what the tool does. It doesn't specify the action (retrieve? list? filter?) or what resource is being operated on. No verb is provided, and it fails to distinguish this tool from sibling tools like 'get_tags' or 'get_category_tags'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. With many sibling tools in the FRED API family (like get_tags, get_category_tags, get_related_tags), there's no indication of when this specific series-tags tool is appropriate versus other tag-related tools. No context, prerequisites, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_series_updatesD
fred/series/updates
| Name | Required | Description | Default |
|---|---|---|---|
| realtime_start | No | ||
| realtime_end | No | ||
| limit | No | ||
| offset | No | ||
| filter_value | No | all | |
| start_time | No | ||
| end_time | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description 'fred/series/updates' reveals nothing about whether this is a read or write operation, what permissions might be needed, rate limits, pagination behavior, or what kind of data is returned. It fails completely to describe any behavioral characteristics of the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (just three words), this is under-specification rather than effective conciseness. The description doesn't communicate essential information, so its brevity is a deficiency rather than a strength. A single meaningful sentence would be more valuable than this minimal path notation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and complex sibling relationships in the FRED API, the description is completely inadequate. While an output schema exists (which helps with understanding returns), the description fails to explain what the tool does, when to use it, or how parameters affect behavior - leaving the agent with insufficient context to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 7 parameters and 0% schema description coverage, the description provides no information about any parameters. It doesn't explain what 'realtime_start/end' versus 'start_time/end_time' mean, what 'filter_value' controls, or how 'limit' and 'offset' affect results. The description fails to compensate for the complete lack of parameter documentation in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/series/updates' is essentially a tautology that restates the tool name in a path format. It provides no meaningful information about what the tool actually does - no verb indicating the action, no explanation of what 'updates' refers to, and no distinction from sibling tools like get_series or get_series_observations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. With numerous sibling tools in the FRED API ecosystem (like get_series, get_series_observations, search_series), there is no indication of what specific problem this tool solves or when it should be selected over other series-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_series_vintage_datesD
fred/series/vintagedates
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No | ||
| limit | No | ||
| offset | No | ||
| sort_order | No | desc |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't indicate whether this is a read or write operation, what permissions might be required, rate limits, pagination behavior (implied by limit/offset parameters but not explained), or what the output contains. This leaves the agent completely in the dark about how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just one path-like string, this is under-specification rather than effective brevity. The description doesn't front-load key information or structure content meaningfully—it's essentially a placeholder that provides no value beyond what's already in the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, 1 required), complete lack of annotations, and 0% schema description coverage, the description is woefully inadequate. While an output schema exists (which might help with return values), the description doesn't address the core purpose, usage context, or parameter meanings needed for an agent to understand when and how to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides zero information about any of the 6 parameters, despite 0% schema description coverage (parameters only have titles like 'Series Id' without explanations). It doesn't clarify what 'vintage dates' are, what 'realtime_start/end' mean in this context, or how 'sort_order' applies. The description fails completely to compensate for the schema's lack of semantic information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/series/vintagedates' is essentially a tautology that restates the tool name in path format, providing no meaningful explanation of what the tool does. It doesn't specify the action (e.g., 'retrieve', 'list', 'fetch') or clarify what 'vintage dates' represent in the FRED context, making the purpose vague and unhelpful for agent selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus the many sibling tools (e.g., get_series, get_series_observations, get_series_updates). There's no indication of the specific use case for vintage dates, prerequisites, or alternatives, leaving the agent with no context for appropriate tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sourceD
fred/source
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but provides none. It doesn't indicate whether this is a read or write operation, what permissions might be required, what the response format looks like, or any other behavioral characteristics. The description is completely inadequate for a tool with 3 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just two words, this is a case of harmful under-specification rather than effective brevity. The description doesn't contain enough information to be useful, so its conciseness is a liability rather than a virtue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, 0% schema description coverage, no annotations, and 30+ sibling tools, the description is woefully incomplete. While an output schema exists (which reduces the need to describe return values), the description fails to provide any meaningful context about what the tool does, when to use it, or how its parameters work.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 3 parameters have descriptions in the schema. The description 'fred/source' provides no information about what source_id represents, what realtime_start and realtime_end parameters do, or how they should be used. The description fails completely to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/source' is a tautology that merely restates the tool name 'get_source' without specifying what action it performs or what resource it operates on. It provides no meaningful information about what the tool actually does, making it completely unhelpful for an AI agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus any of the 30+ sibling tools listed. There's no mention of context, prerequisites, or alternatives, leaving the agent with no information about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_source_releasesD
fred/source/releases
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| realtime_start | No | ||
| realtime_end | No | ||
| limit | No | ||
| offset | No | ||
| order_by | No | release_id | |
| sort_order | No | asc |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but provides none. It doesn't indicate whether this is a read or write operation, what permissions might be required, whether it has rate limits, what format the output takes, or any other behavioral characteristics. The description is completely silent on all behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just 'fred/source/releases' - which could be considered front-loaded if it contained meaningful information. However, this is a case of severe under-specification rather than effective conciseness. The single fragment uses minimal characters but fails to convey necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, 1 required), zero schema description coverage, and no annotations, the description is woefully incomplete. While an output schema exists (which reduces the need to describe return values), the description fails to explain what the tool does, when to use it, how parameters work, or any behavioral characteristics. For a tool with this many parameters and sibling tools, the description is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning none of the 7 parameters have descriptions in the schema. The tool description 'fred/source/releases' provides zero information about any parameters - not what source_id refers to, not what realtime_start/end mean, not what limit/offset do, not what order_by/sort_order options are available. The description fails completely to compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/source/releases' is essentially a tautology that restates the tool name without explaining what it does. It doesn't specify the verb (retrieve? list? fetch?) or clarify what 'releases' means in this context. While it mentions the resource ('source releases'), it provides no functional information about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance about when to use this tool versus the many sibling tools (like get_releases, get_release, get_source, etc.). There's no indication of what distinguishes this tool from other release-related or source-related tools in the FRED API family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sourcesD
fred/sources
| Name | Required | Description | Default |
|---|---|---|---|
| realtime_start | No | ||
| realtime_end | No | ||
| limit | No | ||
| offset | No | ||
| order_by | No | source_id | |
| sort_order | No | asc |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'fred/sources' reveals nothing about whether this is a read or write operation, authentication requirements, rate limits, pagination behavior, or what happens when parameters are omitted. For a tool with 6 parameters and no annotation coverage, this is completely inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just two words, this is a case of harmful under-specification rather than effective brevity. The description fails to provide any meaningful information that would help an AI agent understand or use the tool. Every word should earn its place, but here the words don't earn their place by adding value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no annotations, but with an output schema), the description is completely inadequate. While the output schema may help with understanding return values, the description fails to explain what the tool does, when to use it, how parameters work, or any behavioral characteristics. This leaves the agent unable to properly select or invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 6 parameters have descriptions in the schema. The description 'fred/sources' adds zero semantic information about what parameters like 'realtime_start', 'realtime_end', 'limit', 'offset', 'order_by', or 'sort_order' mean or how they affect the operation. This leaves all parameters completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/sources' is a tautology that merely restates the tool name without explaining what it does. It provides no verb, no resource specification, and no differentiation from sibling tools like 'get_source' or 'get_source_releases'. This fails to communicate any meaningful purpose to an AI agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. With sibling tools like 'get_source' (singular) and 'get_source_releases', there's clear potential for confusion, but the description provides no context about scope, prerequisites, or appropriate use cases. This leaves the agent with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tagsD
fred/tags
| Name | Required | Description | Default |
|---|---|---|---|
| realtime_start | No | ||
| realtime_end | No | ||
| limit | No | ||
| offset | No | ||
| order_by | No | series_count | |
| sort_order | No | desc | |
| tag_names | No | ||
| tag_group_id | No | ||
| search_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'fred/tags' reveals nothing about whether this is a read or write operation, what permissions might be required, rate limits, pagination behavior, or what the response format looks like. This is completely inadequate for a tool with 9 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise, 'fred/tags' represents under-specification rather than effective brevity. The single term provides no useful information structure - no front-loaded purpose statement, no parameter context, and no usage guidance. This isn't conciseness; it's inadequate documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, 0% schema description coverage, and multiple sibling alternatives, the description is completely inadequate. While an output schema exists (which helps with return values), the description fails to provide the minimal context needed for an agent to understand what this tool does, when to use it, or how its parameters work.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 9 parameters, the description 'fred/tags' adds zero semantic information about any parameters. It doesn't explain what 'realtime_start/end' mean, what 'tag_group_id' refers to, how 'search_text' works, or what values 'order_by' and 'sort_order' accept. The description fails completely to compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/tags' is a tautology that merely restates the tool name 'get_tags' with a prefix. It provides no information about what the tool actually does - no verb, no resource specification, and no differentiation from sibling tools like 'get_category_tags' or 'get_release_tags'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers absolutely no guidance on when to use this tool versus alternatives. With multiple tag-related tools in the sibling list (get_category_tags, get_related_tags, get_release_tags, search_series_by_tags, search_series_related_tags), the description fails to provide any context about when this specific tag retrieval tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tag_seriesD
fred/tags/series
| Name | Required | Description | Default |
|---|---|---|---|
| tag_names | Yes | ||
| exclude_tag_names | No | ||
| realtime_start | No | ||
| realtime_end | No | ||
| limit | No | ||
| offset | No | ||
| order_by | No | popularity | |
| sort_order | No | desc |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't indicate whether this is a read or write operation, what permissions might be required, whether it's rate-limited, what format the output takes, or any error conditions. For an 8-parameter tool with complex filtering options, this lack of behavioral context is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise - a single string 'fred/tags/series' with no wasted words. While this represents severe under-specification rather than ideal conciseness, from a pure structural perspective it's front-loaded and contains zero unnecessary content. Every character earns its place, though that place is inadequate for a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, filtering capabilities, sorting options) and the complete absence of annotations, the description is woefully incomplete. While an output schema exists (which might explain return values), the description doesn't provide the minimal context needed to understand what the tool does, when to use it, or how its parameters work. For a data retrieval tool with multiple filtering options, this is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 8 parameters (only one required), the description provides absolutely no information about parameter meanings or usage. It doesn't explain what 'tag_names' should contain, what 'realtime_start/end' represent, how 'order_by' and 'sort_order' work, or what the 'limit' and 'offset' parameters control. The description fails completely to compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/tags/series' is essentially a tautology that restates the tool name 'get_tag_series' in a different format. It doesn't specify what action the tool performs (e.g., 'retrieve', 'list', 'search') or what resource it operates on beyond the vague 'tags/series' reference. While it hints at FRED data, it lacks a clear verb+resource statement that distinguishes it from sibling tools like 'get_tags' or 'get_series'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides zero guidance on when to use this tool versus alternatives. With numerous sibling tools like 'get_tags', 'get_series', 'search_series_by_tags', and 'get_related_tags', there's no indication of what makes this tool unique or when it should be selected. No context about appropriate use cases, prerequisites, or exclusions is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_seriesD
fred/series/search
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| search_type | No | ||
| limit | No | ||
| offset | No | ||
| order_by | No | search_rank | |
| sort_order | No | desc | |
| filter_variable | No | ||
| filter_value | No | ||
| tag_names | No | ||
| exclude_tag_names | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description 'fred/series/search' reveals nothing about whether this is a read or write operation, what permissions might be needed, rate limits, pagination behavior, or what happens when no results are found. For a search tool with 12 parameters, this complete lack of behavioral context is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise - a single path-like string 'fred/series/search'. While this represents severe under-specification, it's technically concise with zero wasted words. The structure is simple and front-loaded, though it's front-loaded with essentially no information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, 0% schema coverage, no annotations) and the existence of an output schema, the description is completely inadequate. While the output schema might describe return values, the description doesn't explain what the tool does, when to use it, how parameters work, or any behavioral characteristics. For a search tool in a rich ecosystem with many sibling alternatives, this minimal description fails to provide necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 12 parameters and 0% schema description coverage, the description 'fred/series/search' adds zero semantic information about any parameters. It doesn't explain what 'query' searches against, what 'search_type' options exist, what 'filter_variable' and 'filter_value' do, what 'tag_names' represents, or any other parameter meaning. The description fails completely to compensate 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/series/search' is essentially a tautology - it restates the tool name 'search_series' with path notation. It doesn't specify what 'series' refers to (economic data series from FRED), what kind of search it performs, or what resources it operates on. While the name implies searching series, the description adds no meaningful clarification beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'search_series_by_tags', 'get_series', and various category/release/tag tools, there's no indication of when this general search tool is appropriate versus more specific alternatives. No context, prerequisites, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_series_by_tagsD
fred/series/search/tags
| Name | Required | Description | Default |
|---|---|---|---|
| series_search_text | Yes | ||
| tag_names | No | ||
| limit | No | ||
| offset | No | ||
| order_by | No | series_count | |
| sort_order | No | desc | |
| tag_group_id | No | ||
| search_text | No | ||
| realtime_start | No | ||
| realtime_end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but provides none. It doesn't indicate whether this is a read-only operation, what permissions might be required, whether there are rate limits, what format the results return, or any other behavioral characteristics. The description is completely inadequate for a tool with 10 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise, the single string 'fred/series/search/tags' represents under-specification rather than effective brevity. It doesn't front-load key information or provide any structure to help the agent understand the tool's purpose. This isn't conciseness—it's insufficient documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, 0% schema coverage, no annotations) and the existence of an output schema, the description is completely inadequate. While the output schema might help with return values, the description fails to explain what the tool does, when to use it, how parameters work, or any behavioral context. This is particularly problematic for a search tool with many filtering options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 10 parameters (9 optional, 1 required), the description provides zero information about parameter meanings or usage. It doesn't explain what 'series_search_text' versus 'search_text' means, what 'tag_group_id' refers to, what 'realtime_start' and 'realtime_end' represent, or any other parameter semantics. The description fails completely to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fred/series/search/tags' is essentially a tautology that restates the tool name without explaining what it does. It doesn't specify the action (searching series by tags) or the resource (economic data series from FRED). While the name suggests searching series using tags, the description adds no clarity beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. There are multiple sibling tools like 'search_series', 'get_tag_series', and 'get_series_tags' that appear related, but the description offers no differentiation or context about when this specific tag-based search approach is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes targeting specific FRED resources and operations, but there is some overlap between general request tools (fred_request, fred_v2_request, geofred_request) and specific endpoint tools, which could cause confusion about when to use which. The alias 'get_series_observations' duplicates 'get_observations', adding minor redundancy.
Tool names follow a highly consistent verb_noun pattern (e.g., get_category, search_series, get_release_dates) with clear snake_case throughout. The three general request tools (fred_request, fred_v2_request, geofred_request) deviate slightly but maintain a predictable naming style.
With 40 tools, the count is excessive for the FRED API domain, making the surface overwhelming and likely to confuse agents. A more focused set of 10-20 tools covering core operations would be more appropriate, as many tools are highly specific (e.g., get_category_related_tags, get_release_tables) that could be consolidated.
The tool set provides comprehensive coverage of the FRED API domain, including categories, series, releases, sources, tags, and geospatial data, with full CRUD-like operations (mostly GET/search) and no apparent gaps. It supports all major workflows for economic data retrieval and analysis.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Equip AI with tools for researching economic data from Federal Reserve Economic Data (FRED).
FRED macro data, Treasury yields, FX rates & macro indicators for AI agents. Pay-per-query via x402.
Macro indicators from World Bank, FRED, IMF, and OECD via unified query surface.
75 MCP tools: SEC financials, FRED economics, IRS 990, FDA, FX, UK Companies House.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides access to 800,000+ Federal Reserve Economic Data (FRED) time series, enabling users to search, retrieve, and analyze economic indicators like GDP, unemployment, inflation, and interest rates through natural language queries.MIT
- AlicenseAqualityAmaintenanceEnables AI agents to search and retrieve FRED economic time series, including vintage (as-published) data, with tools for series search, observation retrieval, release calendar, revision history, and more.9MIT
- FlicenseAqualityDmaintenanceEnables searching and retrieving economic data from the Federal Reserve Economic Data (FRED) API, including time series, categories, releases, and popular indicators.71
- AlicenseAqualityDmaintenanceEnables users to search, retrieve, and explore economic data series from the Federal Reserve Economic Data (FRED) API using natural language.11MIT
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/nicoloceneda/mcp-fred'
If you have feedback or need assistance with the MCP directory API, please join our Discord server