teradata-gcfr-mcp-server
Provides tools for querying and monitoring Teradata GCFR operational reporting, including stream status, process execution history, load statistics, transform performance, error logs, SLA compliance, and data lineage.
Click on "Deploy 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., "@teradata-gcfr-mcp-servershow me failed processes from yesterday"
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.
teradata-gcfr-mcp-server
An MCP (Model Context Protocol) server that exposes Teradata GCFR (Global Control Framework Repository) operational reporting as natural-language tools consumable by Claude Desktop, Claude Code, VS Code Copilot Chat, and any other MCP-compatible client. Connect Claude to your Teradata environment and ask questions like "show me failed processes since yesterday" or "what are the slowest streams this week" — without writing SQL.
Prerequisites
Requirement | Notes |
Python 3.11+ | Earlier versions not supported |
Package manager and runner — | |
| Installed automatically by |
Network access to Teradata | Direct TCP to port 1025, or via ODBC gateway |
Related MCP server: redash-mcp
How it works
Server architecture:
Entry point (
server.py) — Initializes the connection pool, registers all tools, applies profile filtering, and starts the MCP server.Connection pool (
db.py) — Thread-safe pooling of Teradata connections with configurable size, overflow, and timeout. Queries have automatic reconnect-once on transient failures.Tool modules (
tools/*.py) — 7 categories of MCP tools:Streams (3 tools): Live stream status and business date tracking
Processes (3 tools): Process execution history and current status
Loads (3 tools): Data ingestion statistics and registration audit
Transforms (5 tools): Transform statistics, performance ranking, and trend analysis
Errors (3 tools): Error log, execution trace, and failed process diagnostics
SLA (2 tools): Service-level agreement compliance reporting
Lineage (2 tools): Data lineage tracing and health checks
Custom tools (
tool_loader.py) — YAML-defined SQL tools loaded fromCONFIG_DIRat startup, allowing site-specific reporting without Python code.
Query execution:
All SQL uses parameterized queries (
?placeholders) to prevent injection.Schema/table names come from
settings.pyconstants, never user input.Per-query timeout enforced via
GCFR_QUERY_TIMEOUT(default 120s).Queries are capped at
GCFR_MAX_ROWS(default 500 rows).Results returned as structured error dicts on failure — no exceptions.
Transport modes:
Transport | Best for | Visibility |
| Claude Desktop, local REPL | Silent (stdout = MCP protocol) |
| Development, debugging, VS Code | Log output on stderr |
| Web dashboards, REST clients | HTTP on configured port/path |
Recent improvements
Query timeout enforcement (2025-04-02)
GCFR_QUERY_TIMEOUTis now wired toteradatasql.connect()at connection initializationQueries that exceed the timeout are interrupted at the database level (no more runaway queries)
Timeout applies to all tool queries uniformly
HTTP mount path support (2025-04-02)
MCP_PATHsetting is now properly passed to FastMCP'smcp.run()callHTTP transports now mount at the configured path (e.g.,
/mcp/→http://127.0.0.1:8001/mcp/)Enables better URL hierarchy and multi-server configurations
Connection pool robustness
Automatic reconnect-once on transient failures (stale connections, temporary network issues)
QueryBand set on all connections for Teradata workload-management attribution
Graceful handling of connection exhaustion with timeout-aware blocking
Quick start
Local development (recommended)
git clone <repo-url>
cd teradata-gcfr-mcp-server
uv sync
cp .env.example .env # Edit with your Teradata credentials
MCP_TRANSPORT=sse uv run teradata-gcfr-mcp-server # Or use stdio for Claude DesktopThe MCP_TRANSPORT defaults to stdio (for Claude Desktop), but sse is useful for debugging
with visible log output on stderr.
Development install
git clone <repo-url>
cd teradata-gcfr-mcp-server
# Install all dependencies including dev extras
uv sync
# Run linting and type checks before making changes
uv run ruff check src/
uv run mypy src/
# Run unit tests (no Teradata connection required)
uv run pytest tests/unit/ -v
# Run the server locally in development mode
MCP_TRANSPORT=sse uv run teradata-gcfr-mcp-serverCopy .env.example to .env and update with your Teradata credentials. The server will use
environment variables automatically.
Verification gate (run before committing):
All three checks must pass with zero errors:
uv run ruff check src/ # Linting
uv run mypy src/ # Type checking (strict)
uv run pytest tests/unit/ -v # Unit tests (76 tests)Configuration reference
All settings are read from environment variables or a .env file in the working directory.
Variable | Type | Default | Description |
| str | (required) |
|
| str |
| Auth mechanism: |
| int |
| Persistent connections in the pool |
| int |
| Extra connections allowed under burst load |
| int |
| Seconds to wait for a free connection |
| str |
| Base view layer — registration/metadata tools |
| str |
| Operational reporting views ( |
| str |
| BKEY/BMAP surrogate-key views |
| str |
| Physical tables — health-check only |
| int |
| Maximum rows any single tool may return |
| int |
| Per-query timeout in seconds (enforced at connection init) |
| str |
|
|
| str |
| (read-only) Bind host for HTTP/SSE — not configurable at runtime |
| int |
| (read-only) Bind port for HTTP/SSE — not configurable at runtime |
| str |
| URL path prefix for HTTP transports |
| str |
| Active tool profile (see Profiles below) |
| str |
| Python logging level |
| str |
| Directory scanned for |
Notes on transport configuration:
MCP_HOSTandMCP_PORTare FastMCP internal settings and cannot be changed at runtime. The server binds to these values but the MCP framework controls the actual binding. Modify them only if you understand the implications.MCP_PATHis properly wired and controls the HTTP mount point (e.g.,/mcp/→http://host:port/mcp/).GCFR_QUERY_TIMEOUTis now wired toteradatasql.connect(), ensuring all queries respect the configured timeout.
Profiles
Profiles limit which tools are exposed to the MCP client. Set via the PROFILE env var or the
--profile CLI flag.
all (default)
Every tool is available.
ops
Focused on live operational monitoring:
gcfr_stream_status, gcfr_current_stream_status, gcfr_stream_business_date,
gcfr_current_process_status, gcfr_process_history, gcfr_process_status_summary,
gcfr_failed_processes, gcfr_error_log, gcfr_execution_log,
gcfr_load_status, gcfr_health_check
performance
Focused on SLA and throughput analysis:
gcfr_sla_process_report, gcfr_sla_stream_report, gcfr_top_slowest_processes,
gcfr_top_slowest_streams, gcfr_data_trend_loads, gcfr_data_trend_transforms,
gcfr_stream_status, gcfr_health_check
lineage
Focused on data lineage and registration audit:
gcfr_data_lineage, gcfr_dataset_registered, gcfr_load_stats,
gcfr_transform_stats, gcfr_health_check
Available MCP tools (22 total)
All tools are read-only queries against GCFR operational views. None modify data.
Streams (3 tools)
gcfr_stream_status— History and completion state for a date rangegcfr_current_stream_status— Real-time stream status (running now)gcfr_stream_business_date— Current, previous, next business date for a stream
Processes (3 tools)
gcfr_process_status_summary— All processes for a business date (completed vs incomplete)gcfr_current_process_status— Real-time process statusgcfr_process_history— Execution history with timing and outcomes
Loads (3 tools)
gcfr_load_status— Which staging tables loaded successfully and row countsgcfr_load_stats— Detailed load statistics (rejections, ET/UV violations, errors)gcfr_dataset_registered— Source datasets registered for processing
Transforms (5 tools)
gcfr_transform_stats— Rows inserted/updated/deleted per processgcfr_top_slowest_processes— Top N slowest processes by elapsed timegcfr_top_slowest_streams— Top N slowest streams by elapsed timegcfr_data_trend_loads— Daily load volume trendsgcfr_data_trend_transforms— Daily transform volume trends
Errors (3 tools)
gcfr_failed_processes— Failed process instances with error detailsgcfr_error_log— Raw error log entries for root cause investigationgcfr_execution_log— Step-level execution trace (debug level only)
SLA (2 tools)
gcfr_sla_process_report— Expected vs actual process timing and SLA compliancegcfr_sla_stream_report— Expected vs actual stream duration and SLA compliance
Lineage (2 tools)
gcfr_data_lineage— Trace target table back to source objectsgcfr_health_check— Verify GCFR databases are reachable
Database naming
GCFR uses two distinct tiers of databases:
Tier | Name pattern | Purpose |
View layer (V) |
| All |
Table layer (T) |
| Physical base tables — referenced only by the health-check |
Never reference GDEV1_GCFR (no T or V suffix) — that database does not exist. All tool
queries target the GDEV1V_* view layer. Only gcfr_health_check touches GDEV1T_GCFR to
verify the physical tables are reachable.
Required Teradata permissions
The server account needs SELECT privilege on the three view-layer databases:
GRANT SELECT ON GDEV1V_GCFR TO <your_user>;
GRANT SELECT ON GDEV1V_OPR TO <your_user>;
GRANT SELECT ON GDEV1V_UTLFW TO <your_user>;
-- For health-check (optional):
GRANT SELECT ON GDEV1T_GCFR TO <your_user>;No INSERT, UPDATE, DELETE, or DDL privileges are required — the server is read-only.
Claude Desktop configuration
Add the following to your claude_desktop_config.json (replace credential values):
{
"mcpServers": {
"teradata-gcfr": {
"command": "uvx",
"args": ["teradata-gcfr-mcp-server"],
"env": {
"DATABASE_URI": "teradata://myuser:mypass@gdev1-host:1025/GDEV1V_GCFR",
"LOGMECH": "TD2",
"GCFR_VIEW_DB": "GDEV1V_GCFR",
"GCFR_OPR_DB": "GDEV1V_OPR",
"GCFR_UTLFW_DB": "GDEV1V_UTLFW",
"GCFR_TABLE_DB": "GDEV1T_GCFR",
"MCP_TRANSPORT": "stdio",
"PROFILE": "all"
}
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
VS Code / Copilot Chat configuration
Add to your VS Code settings.json or workspace .vscode/mcp.json. The SSE transport is
recommended for VS Code:
{
"mcp": {
"servers": {
"teradata-gcfr": {
"type": "sse",
"url": "http://127.0.0.1:8001/sse",
"env": {}
}
}
}
}Then run the server with:
MCP_TRANSPORT=sse uv run teradata-gcfr-mcp-serverDocker quick start
# Build image
docker build -t gcfr-mcp .
# Run with an .env file
docker run --rm --env-file .env -p 8001:8001 gcfr-mcp
# Or use docker-compose (starts with streamable-http transport)
docker compose upThe docker-compose.yml mounts ./gcfr_custom_tools.yml into the container at
/app/gcfr_custom_tools.yml (read-only). Create this file to add site-specific tools; if it
does not exist, the container starts without custom tools.
Custom tools (YAML)
Add read-only SQL tools without writing Python by placing a *_tools.yml file in CONFIG_DIR
(defaults to ., the current working directory).
Example — gcfr_custom_tools.yml:
tools:
- name: gcfr_my_site_report
description: "Latest 20 stream records for this site"
sql: >
SELECT TOP 20
Stream_Key, Stream_Name, Business_Date, Stream_Status
FROM {gcfr_opr_db}.GCFR_RV_Stream
ORDER BY Business_Date DESCSupported SQL placeholders:
Placeholder | Expands to | Purpose |
|
| Operational reporting views ( |
|
| Base registration/metadata views |
|
| BKEY/BMAP surrogate-key reference data |
Custom tools are zero-argument — they execute their SQL directly with a GCFR_MAX_ROWS row limit applied automatically. Tool names must follow the gcfr_ prefix convention so that profile filtering and naming conventions are consistent.
Sample questions
The following questions work out-of-the-box with Claude once the server is connected:
"Show me all failed processes since yesterday."
"What is the current status of stream 42?"
"Which streams have not completed today's business date?"
"Give me the top 10 slowest processes this week."
"Show the SLA report for process LOAD_CUSTOMER_DAILY from 2024-01-01 to 2024-01-31."
"What datasets are registered in GCFR?"
"List the lineage for target table CUSTOMER_DIM."
"Show me transform statistics for the last 7 days."
"Are the GCFR databases reachable? Run a health check."
"What errors occurred in the execution log today?"
Linting and type checking
# Lint
uv run ruff check src/
# Auto-fix lint issues
uv run ruff check --fix src/
# Type checking (strict)
uv run mypy src/Running tests
Unit tests (no Teradata connection required)
uv run pytest tests/unit/ -vAll database calls are mocked — unit tests run offline.
Integration tests (requires GDEV1 network access)
uv run pytest tests/integration/ -vIntegration tests are not yet implemented. Contributions welcome — see CLAUDE.md for the
pending work list.
Skipping slow tests
uv run pytest tests/unit/ -v -m "not slow"Architecture and design patterns
See CLAUDE.md in the repository for comprehensive developer documentation including:
Async/sync split — Why MCP tool wrappers are async but DB logic is sync
Dynamic date defaults — How to avoid frozen dates in function signatures
Parameterised SQL only — Security model for user input vs schema names
Reconnect-once pattern — Transient failure handling in the connection pool
TOP clause injection — Why and how row limits are applied transparently
Testing patterns — How to mock database calls without hitting Teradata
Custom tool loading — YAML-driven tool registration and placeholder substitution
Profile filtering — How role-based access control works at startup
Design validation
This server was validated against the upstream Teradata/teradata-mcp-server
for architectural best practices and lessons learned. Key differences:
Aspect | This server | Upstream |
Connection layer | Direct teradatasql | SQLAlchemy + teradatasqlalchemy |
DB abstraction | Hand-rolled connection pool | SQLAlchemy QueuePool |
Tool registration | Module-based + YAML | Python (auto-discovery) + YAML + progressive disclosure |
Async strategy |
| Sync blocking in handlers (thread pool implicit) |
Type checking |
| Gradual mypy (strict disabled) |
Testing | 3 per handler (normal/empty/error) | Integration tests against live DB |
Error handling | Structured error dicts | Some handlers may raise |
Database timeout | ✓ Enforced at connection | Optional SQLAlchemy pool timeout |
HTTP path mounting | ✓ Wired to | Configuration-only |
Both implementations are production-ready and differ mainly in scope (GCFR-specific vs general Teradata) and deployment strategy (lightweight vs feature-rich).
Troubleshooting
Symptom | Likely cause | Fix |
| Wrong host/port in | Verify host resolves and port 1025 is reachable; check firewall |
| Missing | Run the |
Tool returns | Query execution failed or timeout | Check |
Query hangs or times out |
| Increase |
Claude Desktop shows no tools | Server not running or wrong transport | Confirm |
SSE transport shows | Server not running or wrong host/port | Verify server is running with |
| Expected — Teradata INTERVAL serialized to string | The |
Custom tools not appearing | Wrong | Set |
Profile filter not working | Tool name doesn't match pattern | Tool names must start with |
Server starts but no output |
| Use |
Available Tools
21 toolsgcfr_current_process_statusA
Show active processes and their current execution step.
Process_State values: 0=started, 1–98=in progress (restart point), 99=complete. Use this to find stuck or long-running processes. Filter by stream_key and/or process_name to narrow results.
| Name | Required | Description | Default |
|---|---|---|---|
| stream_key | No | ||
| process_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It explains the Process_State encoding (0, 1–98, 99) and the filtering behavior, which is valuable beyond what annotations would provide. However, it does not explicitly state read-only behavior or any caveats, though 'Show' implies it.
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 concise and well-structured: it leads with the core action, then explains state values, and ends with usage and filtering hints. Every sentence earns its place; no fluff.
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 output schema exists, return values do not need explanation. The description provides the critical process-state semantics, suggests a primary use case, and explains optional filtering. It is complete enough for a status tool with simple parameters.
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 adds meaning by explaining that stream_key and process_name are filters to narrow results, which clarifies their role. It does not define the values or formats, but the parameter names are self-descriptive and the filtering purpose is enough for an agent to use them.
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 'Show active processes and their current execution step,' which is a specific verb and resource. It distinguishes from siblings like history or summary tools, but does not explicitly name alternatives, so it stops short of the top tier.
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 a clear use case: 'Use this to find stuck or long-running processes.' This is explicit guidance on when to use the tool, but it does not mention when not to use it or name alternative tools, so it is a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_current_stream_statusA
Show streams that are actively running RIGHT NOW.
Use this first when investigating a running or stuck batch. Optionally filter to a specific stream by providing stream_key.
| Name | Required | Description | Default |
|---|---|---|---|
| stream_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself carries the burden of behavioral context. It usefully communicates that only currently running streams are shown, that this is the right first check for stuck batches, and that filtering by stream_key is possible. It does not discuss side effects, but 'Show' plus the status-oriented name makes the read-only nature reasonably clear.
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?
Three short sentences, all informative: the primary purpose, the recommended usage context, and the optional filter. There is no filler, and the key behavior is front-loaded.
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 simple status tool with one optional parameter and an output schema, the description covers the essential context: what it shows, when to use it, and how to narrow results. The only minor gap is not explicitly contrasting it with gcfr_stream_status, but the 'RIGHT NOW' language already makes that contrast implicit.
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 has one optional stream_key parameter with no description and 0% coverage. The description compensates by stating it is an optional filter for a specific stream, which is exactly the meaning an agent needs. It could add where to find stream_key, but for a single simple parameter this is sufficient.
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 uses a specific verb ('Show') and a precisely scoped resource ('streams that are actively running RIGHT NOW'), which clearly distinguishes it from sibling tools like gcfr_stream_status or gcfr_current_process_status. The temporal emphasis leaves no ambiguity about what is being queried.
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?
It explicitly tells the agent to use this tool first when investigating a running or stuck batch, providing a clear entry point among many diagnostic siblings. It does not mention explicit alternatives or when not to use it, but the 'Use this first' framing is strong practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_data_lineageA
Trace a target table back to its source objects.
Shows the full lineage chain with edge relationships. Returns: Src_Object_Name_FQ, Src_Kind, Edge_Relationship, Tgt_Object_Name_FQ, Tgt_Kind, Crt_Process_Name. Defaults to today when business_date is not supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| target_table | Yes | ||
| business_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. It clearly states what the tool returns (lineage chain with edge relationships and specific columns) and the default behavior for business_date, which is useful and non-obvious.
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 compact and well-structured: a one-line core purpose, a brief behavior statement, a return-field list, and a default-value note. Every sentence adds useful information without redundancy.
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 that an output schema exists, the return fields are already structurally defined, so the description need not over-explain them. It covers the main input and default behavior, though it could add a brief note on how the target_table should be specified.
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 adds meaning by explaining the business_date default ('Defaults to today'), but target_table is only described by its name and title, leaving its expected format (e.g., fully qualified or simple name) implicit.
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 opens with a specific verb and resource: 'Trace a target table back to its source objects.' It clearly distinguishes this tool from the many status/process/load sibling tools by focusing on lineage and edge relationships.
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 implies the tool is for tracing table lineage, and the default business_date behavior gives some usage context. However, it does not explicitly state when to prefer this over alternative tools or mention any exclusions or prerequisites beyond supplying a target table.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_dataset_registeredA
Show source data sets registered for processing and their file extract status.
Count_Source vs Count_Target reconciliation is here. date_from and date_to default to yesterday and today respectively. Optionally filter by ctl_id.
| Name | Required | Description | Default |
|---|---|---|---|
| ctl_id | No | ||
| date_to | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It adds useful behavior: date_from/date_to default to yesterday/today and ctl_id is optional. However, it doesn't describe side effects, read-only guarantees, error behavior, or response characteristics beyond what the output schema may show.
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 three tight sentences with the main purpose front-loaded. Every sentence adds useful information, and there is no filler or repetition.
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?
The output schema covers return values, so the description doesn't need to explain them. It covers purpose, reconciliation relevance, date defaults, and optional filtering, which is sufficient for a read-only query tool. The main gaps are parameter format details and explicit sibling differentiation, but they are not critical.
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 explain defaults for date_from and date_to and notes ctl_id is optional, adding some meaning. But it doesn't clarify date formats, ctl_id semantics, or how each parameter affects the reconciliation output.
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 uses a specific verb 'Show' with a clear resource: 'source data sets registered for processing and their file extract status.' It also mentions Count_Source vs Count_Target reconciliation, which helps distinguish it from stream/process/load status siblings. It doesn't explicitly name an alternative tool, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Count_Source vs Count_Target reconciliation is here' gives clear context for when this tool is relevant. Date defaults and optional ctl_id filtering provide practical invocation guidance. It doesn't mention when not to use it or name alternatives, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_data_trend_loadsA
Show daily load volume trends — total rows loaded per business date.
Use this to spot unusual volume changes. date_from and date_to default to yesterday and today respectively.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the default parameter behavior for date_from and date_to, and the verb 'Show' implies a read-only operation, but it does not specify date format, inclusivity, timezone handling, or how invalid inputs behave.
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 three tight sentences with no fluff: the first defines what it does, the second gives the use case, and the third explains parameter defaults. Every sentence earns its place.
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 read-only trend tool with two optional parameters and an output schema, the description covers the core behavior and default range. It could be more complete by explicitly distinguishing it from sibling tools like gcfr_data_trend_transforms or gcfr_load_stats, but it is otherwise sufficient.
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 for parameter meaning. It adds the default values for date_from and date_to, but it does not clarify expected date formats or whether the range is inclusive, leaving some interpretation to the agent.
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 a specific verb and resource: 'Show daily load volume trends — total rows loaded per business date.' It is clear this tool aggregates load volumes by business date and can be distinguished from the sibling transform trend tool by the word 'loads,' though it does not explicitly name alternatives.
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 gives a clear use case: 'Use this to spot unusual volume changes.' It does not explicitly state when not to use this tool or name an alternative, but the stated purpose is concrete enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_data_trend_transformsA
Show daily transform volume trends by business date.
date_from and date_to default to yesterday and today respectively.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It discloses that this is a read-style trend query and that omitted dates fall back to yesterday/today. However, it does not explain date format, inclusivity, limits, or whether 'volume' means row counts, transactions, or bytes.
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?
Two sentences with no filler. The purpose is front-loaded, and the second sentence provides necessary default-parameter behavior that the schema does not convey.
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 two optional parameters and an output schema, the description covers the core purpose and default behavior. It is incomplete in clarifying the date string format and the exact meaning of 'transform volume,' and it does not help disambiguate from the closely related transform stats 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?
Schema coverage is 0%, and the schema only shows nullable string parameters with null defaults. The description adds meaningful semantic information by stating that date_from and date_to default to yesterday and today respectively, but it does not specify the accepted date format or behavior when only one date is supplied.
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 a specific action ('Show') and resource ('daily transform volume trends') with a clear dimension ('by business date'). It is distinguishable from siblings like gcfr_load_status and gcfr_transform_stats, though it does not explicitly differentiate itself by name.
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 implies when to use the tool: when daily transform volume trends are needed. It provides useful default-date context, but it does not explicitly say when not to use it or mention an alternative sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_error_logA
Show raw error log entries for root cause investigation.
Includes the calling API and step where the error occurred. Sql_Text (CLOB) is excluded from output — ask separately if needed. date_from and date_to default to yesterday and today respectively. Optionally filter by process_name.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No | ||
| process_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. It transparently discloses that Sql_Text is excluded, what fields are included, and the default date range. It lacks details on pagination, ordering, or potential size of results, but for a read-only log retrieval tool the disclosed behavior is adequate.
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 four sentences with no filler. The main action is front-loaded, and each subsequent sentence adds a distinct piece of valuable information: included fields, excluded field, defaults, and filter option.
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 simple tool with three optional parameters and an output schema, the description covers the core purpose, key fields, a notable exclusion, and parameter behavior. It does not mention date formats or output ordering, but these are minor gaps given the output schema exists and the tool is straightforward.
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 adds useful meaning: date_from/date_to default to yesterday/today and process_name is an optional filter. However, it does not specify the expected date format, whether the range is inclusive, or how process_name matching works.
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 function: 'Show raw error log entries for root cause investigation.' This identifies a specific verb and resource. However, it does not explicitly differentiate this tool from siblings like gcfr_execution_log, which could plausibly overlap in 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 phrase 'for root cause investigation' provides a clear usage context. It also explains defaults and the optional filter (process_name). It does not, however, provide explicit exclusions or when to prefer a sibling tool over this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_execution_logA
Show step-level execution trace for detailed process debugging.
Only populated when GCFR is running at debug level 2 or higher. Sql_Text (CLOB) is excluded from output — ask separately if needed. date_from and date_to default to yesterday and today respectively. Optionally filter by process_name and/or stream_key.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No | ||
| stream_key | No | ||
| process_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses a critical data-population condition (debug level 2+), a field exclusion (Sql_Text CLOB), and default date behavior. This is strong disclosure, though it does not explicitly state read-only behavior or potential output volume.
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 brief and front-loaded, with the main purpose in the first sentence and each subsequent sentence adding a distinct useful constraint or default. There is no filler, repetition, or schema duplication.
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 moderate complexity, the description covers purpose, usage conditions, key behavioral caveats, defaults, and optional filters. An output schema exists, so return values do not need to be described. Missing details like date format and exact filter behavior are minor and can be inferred from parameter names.
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 explains date defaults and that process_name and stream_key are optional filters, adding meaning beyond the bare property names. However, it does not specify date formats or filtering semantics such as exact match versus wildcard, leaving some gaps.
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 opens with a specific verb and resource: 'Show step-level execution trace for detailed process debugging.' This immediately distinguishes the tool from sibling status/history/report tools by emphasizing granular execution-level detail. No ambiguity remains about what the tool produces.
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 gives clear conditions for when the tool is useful: 'detailed process debugging' and only when GCFR runs at debug level 2 or higher. It does not explicitly name sibling alternatives or say when not to use it, but the stated prerequisites and purpose provide adequate usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_failed_processesA
Show failed process instances with full error details.
This is the first tool to use when investigating a batch failure. date_from and date_to default to yesterday and today respectively. Optionally filter by stream_key and/or process_name.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No | ||
| stream_key | No | ||
| process_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full transparency burden. It conveys a read-only operation ('Show'), discloses default date behavior, and explains optional filtering. It does not cover every edge case such as date format or result limits, but the core behavioral traits are clearly described.
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 four short sentences with no filler. The primary purpose is front-loaded, followed by usage priority, defaults, and filter options—each sentence earns its place.
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 simple read-only tool with four optional parameters and an output schema, the description covers purpose, invocation priority, defaults, and filtering. The main omissions are minor—exact date format and timezone handling—but they do not meaningfully block an agent from selecting and calling this 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%, and the schema only provides names and types. The description compensates by naming all four parameters, stating the defaults for date_from and date_to, and clarifying that stream_key and process_name are optional filters. It could add date-format details, but the essential semantics are present.
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 opens with a specific verb and resource: 'Show failed process instances with full error details.' It also frames this tool as 'the first tool to use when investigating a batch failure,' which clearly distinguishes its role from sibling status, history, and stats tools even without naming them.
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 explicitly states a concrete use case: investigating a batch failure, and positions this tool as the first one to call. It does not enumerate when not to use it or name alternatives, but the priority guidance is strong and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_health_checkA
Verify the MCP server can reach both GCFR view databases.
Run this first if tools are returning errors. Returns status, database names, stream_count, and response_time_ms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. It explains what action is performed, the scope (both GCFR view databases), and the return fields (status, database names, stream_count, response_time_ms). It does not discuss edge cases such as failure behavior, but for a zero-parameter health check this is largely sufficient.
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 compact and front-loaded: the main purpose appears in the first sentence, followed by a practical usage hint and returned fields. Every sentence adds value and there is no repetition of schema or annotation 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 zero parameters, a clear one-sentence purpose, a usage trigger, and an output schema, the description covers everything an agent needs to select and invoke this tool. It is complete and appropriately scoped for a health-check utility.
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 tool has zero parameters, so the baseline is 4. The description correctly focuses on behavior and return fields rather than parameter documentation, since there are no parameters to explain.
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 opens with a specific verb and resource: 'Verify the MCP server can reach both GCFR view databases.' It clearly identifies the tool as a health check and distinguishes it from sibling status/process tools by focusing on server-database connectivity rather than stream or process state.
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 gives explicit situational guidance: 'Run this first if tools are returning errors.' This tells the agent when to invoke it, though it does not explicitly name alternative tools or state when not to use it. The context is clear enough for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_load_statsA
Show staging load statistics — row counts, rejections, ET errors, UV violations.
Key columns: Ctl_Id, File_Id, Business_Date, Process_Name, Rows_Input, Rows_Considered, Rows_Not_Considered, Rows_Rejected, Rows_Inserted, Rows_ET, Rows_UV, Start_Ts, End_Ts, Load_Status. date_from and date_to default to yesterday and today respectively. Optionally filter by ctl_id.
| Name | Required | Description | Default |
|---|---|---|---|
| ctl_id | No | ||
| date_to | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does disclose the exact columns returned, the default date range, and the optional ctl_id filter. It does not clarify potential limits, date format expectations, or how ET/UV terms are defined, leaving some behavioral ambiguity.
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 front-loaded with the purpose, followed by a compact list of relevant columns, then parameter default behavior and the optional filter. Every sentence contributes useful information without fluff or redundancy.
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 presence of an output schema and only three optional parameters, the description is largely complete, covering purpose, metrics, defaults, and filtering. The main gap is the missing date format specification for date_from and date_to, which would matter for correct 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?
Schema description coverage is 0%, so the description must compensate for the parameter documentation, and it does. It explains that date_from and date_to default to yesterday and today respectively, and that ctl_id is an optional filter, adding meaning beyond the bare schema property 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 a specific verb and resource ('Show staging load statistics') and enumerates the metrics included, so an agent can understand the core purpose. It does not explicitly differentiate itself from similar siblings like gcfr_load_status or gcfr_data_trend_loads, though the stated column set makes the intent reasonably distinct.
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 prefer this tool over the many similar siblings such as gcfr_load_status, gcfr_data_trend_loads, or gcfr_process_history. It mentions optional filters and defaults, but those are operational details rather than usage-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_load_statusA
Show which staging tables loaded successfully for a business date, with row counts.
Use this to verify all expected feeds have arrived. Defaults to today when business_date is not supplied. Optionally filter by ctl_id.
| Name | Required | Description | Default |
|---|---|---|---|
| ctl_id | No | ||
| business_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry behavioral disclosure. It does so by noting the default business_date behavior, optional ctl_id filter, and the read-only 'Show/verify' nature, though it does not explicitly say 'read-only'.
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?
Three short sentences each earn their place: the first states the core purpose, the second gives the usage scenario, and the third captures defaults and filters. It is front-loaded and free of filler.
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 low-complexity read tool with an output schema and optional parameters, the description is nearly sufficient: it covers purpose, use case, defaulting, and filtering. Only a brief mention of date format or control-ID meaning would make it fully complete.
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 coverage, the description compensates by explaining business_date's default-to-today behavior and ctl_id's optional filtering role. It does not specify date formats or ctl_id value domains, but both parameters are functionally clear.
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 opens with a specific verb and resource: 'Show which staging tables loaded successfully for a business date, with row counts.' This clearly differentiates it from sibling status/stat tools about streams or processes.
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?
It explicitly gives a use case: 'Use this to verify all expected feeds have arrived.' It does not list exclusions or name alternative tools, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_process_historyB
Show process execution history with timing and outcomes for a date range.
Use this to understand how long processes took and whether they succeeded. date_from and date_to default to yesterday and today respectively when not supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No | ||
| process_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it shows history (implying read-only) and includes defaults for date parameters. However, it does not state whether the operation is read-only explicitly, does not describe the response format (though output schema exists), and does not mention any potential side effects or pagination. This is a moderate disclosure given the lack of annotations.
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 two short, front-loaded sentences with no filler. The primary purpose is stated first, followed by a use case and parameter defaults. Every word earns its place, making it highly concise and well-structured.
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 an output schema (so return format is covered elsewhere) and no annotations, the description provides the core purpose and defaults. However, it omits the process_name parameter entirely, which is a significant gap for a 3-parameter tool. The description also does not mention any prerequisites or limitations, though the simple nature of the query reduces the need. Overall, it's adequate but incomplete.
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 explain all parameters. It explains date_from and date_to defaults, indicating they define the range, but it does not mention process_name at all. The description fails to describe what process_name does or its expected format. Since one of three parameters is completely undocumented and the others are only partially explained, this is 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 clearly states the tool shows process execution history with timing and outcomes for a date range. It uses a specific verb ('show') and resource ('process execution history'), and mentions the key outputs (timing, outcomes). However, it does not explicitly differentiate from siblings like gcfr_execution_log or gcfr_process_status_summary, so it's not a perfect 5.
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 gives a clear use case: 'Use this to understand how long processes took and whether they succeeded.' This implies when to use it, but it does not mention alternatives or when not to use it. For a tool with many related siblings, explicit guidance on selection would improve it, so it's adequate but not strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_process_status_summaryA
Show all processes for a business date — completed vs not completed.
If a process did not complete, the error message is included. Use this for a quick end-of-day sign-off check. Defaults to today when business_date is not supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| business_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool includes error messages for non-completed processes and that it defaults to today when business_date is not supplied. These are useful behavioral details beyond the schema. It does not mention pagination or output format, but the output schema exists and the description covers the key 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?
The description is four short sentences, each earning its place: what it shows, what error info is included, when to use it, and the default behavior. It is front-loaded with the core purpose and has no filler.
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 simple read-only summary tool with one optional parameter and an output schema, the description is nearly complete. It covers the purpose, the error-message inclusion, the default date behavior, and the intended use case. It could mention that it is read-only or that it aggregates all processes, but the output schema and sibling context fill most gaps.
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 explains the business_date parameter's default behavior ('Defaults to today when business_date is not supplied'), which adds meaning beyond the schema's bare 'default: null'. It does not detail the date format, but the parameter is optional and the default behavior is the most important semantic.
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 a specific verb ('Show all processes for a business date') and a clear resource/scope ('completed vs not completed'), and it distinguishes itself from siblings by framing this as a quick end-of-day sign-off check. It is not a tautology and clearly differentiates from tools like gcfr_current_process_status or gcfr_failed_processes.
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 explicitly says 'Use this for a quick end-of-day sign-off check,' which gives clear context for when to use it. It does not explicitly name alternatives or exclusions, but the sibling list and the phrase 'quick end-of-day sign-off' imply the intended use case well enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_sla_process_reportB
Compare expected vs actual process start time, end time, and duration.
Shows whether SLAs were met. SLA_Run_Duration is returned as a formatted string (INTERVAL DAY TO SECOND). date_from and date_to default to yesterday and today respectively.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that SLA_Run_Duration is returned as a formatted INTERVAL string and that date parameters have defaults. However, it does not mention whether the operation is read-only, potential errors, or permissions. For a report tool, the output-format note adds value, but the lack of explicit safety or error behavior prevents a higher score.
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 three sentences, each serving a purpose: the primary function, a key output detail, and parameter defaults. It is front-loaded with the main purpose and avoids redundancy. It could be slightly more compact but is well-structured for a small 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?
The description covers the main functionality, a specific output format nuance, and default parameter behavior. It does not explain how to interpret the comparison results or mention any limitations (e.g., process-only scope). With an output schema present, return values are partially covered, but the lack of usage context and edge cases leaves some gaps 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?
Schema description coverage is 0%, so the description must compensate. It provides useful default behavior for date_from and date_to (yesterday and today), which is not in the schema. However, it does not specify the expected date format or how to pass custom values, leaving the agent to infer from the string type. This partial compensation justifies a middle score.
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 function: comparing expected vs actual process start/end times and duration to show SLA compliance. It identifies a specific resource (process SLA) and a clear outcome, but does not explicitly differentiate from the sibling gcfr_sla_stream_report, which is the stream counterpart.
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 gives no guidance on when to use this tool versus alternatives like gcfr_process_history or gcfr_sla_stream_report. It only mentions the default date range, implying it is a reporting tool, but it does not state explicit conditions for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_sla_stream_reportB
Compare expected vs actual stream duration SLAs.
SLA duration fields are returned as formatted strings. date_from and date_to default to yesterday and today respectively.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden. It usefully discloses that SLA duration fields are formatted strings and that date parameters default to yesterday/today, but it does not state whether the tool is read-only or how null/omitted parameters behave beyond defaults.
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?
Three compact sentences with the main purpose first, followed by two useful behavioral details. There is no filler or redundant restatement of the schema.
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 simple two-parameter report with an output schema, the description covers the core purpose, default behavior, and return formatting. The main gap is the missing date format specification, but overall it is adequately complete.
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 adds the key fact that date_from and date_to default to yesterday and today, respectively. However, it does not specify the expected date string format or inclusive/exclusive boundaries.
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 a specific verb and resource: 'Compare expected vs actual stream duration SLAs.' This clearly distinguishes it from the process-level SLA sibling tool, though it does not explicitly name alternatives.
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 on when to use this tool versus gcfr_sla_process_report or the other stream status tools. Only default date behavior is mentioned, with no explicit usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_stream_business_dateA
Show the current, previous, and next business date for a stream.
Use this to understand where a stream's processing date is set and whether it is in sync with the expected calendar date.
| Name | Required | Description | Default |
|---|---|---|---|
| stream_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden; 'Show' indicates a read-only retrieval and the listed outputs are transparent. It does not discuss side effects, error cases, or how business dates are determined, but the output schema covers the return structure.
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 two short sentences with no filler, and the core purpose is front-loaded before the usage guidance. Every sentence adds 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?
The tool is simple with one required parameter and an output schema, so the description is mostly adequate. However, the missing explanation of stream_key and the lack of any safety annotation leave a small but real gap for an agent selecting and calling 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%, so the description should compensate for the sole 'stream_key' parameter. It only refers to 'a stream' and does not explain what a stream key is, where to find it, or what format/value it expects.
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 opens with a specific verb ('Show') and a precise resource: the current, previous, and next business date for a stream. This clearly distinguishes it from sibling status/history tools by focusing on business-date values rather than stream health or process status.
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 second sentence explicitly states the intended use: understanding where a stream's processing date is set and whether it is in sync with the expected calendar date. It gives clear when-to-use context, though it does not name alternative tools or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_stream_statusA
Show stream execution history and completion state for a date range.
Use this to find out whether a stream ran successfully, is still running, or failed for a given business date. date_from and date_to default to yesterday and today respectively when not supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No | ||
| stream_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 does reveal that date_from and date_to default to yesterday and today, which is a useful behavioral trait. However, it does not explicitly state that this is a read-only operation, mention any permissions, or describe side effects. For a status query the implication is read-only, but it is not stated, leaving a transparency 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 three sentences, with the core purpose in the first sentence and the default behavior in the second. There is no fluff, and the most important information is front-loaded. Every sentence contributes meaningful guidance.
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 simple query tool with an output schema present, the description covers the core purpose and default behavior adequately. However, it does not explain the stream_key parameter, which is a required part of the tool's semantics. It also does not mention any limitations or edge cases, though the output schema may handle return format. The missing parameter explanation makes it not fully complete.
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%, so the description must fully explain each parameter. It covers date_from and date_to by stating their defaults, but it completely omits stream_key. An agent using the tool has no guidance on what stream_key refers to or how it filters results. This is a significant omission given zero schema-level 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 opens with 'Show stream execution history and completion state for a date range,' which is a specific verb-resource-scope statement. It clearly differentiates from siblings like gcfr_current_stream_status by emphasizing 'history' and 'date range,' so an agent can immediately tell this tool is for historical queries rather than current state.
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 second sentence explains the intended use case: 'find out whether a stream ran successfully, is still running, or failed for a given business date.' This gives clear context for when to invoke the tool, though it does not explicitly mention alternatives or when not to use it. The existence of a sibling for current status implies the boundary, but the description itself doesn't state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_top_slowest_processesA
Show the N slowest processes by elapsed duration for a business date.
Use this to identify performance bottlenecks. top_n must be between 1 and 50 (default 10). Defaults to today when business_date is not supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | ||
| business_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. It adds useful details (top_n must be 1–50, defaults to 10; business_date defaults to today), but it does not explicitly state that the operation is read-only or describe any potential side effects, error cases, or result limits beyond the top_n parameter. It adds some context but is not comprehensive.
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 three short paragraphs with no filler. The core purpose is front-loaded, followed by usage guidance and then parameter constraints/defaults. Every sentence earns its place, making it highly concise and well-structured.
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 simplicity and the presence of an output schema, the description covers the essential aspects: what it does, when to use it, and parameter constraints. The only notable omission is a mention of the expected date format for business_date, which is a minor gap. Overall it is sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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: it explains the top_n range and default, and the business_date default. It does not specify the expected date format, but the defaults and constraints add meaningful meaning beyond the schema's bare type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Show') and a specific resource ('slowest processes by elapsed duration') and qualifies it with a business date. The word 'processes' differentiates it from the sibling gcfr_top_slowest_streams, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: 'Use this to identify performance bottlenecks.' However, it does not explicitly mention when not to use it or point to an alternative tool (like the streams variant). This is a minor gap, so it earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_top_slowest_streamsB
Show the N slowest streams by elapsed duration.
top_n must be between 1 and 50 (default 10). Defaults to today when business_date is not supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | ||
| business_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavior. It mentions top_n bounds and business_date default, but does not state read-only nature, side effects, ordering direction beyond 'slowest', or any permission requirements. This is a minimal disclosure for a query 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?
Two sentences, front-loaded with the core purpose, no redundancy. All sentences add value, including parameter constraints and default behavior. Excellent 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?
Both parameters are addressed with bounds and defaults. Output schema exists, so return details are not needed in the description. The only notable gap is the unspecified business_date format/timezone for 'today', which is minor for a simple query 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 has 0% description coverage, so description must compensate. It adds top_n range (1-50) and default 10, and business_date defaulting to 'today'. However, it omits date format, timezone, and the exact meaning of 'elapsed duration' relative to parameters. Partial coverage only.
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?
Clear verb 'Show' with specific resource 'streams' and qualifier 'slowest by elapsed duration'. Immediately distinguishes from sibling gcfr_top_slowest_processes by targeting streams, not processes.
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 the many sibling tools (e.g., process versions, status tools). No mention of exclusions or scenarios where the stream-specific tool is preferred over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcfr_transform_statsA
Show transformation statistics — rows inserted, updated, and deleted per process.
Use this to verify data movement through the warehouse. date_from and date_to default to yesterday and today respectively. Optionally filter by ctl_id.
| Name | Required | Description | Default |
|---|---|---|---|
| ctl_id | No | ||
| date_to | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the burden of explaining behavior. It discloses default date behavior, optional ctl_id filtering, and the kind of statistics returned. It also implicitly indicates a read-only verification operation, though it does not discuss response shape or pagination.
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 compact and front-loaded: purpose, use case, defaults, and optional filtering each get one clear sentence. There is no filler and no repetition.
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 only three optional parameters and an output schema, the description is complete enough for correct invocation. It explains what the result contains, the default date range, the optional filter, and the intended verification use case.
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 explains that date_from and date_to default to yesterday and today, and that ctl_id is an optional filter. This gives meaningful semantics for all three parameters, though it does not specify date formats or value constraints.
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 a specific verb and resource: 'Show transformation statistics' and then details the exact output: 'rows inserted, updated, and deleted per process.' This clearly separates it from sibling tools like gcfr_load_stats, gcfr_stream_status, and gcfr_process_history.
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?
It provides an explicit use case: 'Use this to verify data movement through the warehouse.' It does not mention when not to use it or name alternative tools, but the context given is clear enough for an agent to understand the intended scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
21 tool updates
v0.1.0- First observed
gcfr_current_process_status - First observed
gcfr_current_stream_status - First observed
gcfr_data_lineage - First observed
gcfr_data_trend_loads - First observed
gcfr_data_trend_transforms - First observed
gcfr_dataset_registered - First observed
gcfr_error_log - First observed
gcfr_execution_log - First observed
gcfr_failed_processes - First observed
gcfr_health_check - First observed
gcfr_load_stats - First observed
gcfr_load_status - First observed
gcfr_process_history - First observed
gcfr_process_status_summary - First observed
gcfr_sla_process_report - First observed
gcfr_sla_stream_report - First observed
gcfr_stream_business_date - First observed
gcfr_stream_status - First observed
gcfr_top_slowest_processes - First observed
gcfr_top_slowest_streams - First observed
gcfr_transform_stats
TDQS
Scored across 21 tools
Most tools target a distinct monitoring concern—streams vs processes, current vs historical, load vs transform. A few pairs like load_stats/load_status and process_history/process_status_summary have overlapping row/status information, but descriptions provide enough differentiation.
All tools share the gcfr_ prefix and use snake_case with descriptive subject+report type names (e.g., stream_status, process_history, sla_process_report). Minor structural deviations such as dataset_registered and health_check break the pattern slightly but remain predictable.
21 tools is in the heavy range and each one covers a specific report or query, which is justified by the broad monitoring domain. Still, the count is large enough that an agent may need to scan many similar names.
The tool surface covers the full operational monitoring lifecycle: stream/process status and history, load and transform statistics, failure/error investigation, SLA reporting, performance trends, data lineage, and connectivity health. No obvious dead ends or missing monitoring scenarios are apparent for the stated purpose.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server implementation that integrates Claude with Salesforce, enabling natural language interactions with Salesforce data and metadata.881 npmMIT
- AlicenseAqualityBmaintenanceMCP server that connects Redash to Claude AI, enabling natural language data queries, dashboard management, and SQL execution.24277 npm1MIT
- AlicenseAqualityDmaintenanceA database-agnostic MCP server that enables natural language queries to your database through Claude or Copilot, automatically writing and executing SQL.88 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables natural language interaction with Teradata databases through Claude, allowing data exploration, profiling, and in-database KMeans clustering via MCP.-