u2-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@u2-mcpList all customers in California"
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.
u2-mcp
Connect Claude to your Universe/UniData database using natural language.
u2-mcp is an MCP server that lets AI assistants like Claude query and interact with Rocket Universe and UniData MultiValue databases. Ask questions in plain English and get real answers from your data.
The first MCP server for the Pick/MultiValue database family.
What Can You Do With This?
Instead of writing RetrieVe queries, just ask Claude:
You Ask | Claude Does |
"How many customers are in California?" | Queries the database and tells you "1,247 customers" |
"Show me order ORD001" | Reads the record and displays all fields |
"What files are available?" | Lists all files in your account |
"Describe the CUSTOMERS file" | Shows field definitions from the dictionary |
Related MCP server: Vertica MCP Server
How It Works
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Desktop │◄───►│ u2-mcp │◄───►│ Universe/UniData│
│ (You ask here) │ │ (Translates) │ │ (Your data) │
└─────────────────┘ └─────────────────┘ └─────────────────┘You ask Claude a question about your database
Claude calls u2-mcp with the appropriate tool
u2-mcp queries your Universe/UniData server
Results come back through Claude in a readable format
New to MCP? See What is MCP? for a complete explanation.
Documentation
Guide | Description |
Understanding MCP and how u2-mcp works | |
Complete installation guide | |
Get running in 10 minutes | |
All configuration options | |
Detailed tool documentation | |
Common usage patterns | |
Claude.ai integration with SSO |
Features
Connection Management - Connect to Universe/UniData servers with connection pooling and SSL support
File Operations - Read, write, and delete records while preserving MultiValue semantics
Query Execution - Run RetrieVe/UniQuery statements with safety controls
Dictionary Access - Explore file structures and field definitions
BASIC Subroutine Calls - Execute cataloged BASIC programs
Transaction Support - Full transaction management with commit/rollback
AI-Optimized - Built-in query examples and syntax help for better LLM interactions
Installation
pip install u2-mcpOr using uvx for isolated execution:
uvx u2-mcpQuick Start
Prerequisites
Python 3.10+
Access to a Rocket Universe or UniData server
The
uopypackage (installed automatically as a dependency)
Configuration
Set environment variables for your database connection:
export U2_HOST=server.example.com
export U2_USER=username
export U2_PASSWORD=password
export U2_ACCOUNT=MYACCOUNT
export U2_SERVICE=uvcs # or 'udcs' for UniDataClaude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"u2": {
"command": "uvx",
"args": ["u2-mcp"],
"env": {
"U2_HOST": "server.example.com",
"U2_USER": "user",
"U2_PASSWORD": "password",
"U2_ACCOUNT": "MYACCOUNT"
}
}
}
}Usage Examples
Once connected, you can use natural language to interact with your Universe database:
"List all customers in California"
"Read record CUST001 from the CUSTOMERS file"
"Show me the dictionary for the ORDERS file"
"Count all open invoices over $1000"
Available Tools
Connection Management
connect- Establish connection to Universe/UniData serverdisconnect- Close connectionslist_connections- Show active connections
File Operations
list_files- List available files in the accountread_record- Read a single record by IDread_records- Read multiple recordswrite_record- Write/update a recorddelete_record- Delete a recordget_file_info- Get file statistics
Query Execution
execute_query- Run RetrieVe/UniQuery statementsexecute_tcl- Run TCL/ECL commandsget_select_list- Execute SELECT and return record IDs
Dictionary Access
list_dictionary- List dictionary itemsget_field_definition- Get field detailsdescribe_file- High-level file description
Advanced Features
call_subroutine- Call BASIC subroutinesbegin_transaction/commit_transaction/rollback_transaction- Transaction management
Knowledge Persistence
save_knowledge- Save learned information about the databaselist_knowledge- List all saved knowledge topicsget_knowledge_topic- Retrieve specific topicsearch_knowledge- Search across saved knowledgedelete_knowledge- Remove a knowledge topic
Configuration Options
Variable | Description | Default |
| Server hostname or IP | Required |
| Username | Required |
| Password | Required |
| Account name | Required |
| Service type ( |
|
| Server port |
|
| Enable SSL |
|
| Connection timeout (seconds) |
|
| Disable write operations |
|
| Maximum SELECT results |
|
| Comma-separated blocked TCL commands |
|
| Custom path for knowledge file |
|
Knowledge Persistence
The MCP server includes a knowledge persistence feature that allows Claude to save and recall learned information about your database across sessions. This eliminates repetitive discovery work and speeds up future interactions.
How It Works
When Claude discovers useful information about your database (file purposes, field meanings, working queries), it can save this knowledge using the save_knowledge tool. This information is stored in a markdown file and automatically available in future conversations via the u2://knowledge resource.
What Gets Saved
File descriptions - What each file contains (e.g., "AR-CUST is the customer master file")
Field mappings - Which fields contain what data (e.g., "Field 1 is customer name")
Query patterns - Queries that produced good results
Data formats - Date formats, code meanings, conversion notes
Relationships - How files relate to each other
Storage Location
Knowledge is stored in ~/.u2-mcp/knowledge.md by default. You can customize this location using the U2_KNOWLEDGE_PATH environment variable:
{
"env": {
"U2_KNOWLEDGE_PATH": "/path/to/custom/knowledge.md"
}
}Example Usage
After Claude discovers that AR-CUST contains customer records:
Claude: I found that AR-CUST is the customer master file. Let me save this for future reference.
[Calls save_knowledge("AR-CUST file", "Customer master file. Key is customer number. Field 1=name, Field 2=address...")]In the next conversation, Claude will already know this and won't need to rediscover it.
Centralized Deployment (HTTP/SSE Mode)
For team environments, you can run u2-mcp as a centralized HTTP server instead of local stdio mode. This allows:
Single database connection for the whole team
Shared knowledge base
Centralized credential management
Access from any MCP-compatible client
Running the HTTP Server
# Basic HTTP server on default port 8080
u2-mcp --http
# Custom host and port
u2-mcp --http --host 0.0.0.0 --port 3000
# Or using environment variables
export U2_HTTP_HOST=0.0.0.0
export U2_HTTP_PORT=3000
u2-mcp --httpDocker Deployment
FROM python:3.12-slim
RUN pip install u2-mcp
ENV U2_HOST=your-universe-server
ENV U2_USER=username
ENV U2_PASSWORD=password
ENV U2_ACCOUNT=MYACCOUNT
ENV U2_HTTP_PORT=8080
EXPOSE 8080
CMD ["u2-mcp", "--http"]docker build -t u2-mcp-server .
docker run -p 8080:8080 u2-mcp-serverHTTP Configuration Options
Variable | Description | Default |
| Host to bind HTTP server to |
|
| Port for HTTP server |
|
| Allowed CORS origins (comma-separated or |
|
Connecting Clients
The HTTP server exposes an SSE (Server-Sent Events) endpoint at /sse. MCP clients that support remote servers can connect to:
http://your-server:8080/sseNote: As of late 2024, Claude Desktop only supports local stdio MCP servers. HTTP/SSE mode is for:
Custom MCP clients
Future Claude Desktop versions with remote server support
Integration with other AI tools that support MCP over HTTP
Claude.ai Integration (Streamable HTTP + OAuth)
Deploy u2-mcp as a Custom Connector in Claude.ai with enterprise authentication via your identity provider (Duo, Auth0, Okta, etc.).
Quick Setup
Deploy u2-mcp with OAuth enabled:
u2-mcp --streamable-http --host 0.0.0.0 --port 8080Configure OAuth in your
.env:
U2_AUTH_ENABLED=true
U2_AUTH_ISSUER_URL=https://u2-mcp.example.com
U2_IDP_PROVIDER=duo
U2_IDP_DISCOVERY_URL=https://sso-xxx.sso.duosecurity.com/oidc/CLIENT_ID/.well-known/openid-configuration
U2_IDP_CLIENT_ID=your_client_id
U2_IDP_CLIENT_SECRET=your_client_secretAdd to Claude.ai: Go to Settings → Connectors → Add Custom Connector → Enter your URL
Users authenticate through your IdP and can then query your database directly from Claude.ai.
Supported Identity Providers
Cisco Duo - Enterprise MFA and SSO
Auth0 - Flexible identity platform
Any OIDC Provider - Okta, Azure AD, Google Workspace, Keycloak, etc.
See the OAuth Guide for detailed setup instructions.
Security
Credentials are never logged
Configurable command blocklist prevents dangerous operations
Optional read-only mode for safe exploration
Honors Universe's built-in security model
See SECURITY.md for reporting security vulnerabilities.
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Documentation
Getting Started
Quickstart Guide - Get running in 10 minutes
What is MCP? - Understanding MCP and how u2-mcp works
Installation Guide - Detailed installation instructions
Reference
Configuration Reference - All environment variables
Tools Reference - Complete tool documentation
Usage Examples - Common usage patterns
OAuth & Claude.ai Integration - Deploy as a Claude.ai Custom Connector
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Acknowledgments
Rocket Software for the
uopypackageAnthropic for the Model Context Protocol specification
The MultiValue database community
Available Tools
33 toolsanalyze_file_structureA
Analyze file structure by sampling records to infer field usage patterns.
Samples records from the file to detect:
Which fields are populated
Multivalue patterns
Data types and common values
Useful when dictionary is incomplete or for understanding actual data usage.
Args: file_name: Name of the Universe file to analyze sample_size: Number of records to sample (default 100)
Returns: Analysis results including field usage statistics and patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | ||
| sample_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains that the tool samples records and detects patterns, indicating a read-only, non-destructive behavior. However, it does not disclose potential performance impacts on large files or any required permissions, which are not covered by missing 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 compact and well-structured with a brief intro, bullet points for detectable patterns, a usage hint, and clear Args/Returns sections. Every sentence serves a purpose 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 the existence of an output schema, the description's mention of 'Analysis results including field usage statistics and patterns' is sufficient. It covers purpose, parameters, usage context, and return value, leaving no major gaps for this straightforward analysis 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?
The description adds meaning to both parameters beyond the bare input schema: 'file_name' is described as 'Name of the Universe file to analyze' and 'sample_size' as 'Number of records to sample (default 100)'. With 0% schema coverage, this is valuable, though constraints like min/max values are missing.
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 ('analyze') and resource ('file structure') with method ('sampling records') and outcome ('infer field usage patterns'). It distinguishes from siblings like 'describe_file' and 'list_dictionary' by focusing on actual data usage rather than dictionary metadata.
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 'Useful when dictionary is incomplete or for understanding actual data usage', providing a clear context for when to use this tool. It implies alternatives exist (dictionary tools) but does not explicitly list them or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
begin_transactionA
Begin a database transaction.
Starts a new transaction. All subsequent write operations (write_record, delete_record) will be part of this transaction until commit_transaction or rollback_transaction is called.
Returns: Dictionary containing: - status: success or error - in_transaction: True if transaction is now active - started_at: Timestamp when transaction started
Note: Only one transaction can be active at a time. Attempting to start a new transaction while one is active will fail.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden; it discloses that writes are transactional, only one active at a time, and potential failure, plus return dictionary fields.
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 concise paragraphs, front-loaded with main action, no unnecessary words.
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?
With no parameters and an output schema, the description fully covers purpose, behavior, constraints, and return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline 4 applies; description adds no parameter info but none needed.
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?
Description clearly states it begins a database transaction, specifies that subsequent write operations become part of the transaction, and distinguishes from sibling tools like commit_transaction and rollback_transaction.
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?
Explains when to use (before write operations to group them) and notes constraint of only one transaction at a time, but lacks explicit 'when-not' or comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
call_subroutineA
Call a cataloged BASIC subroutine with arguments.
Executes a cataloged BASIC program and returns the results. Arguments are passed by reference, so output arguments will be returned in the response.
Args: name: Name of the cataloged subroutine args: List of argument values to pass (input arguments). Arguments are passed as strings and converted by the subroutine. num_args: Total number of arguments the subroutine expects. If not specified, uses len(args). Required if subroutine has output-only arguments.
Returns: Dictionary containing: - status: success or error - args_out: List of argument values after subroutine execution - original_args: The input arguments that were passed
Example: # Call GET.CUSTOMER.DATA with customer ID, returns data in args 2-3 call_subroutine("GET.CUSTOMER.DATA", ["CUST001", "", ""], num_args=3)
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| name | Yes | ||
| num_args | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains pass-by-reference behavior and the role of num_args, but does not disclose side effects, permissions, or error conditions. The return format is described, but deeper behavioral traits are missing.
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 yet complete, with a clear opening sentence followed by detailed parameter explanations and a helpful example. Every sentence adds value, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description covers the main behavioral aspects (pass-by-reference, num_args usage, and return values). It could mention prerequisites or error handling, but overall it is sufficient for an agent's understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully explains each parameter: name as the subroutine name, args as input argument strings converted by the subroutine, and num_args as the expected count (defaults to len(args), required for output-only args). This adds significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calls a cataloged BASIC subroutine with arguments, using specific verbs and naming the resource. It distinguishes itself from sibling tools like execute_query and execute_tcl by being about subroutines, not queries or TCL commands.
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 does not provide guidance on when to use this tool versus alternatives. There is no mention of scenarios where it is preferred or when not to use it, leaving the agent without decision-making context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commit_transactionA
Commit the current transaction.
Saves all changes made since begin_transaction was called. The transaction is closed after commit.
Returns: Dictionary containing: - status: success or error - in_transaction: False after successful commit - message: Confirmation message
Note: If no transaction is active, returns an error.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavior: saves changes, closes transaction, returns status/message, and error handling. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, well-structured with sections, and every sentence adds value. No 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 zero parameters and an output schema, the description covers all necessary context: behavior, return values, and error condition. 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?
No parameters exist; schema coverage is 100%. Description adds no param info but doesn't need to. Baseline 4 is appropriate.
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 verb 'commit' and resource 'current transaction', and distinguishes from sibling tools like rollback_transaction and get_transaction_status by specifying that it saves changes and closes the transaction.
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 context: transaction must be active (after begin_transaction), and notes error if no transaction. It does not explicitly list alternatives but implies when to use via the note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connectA
Establish connection to the Universe/UniData server.
Uses configuration from environment variables:
U2_HOST: Server hostname
U2_USER: Username
U2_PASSWORD: Password
U2_ACCOUNT: Account name
U2_SERVICE: Service type (uvcs/udcs), defaults to uvcs
Returns: Connection status and details including host, account, service, and timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It describes the side effect (establishing a connection) and return structure, but lacks details on error handling, idempotency, or what happens if already connected. The description is adequate but 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 concise and well-structured: first sentence states purpose, then lists relevant environment variables, then describes return value. Every sentence adds value with no redundancy or 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 no parameters and presence of an output schema, the description covers essential aspects: configuration, return structure. However, it omits details like the need to disconnect afterward or handling of multiple connections. Still, it is largely complete for a tool of this nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description correctly adds no parameter-specific meaning. Per guidelines, baseline for 0 parameters is 4. The description's mention of environment variables is helpful context but not part of the parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Establish connection to the Universe/UniData server,' specifying the verb (establish connection) and resource (UniVerse/UniData server). It also details configuration via environment variables, distinguishing it from sibling tools like disconnect or list_connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., environment variables must be set) nor when not to use it (e.g., if already connected). No explicit context for selecting this tool among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_knowledgeA
Delete a saved knowledge topic.
Removes a topic from the knowledge base. Requires confirmation.
Args: topic: The topic name to delete. confirm: Must be True to execute the deletion.
Returns: Status of the delete operation.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the confirmation requirement and mentions the return status. However, it does not specify irreversibility, side effects, permission needs, or error conditions, leaving gaps in behavioral understanding.
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 structured with a title, paragraph, and Args/Returns sections. It is concise but has slight redundancy (first two sentences restate the same action). Overall efficient and clearly formatted.
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 simple operation (delete) with two parameters and an output schema, the description covers essential aspects: action, parameter roles, confirmation, and return status. Minor omission: irreversibility or permanence could be mentioned.
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?
Despite 0% schema coverage, the description adds significant meaning: 'topic' is the topic name to delete, and 'confirm' must be True. This goes beyond the schema's title-only definitions, making parameter usage 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 uses the specific verb 'delete' and resource 'knowledge topic', clearly stating it removes a topic from the knowledge base. It distinguishes itself from sibling tools like save, list, get, and search, which are the only operations available for knowledge topics.
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 that confirmation is required ('Must be True to execute the deletion'), providing clear usage guidance. However, it does not mention when to use this tool versus alternatives, though as the only delete tool, this is less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recordA
Delete a record from a Universe file.
Args: file_name: Target file name record_id: Record ID to delete confirm: Must be True to execute the delete. This is a safety measure.
Returns: Status of the delete operation. Requires confirm=True to execute. Disabled in read-only mode.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| file_name | Yes | ||
| record_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the safety confirm requirement and read-only restriction, but does not explain permanence, side effects, or detailed return status beyond 'Status of the delete operation.' Has output schema present, which may compensate.
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 highly concise: a single sentence purpose followed by a structured Args/Returns list. Every sentence contributes meaningful information with no 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 three parameters, the description covers the core action, safety mechanism, and read-only constraint. It lacks detail on return value semantics or error conditions, but is adequate for a delete operation.
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 is the sole source. For confirm, it adds 'Must be True to execute. This is a safety measure.' For file_name and record_id, only minimal repetition of schema titles. The added value is moderate.
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 'Delete a record from a Universe file,' specifying the verb (delete) and resource (record in a Universe file). It distinguishes this from sibling tools like write_record or read_record by the destructive action.
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 usage guidance by noting the confirm parameter as a safety measure and stating the tool is disabled in read-only mode. However, it does not explicitly contrast with alternative tools or specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_fileA
Get a comprehensive description of a Universe file.
Combines file statistics with dictionary information to provide full context about the file structure. Useful for understanding data structure before querying.
Args: file_name: Name of the Universe file
Returns: Dictionary containing file stats, field definitions, and counts.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly explains that the tool combines file statistics with dictionary information and returns a dictionary with field definitions and counts. This adds meaningful context about the composite nature of the output, though it does not mention potential latency or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: four sentences with clear front-loading of purpose. The structured 'Args' and 'Returns' sections are efficiently integrated. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only one simple parameter, the description fully covers what the tool does and what it returns. The output schema exists to detail the return format, so the description's high-level summary of 'file stats, field definitions, and counts' is sufficient context for an agent to decide when to use 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?
The input schema has 0% description coverage, so the description must compensate. It includes an 'Args' section describing 'file_name' as 'Name of the Universe file', which adds context beyond the schema's title. However, the description is minimal and does not provide additional syntax or format details.
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 ('Get a comprehensive description') and a specific resource ('Universe file'), and distinguishes from siblings like 'list_files' (just listing) and 'get_file_info' (less comprehensive) by emphasizing combined file statistics and dictionary information.
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 implied usage guidance ('useful for understanding data structure before querying') but does not explicitly state when not to use this tool or compare it to relevant siblings like 'analyze_file_structure', 'list_dictionary', or 'get_field_definition'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnectA
Close all connections to the Universe/UniData server.
Returns: Disconnection status and count of closed connections.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the action (closing connections) and return value (status and count), but does not mention potential side effects, destructiveness, or authentication requirements, which would be helpful for a mutating 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?
The description is extremely concise with two sentences. The first sentence delivers the core action, and the second efficiently describes the return value. No unnecessary words.
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 no parameters and an output schema exists, the description adequately covers the tool's purpose and return value. It could be slightly more explicit about the scope of 'all connections', but is otherwise 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?
There are no parameters, so the schema coverage is trivially 100%. The description adds no parameter info, but none is needed. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Close all connections' and specifies the resource 'Universe/UniData server'. This distinguishes it from sibling tools like 'connect' and 'list_connections'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or suggest any sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_queryA
Execute a RetrieVe/UniQuery statement and return results.
Supports read-only query commands: LIST, SELECT, SORT, COUNT, SUM, SSELECT. Results are limited by max_rows parameter or the U2_MAX_RECORDS configuration.
Args: query: RetrieVe/UniQuery statement Examples: - 'LIST CUSTOMERS WITH STATE = "CA"' - 'SELECT ORDERS WITH ORDER.DATE >= "01/01/2024" BY ORDER.DATE' - 'COUNT INVOICES WITH STATUS = "OPEN"' max_rows: Maximum rows to return (optional, defaults to U2_MAX_RECORDS)
Returns: Dictionary containing query, output, status, and row limit applied.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_rows | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description explicitly states it supports read-only commands (non-destructive), results are limited by max_rows or configuration, and returns a dictionary with status. No annotations provided, so description carries full burden; it covers key behavioral aspects well.
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?
Description is well-structured with a brief intro, supported commands list, and parameter details. Could be slightly more concise, but no extraneous 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?
While parameter semantics are good, the description does not explain error handling, the structure of the output dictionary beyond keys, or edge cases (e.g., what happens if max_rows is not set). Output schema is present but not detailed; description could be more 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 description coverage, the description fully compensates by providing examples for query and explaining the default behavior and purpose of max_rows. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool executes a RetrieVe/UniQuery statement and returns results, listing supported read-only commands. This is specific and distinguishes it from siblings like validate_query or execute_tcl.
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 explicit guidance on when to use this tool versus alternatives. The description implies read-only use (supported commands) but does not mention when to prefer execute_query over validate_query or other query-like tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_tclA
Execute a TCL/ECL command and return the output.
TCL (Terminal Control Language) commands provide system-level operations. Dangerous commands are blocked by the safety validator. Some commands are disabled in read-only mode.
Args: command: TCL/ECL command to execute Examples: - 'WHO' - Show current user info - 'DATE' - Show current date - 'LISTFILES' - List available files - 'FILE.STAT CUSTOMERS' - Show file statistics
Returns: Dictionary containing command, output, and status. Returns error if command is blocked.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: dangerous commands are blocked, some disabled in read-only mode, and errors are returned. It also describes the output format (dictionary with command, output, status). Could mention potential side effects or timeouts but 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 front-loaded with the core action, followed by brief context, parameter examples, and return info. Every sentence adds value 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 a single parameter and an output schema, the description covers command blocking, read-only mode limitations, and error responses. It could mention execution time or concurrency but is largely 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 sole parameter 'command' has a 0% schema description coverage, but the description provides concrete examples (WHO, DATE, LISTFILES, FILE.STAT CUSTOMERS), adding significant meaning beyond the type 'string'.
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 'Execute a TCL/ECL command and return the output,' with specific verb and resource. It explains that TCL commands are system-level, distinguishing it from query or subroutine tools among siblings.
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 explicit when-to-use or when-not-to-use guidance is given. While examples are provided, there is no comparison to sibling tools like 'execute_query' or 'call_subroutine' to help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_to_csvA
Export records from a Universe file to CSV format.
Reads the specified records and returns them as a CSV string. Useful for spreadsheet import and data analysis.
Args: file_name: Name of the Universe file record_ids: List of record IDs to export expand_mv: If True, expand multivalues into separate rows. If False (default), join multivalues with delimiter. mv_delimiter: Delimiter for multivalues when expand_mv=False. Default is "|".
Returns: Dictionary containing: - status: success or error - format: "csv" - record_count: Number of records exported - row_count: Number of rows in CSV (may differ if expand_mv=True) - data: CSV string of the exported records
| Name | Required | Description | Default |
|---|---|---|---|
| expand_mv | No | ||
| file_name | Yes | ||
| record_ids | Yes | ||
| mv_delimiter | No | | |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It explains the tool reads records and returns CSV, details multivalue expansion behavior, and implies it is read-only. No destructive actions mentioned, which is appropriate for an export.
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 well-structured with a concise purpose statement, usage hint, then formatted Args and Returns sections. Every sentence adds value and 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?
Given the tool's complexity (4 parameters, output schema exists), the description fully covers the behavior, including multivalue handling and return format. It explains output fields despite having an output schema.
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%, but the description includes an explicit Args section that thoroughly explains each of the four parameters: file_name, record_ids, expand_mv, and mv_delimiter, including defaults and behavior.
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 exports records from a Universe file to CSV format, specifying the verb 'Export', the resource 'records from a Universe file', and the output format CSV. It distinguishes from sibling tools like export_to_json.
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?
Provides a usage hint: 'Useful for spreadsheet import and data analysis.' This gives context but does not explicitly state when not to use or compare with alternatives like export_to_json.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_to_jsonA
Export records from a Universe file to JSON format.
Reads the specified records and returns them as a JSON string. Useful for data analysis and integration with other tools.
Args: file_name: Name of the Universe file record_ids: List of record IDs to export expand_mv: If True, expand multivalues into separate objects. If False (default), preserve multivalue arrays.
Returns: Dictionary containing: - status: success or error - format: "json" - record_count: Number of records exported - data: JSON string of the exported records
| Name | Required | Description | Default |
|---|---|---|---|
| expand_mv | No | ||
| file_name | Yes | ||
| record_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it 'reads' records and returns JSON, implying a read-only operation. With no annotations provided, the description does not explicitly disclose whether this is a safe, non-destructive operation or any authorization requirements.
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 well-structured with a short paragraph followed by Args and Returns sections. It is concise but could be slightly tighter; the Returns section is detailed but adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters and an existing output schema, the description covers parameters, return values, and use case. It lacks mention of prerequisites like a connection, but overall it is fairly 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?
Despite 0% schema description coverage, the description includes an Args section that explains each parameter: file_name, record_ids, and expand_mv (with behavior for True/False). This adds meaningful information beyond the schema titles.
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 exports records from a Universe file to JSON format. The verb 'export' and resource 'records to JSON' are specific, and it distinguishes from sibling tools like export_to_csv and read_record.
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 mentions the tool is useful for data analysis and integration, providing some context. However, it does not explicitly state when to use this tool over alternatives (e.g., export_to_csv, read_record) nor when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoA
Get information about the current Universe account.
Returns account-level metadata including available files, VOC entries, and system information.
Returns: Dictionary containing account information, file list, and system details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only describes return content but does not mention that the tool is read-only, has no side effects, or any authentication/rate-limit considerations. For a read operation, this is a minor 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 concise with three short sentences. The first sentence is front-loaded with the primary purpose. The Returns section is slightly redundant given the output schema, but it does not hurt. Overall, it is efficiently written.
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 no parameters, rich schema coverage, and an output schema, the description covers the essential purpose and return types. It does not explain domain-specific terms like 'VOC entries', but that is acceptable for a specialized tool. Complete for its complexity level.
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, and the schema coverage is 100% trivially. According to guidelines, 0 parameters give a baseline of 4. The description adds no parameter info (none needed) and adequately describes the purpose without redundancy.
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 'Get information about the current Universe account' with a specific verb and resource. It lists the types of information returned (files, VOC entries, system info), distinguishing it from sibling tools like get_file_info or describe_file which target different resources.
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 retrieving account-level metadata, but it does not provide explicit guidance on when to use it versus alternatives like get_file_info or list_files. There are no usage restrictions or context cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_knowledgeA
Get ALL saved knowledge about this Universe database.
IMPORTANT: Call this tool at the start of conversations to retrieve previously learned information about the database. This includes:
File descriptions and purposes
Field definitions and meanings
Working query patterns
Relationships between files
Data format notes and conventions
This knowledge was saved from previous conversations to help you work more efficiently with this specific database.
Returns: All saved knowledge as markdown text.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It clearly states the tool is read-only (returns knowledge) and describes the return format as markdown text. It does not mention potential performance impact or caching, but for a retrieval tool this 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 well-structured with bullet points and a clear return statement, but it is slightly verbose (e.g., repeating 'IMPORTANT' and using full sentences for lists). Could be trimmed, but still effective and easy to parse.
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 fully covers purpose, usage, and output format. It mentions the tool returns all saved knowledge as markdown text, and there are no parameters or complex outputs. Given the context (zero parameters, output schema exists), it is 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?
There are no parameters, so the description doesn't need to add parameter semantics. The schema coverage is 100% (0 parameters). Baseline score of 4 is appropriate given no compensation needed.
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 'Get ALL saved knowledge about this Universe database' and lists specific types of knowledge (file descriptions, field definitions, etc.). It distinguishes from siblings like search_knowledge and list_knowledge by emphasizing 'ALL' and the context of use.
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?
Explicitly instructs to 'Call this tool at the start of conversations' and explains why—to retrieve previously learned information. It also implicitly differentiates from search_knowledge (which filters) and save_knowledge (which saves).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_field_definitionA
Get detailed definition for a specific dictionary field.
Returns the complete field definition including type, field number, conversion code, format, heading, and other attributes.
Args: file_name: Name of the Universe file field_name: Dictionary field/item name
Returns: Detailed field definition or error if not found.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | ||
| field_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions returns or error but does not disclose behavioral traits like permissions, rate limits, or side effects. Adequate for a read operation but minimal.
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?
Concise, front-loaded with main purpose, structured with Args and Returns sections. No extra fluff, though the Args section repeats parameter names already in 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?
Output schema exists but not shown;description lists return attributes adequately. However, lacks context on how this tool relates to siblings like 'list_dictionary' or 'describe_file'. Adequate for its narrow scope.
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% with no parameter descriptions. Description adds 'Args' section with meaningful text: 'Name of the Universe file' and 'Dictionary field/item name', compensating well for missing schema details.
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?
Description clearly states the verb 'get' and resource 'dictionary field', specifying it returns detailed definition. Distinguishes from sibling 'list_dictionary' which lists fields.
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?
Description implies use for a single field's detailed definition but does not explicitly contrast with siblings like list_dictionary or when not to use. Lacks explicit when-to-use or when-to-avoid guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_infoC
Get information about a Universe file.
Returns file statistics including type, modulo, separation, and record count.
Args: file_name: Name of the Universe file
Returns: Dictionary containing file statistics and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It notes that the tool returns statistics, but fails to mention whether it is read-only, what happens if the file does not exist, or any side effects. This lack of detail could lead to unexpected outcomes.
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 front-loaded with the purpose. It uses a structured format with Args and Returns sections. However, the Args section is redundant with the parameter name and could be integrated more fluidly. Overall, it is efficient but not maximally polished.
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 simplicity (one parameter, output schema exists), the description provides basic completeness: it states the purpose and expected return fields. However, it lacks context on error handling, prerequisites (e.g., connection status), and usage scenarios. For a minimal tool, it is adequate but has clear 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?
The single parameter 'file_name' has no schema description (0% coverage). The description adds a placeholder line 'Name of the Universe file' which trivially rephrases the parameter name without adding format, constraints, or examples. The description should provide more context for the parameter to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get information about a Universe file' and lists specific return fields (type, modulo, separation, record count). It distinguishes the verb and resource, but does not differentiate from sibling tools like describe_file or analyze_file_structure, which may have overlapping purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool over siblings (e.g., describe_file, analyze_file_structure) or any prerequisites/context like requiring an active connection. Without this, an agent may misuse the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledge_topicA
Get saved knowledge for a specific topic.
Retrieves the full content of a previously saved knowledge topic.
Args: topic: The topic name to retrieve.
Returns: The topic content or error if not found.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states it retrieves content and returns an error if not found, but does not mention read-only behavior, authentication needs, or other side effects. It is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus Args/Returns. It is front-loaded with the key action, and every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and an output schema, the description covers the essential information: what it does, what parameter it takes, and what it returns. No gaps given the tool's simplicity.
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 'topic name' to clarify the parameter, but does not provide format, constraints, or examples. This is insufficient compensation for a single required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get/retrieve) and the resource (saved knowledge for a specific topic). It is distinct from siblings like list_knowledge (which lists topics) and search_knowledge (which searches), so the agent can understand exactly what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like list_knowledge or get_all_knowledge. There is no mention of use cases, prerequisites, or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_select_listA
Execute a SELECT statement and return the list of record IDs.
This is useful for getting a list of matching records for further processing, without retrieving the full record data.
Args: query: SELECT or SSELECT statement Example: 'SELECT CUSTOMERS WITH STATE = "CA"' max_ids: Maximum IDs to return (optional, defaults to U2_MAX_RECORDS)
Returns: Dictionary containing query, list of record IDs, count, and whether results were truncated.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses the return structure (dictionary with query, IDs, count, truncation flag) and implies a read-only operation (SELECT), but does not explicitly confirm safety or mention edge cases like large result handling.
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 and structured into two paragraphs. It is concise but could integrate the Args section more elegantly into the main text to reduce 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 output schema exists (confirmed in context signals), the description adequately explains the return dictionary. With only two parameters and clear documentation, it is mostly complete, though it lacks explicit differentiation from siblings like 'execute_query' or 'read_records'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by specifying that 'query' expects a SELECT/SSELECT statement with an example and that 'max_ids' is optional with a default of U2_MAX_RECORDS. This adds meaningful context beyond the schema types.
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 it executes a SELECT statement and returns record IDs, distinguishing it from tools that return full record data. However, it does not explicitly name sibling alternatives, making it slightly less than excellent.
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 usage for further processing ('useful for getting a list of matching records for further processing'), but lacks explicit guidance on when to use versus alternatives or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transaction_statusA
Get the current transaction status.
Returns information about whether a transaction is active and when it was started.
Returns: Dictionary containing: - in_transaction: True if transaction is active - started_at: Timestamp when transaction started (if active) - read_only_mode: Whether server is in read-only mode
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the return structure (in_transaction, started_at, read_only_mode) and implies a read-only, non-destructive operation. It does not explicitly state behavior on errors or prerequisites, but the information provided is sufficient for a simple status check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a bulleted list of return fields. It is front-loaded with the purpose and every sentence adds value. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no input schema, the description covers the essential return structure. It is complete for a simple status query, though it omits potential error conditions or prerequisites. The context signals indicate no nested objects, and the description substitutes for the missing output schema.
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?
There are no parameters (schema has no properties). Schema description coverage is 100%, so baseline 3 applies. The description adds no parameter information because none is needed.
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 'Get the current transaction status' with a specific verb and resource. It is distinct from sibling transaction tools (begin, commit, rollback) which perform actions rather than queries.
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 usage is implied: it checks transaction status. However, there is no explicit guidance on when to use this tool versus alternatives or any prerequisites. The description does not say when-not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_catalogA
List available cataloged programs in the account.
Searches the system catalog for programs matching the pattern. This includes BASIC subroutines that can be called with call_subroutine.
Args: pattern: Program name pattern (supports * wildcard). Default "*" lists all cataloged programs.
Returns: Dictionary containing list of program names and count.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | No | * |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully handles behavioral disclosure. It explains wildcard support, default pattern behavior, and the return format (dictionary with names and count).
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 well-structured with Args and Returns sections, but has slight redundancy between the first two sentences. Still, overall efficient.
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 one optional parameter and an output schema, the description adequately covers purpose, parameter, and return value.
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 0% description coverage, so the description adds significant value by explaining the pattern parameter supports '*' wildcards and that '*' lists all programs.
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 'List available cataloged programs' with specific verb and resource. It further distinguishes from siblings by clarifying it includes BASIC subroutines callable via call_subroutine, setting it apart from list_files and call_subroutine.
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 usage for finding programs to call via call_subroutine, providing context. However, it does not explicitly state when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connectionsA
List all active database connections.
Returns: List of active connections with their details (name, host, account, service, connection time, and active status).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states that it lists active connections and returns details, but does not disclose any behavioral traits like whether it has side effects, performance considerations, or authorization requirements.
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 very concise, with two short sentences that clearly state the purpose and return information. No words are wasted, though it could be slightly more 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?
For a simple list tool with no parameters and an existing output schema, the description is largely complete. It lists key return fields and differentiates from sibling tools by focusing on active connections.
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?
There are no parameters, so the description does not need to add semantics beyond the schema. The description adds context by listing the return fields, which is beneficial.
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 verb 'List' and the resource 'active database connections', with specific return fields. It is distinct from siblings like 'connect' or 'disconnect' which are actions, not listing.
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 does not provide any guidance on when to use this tool versus alternatives (e.g., 'list_catalog'), nor does it mention prerequisites or situations where it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dictionaryB
List all dictionary items for a Universe file.
Returns D-type (data), I-type (calculated), and other field definitions from the file's dictionary.
Args: file_name: Name of the Universe file include_system: If True, include system dictionary items (@ prefixed)
Returns: Dictionary containing file name, list of dictionary items with their types, and total count.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | ||
| include_system | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden for behavioral disclosure. It does not explicitly state that this is a read-only operation or mention any side effects, permissions, or limitations beyond listing items.
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 well-structured with a brief intro, field type note, Args section, and Returns. It is concise but includes necessary details, earning its sentences with relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's straightforward purpose and the presence of an output schema (though not shown), the description adequately covers the return structure (file name, items with types, count). It provides sufficient context for using 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?
The description compensates for the 0% schema coverage by explaining both parameters: file_name as 'Name of the Universe file' and include_system with its meaning ('@ prefixed system items'). This adds valuable context beyond the bare schema titles.
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 lists all dictionary items for a Universe file, including D-type and I-type definitions. It is specific about the resource but does not explicitly differentiate from siblings like get_field_definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., get_field_definition, describe_file). It lacks context about prerequisites or situations where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesA
List available files in the current Universe account.
Args: pattern: File name pattern to match (supports * wildcard). Default "*" lists all files.
Returns: Dictionary containing list of matching file names and count.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | No | * |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the return format (dictionary with file names and count) but does not disclose whether the operation is read-only, any required permissions, or potential side effects. Since it's a list operation, read-only behavior is implied but not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a one-sentence summary followed by a clear docstring for the parameter and return value. Every sentence adds value 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 the tool's simplicity (1 parameter, no required fields, output schema exists), the description covers the core functionality and return format. It does not elaborate on error handling or edge cases, but these are less critical for a list 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?
The input schema has 0% description coverage, so the description compensates well by explaining the 'pattern' parameter supports '*' wildcard and has a default of '*', which is meaningful beyond the schema's type definition.
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 verb 'list', the resource 'files', and the context 'in the current Universe account'. It effectively distinguishes the tool from siblings like 'describe_file' and 'analyze_file_structure' which focus on individual file details.
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 includes details on the pattern parameter and its default, implying usage for listing files with optional filtering. However, it does not explicitly state when to use this tool versus alternatives (e.g., when not to use, or complementary tools like 'describe_file' for details).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_knowledgeA
List all saved knowledge topics.
Returns a list of topics that have been saved about this database. Use get_knowledge_topic to retrieve the full content of a specific topic, or get_all_knowledge to retrieve everything at once.
Returns: Dictionary containing list of topics with summaries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description clearly indicates the tool is a read-only list operation. It specifies the return type is a dictionary containing a list of topics with summaries, and notes the relationship to other tools. However, it does not mention performance or authorization requirements.
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 concise sentences. It front-loads the primary purpose, then explains the return value, and ends with usage guidance for alternatives. Every sentence is useful with no 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 no parameters, an output schema (presumably detailed), and a set of sibling tools, the description is complete. It states the tool's behavior, output format, and points to relevant alternatives. There are no significant 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?
The tool has zero parameters, so the baseline is 4. The description adds no parameter-specific information, which is acceptable. It does describe the return format, adding value beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all saved knowledge topics. It explicitly differentiates from siblings by recommending get_knowledge_topic for full content and get_all_knowledge for retrieving everything at once.
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 explicit guidance on when to use this tool versus alternatives: use get_knowledge_topic for a specific topic's full content, or get_all_knowledge to retrieve everything at once.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_recordA
Read a single record from a Universe file.
The record is returned with fields parsed into structured JSON, preserving multivalue and subvalue structure.
Args: file_name: Name of the Universe file record_id: Record ID (key) to read
Returns: Dictionary containing record id, fields (by number), and optionally the raw record data. Returns error if record not found.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | ||
| record_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return format (parsed JSON, multivalue preservation), error behavior, and optional raw data. No annotations, so description carries full burden.
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?
Efficient: summary, Args, Returns sections. No wasted words, front-loaded purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a single-record read tool: explains input, output structure, error state. Output schema exists, so return details are 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?
Adds meaning beyond schema: provides descriptions for file_name and record_id in Args section. Schema coverage 0%, so description compensates fully.
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?
Clearly states verb 'Read' and resource 'record from Universe file'. Distinguishes from sibling tools like read_records (plural) and write_record/delete_record.
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?
Implies single-record usage, but does not explicitly differentiate from read_records or provide when-not-to-use guidance. Lacks explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_recordsA
Read multiple records from a Universe file efficiently.
Args: file_name: Name of the Universe file record_ids: List of record IDs to read
Returns: Dictionary containing file name, list of records, count, and any errors. Each record includes id and fields. Records not found are listed in errors.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | ||
| record_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the return structure (dictionary with file name, records, count, errors) and behavior for missing records. It could mention limits or performance, but overall 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?
Description is structured as a docstring with Args/Returns sections, concise without unnecessary words. Could be slightly shorter but effectively organized.
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 there is an output schema, the description adequately explains return values. It covers key behavioral aspects for a read tool, though could mention error handling for non-existent files. Mostly 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 coverage is 0%, so description compensates well. It explains both parameters: 'file_name' as the Universe file name and 'record_ids' as a list of IDs. Adds meaning beyond schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read multiple records') and the resource ('from a Universe file efficiently'). It distinguishes from the sibling 'read_record' tool by specifying 'multiple' records.
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 efficient batch reading but does not provide explicit guidance on when to use it versus alternatives like 'read_record' or when not to use it. No exclusions or comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_transactionA
Rollback the current transaction.
Discards all changes made since begin_transaction was called. The transaction is closed after rollback.
Returns: Dictionary containing: - status: success or error - in_transaction: False after successful rollback - message: Confirmation message
Note: If no transaction is active, returns an error.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits: discards all changes, transaction closed, error if no active transaction, and describes return dictionary. No annotations provided.
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?
Well-structured with sections, but slightly redundant (e.g., discarding changes mentioned twice). Good front-loading.
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 sibling tools for transactions and complexity, description covers behavior, return values, and error case. Output schema exists but already described.
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?
No parameters; schema coverage is 100% (empty). Description adds no parameter info, but baseline is 4 for zero parameters with complete schema coverage.
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?
Clearly states it rolls back the current transaction, discarding changes, but doesn't explicitly distinguish from commit_transaction or begin_transaction among siblings.
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?
Describes when to use (to discard changes since begin_transaction) and error condition (no active transaction), but no explicit when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_knowledgeA
Save learned information about the Universe database.
Use this to persist useful discoveries about the database schema, file structures, query patterns, and data meanings. This information will be available in future conversations.
Good things to save:
File purposes (e.g., "AR-CUST contains customer master records")
Field meanings (e.g., "In CUSTOMERS, field 1 is name, field 5 is phone")
Working query patterns that produced good results
Relationships between files
Data format notes (date formats, codes, etc.)
Args: topic: A short descriptive name for this knowledge (e.g., "CUSTOMERS file", "Invoice queries", "Date formats") content: The knowledge to save. Use markdown formatting. append: If True, add to existing topic. If False, replace it.
Returns: Status of the save operation.
Examples: save_knowledge("AR-CUST file", "Customer master file. Key is customer number.") save_knowledge("Date formats", "Dates stored as internal format. Use D2/ conversion.")
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| append | No | ||
| content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that information will be available in future conversations, explains append behavior (add vs. replace), and mentions return status. Missing details on persistence guarantees or error handling, but generally transparent.
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?
Well-structured with clear sections (purpose, usage, args, returns, examples). Slightly verbose due to bullet list and examples, but each sentence adds value. Front-loaded with purpose and usage.
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 3 parameters, no annotations, and an output schema (implied), the description covers all needed aspects: purpose, usage context, parameter semantics, examples. No gaps identified.
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 no parameter descriptions (0% coverage), so description adds significant meaning: explains topic as short descriptive name, content as knowledge with markdown, append as additive or replacement. Includes examples, greatly aiding correct parameter usage.
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 it saves learned information about the Universe database, using specific verb and resource. It distinguishes from sibling tools like list_knowledge, search_knowledge, and delete_knowledge by focusing on persistence.
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 explicit guidance on when to use (persist discoveries about schema, file structures, etc.) and what to save (good things to save list). However, it does not explicitly mention when not to use or differentiate from alternatives like update operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_knowledgeA
Search saved knowledge for specific information.
Searches all saved knowledge for mentions of the query string. Useful for finding previously learned information about specific files, fields, or concepts.
Args: query: Text to search for (case-insensitive).
Returns: List of matching topics and relevant lines.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It discloses case-insensitive search, searches all saved knowledge, and mentions return type. However, it omits potential performance or scoping details.
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?
Description is concise with clear sections (Args, Returns). No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 1 parameter and an output schema, description adequately explains input and output. However, could provide more context on scope (e.g., user-specific vs global knowledge) to fully align with 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%, but description compensates by explaining the 'query' parameter as text to search for (case-insensitive). This adds significant meaning beyond the schema's bare title.
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?
Description clearly states the verb 'search' and the resource 'saved knowledge', distinguishing it from sibling tools like list_knowledge and get_knowledge_topic. It is not a tautology and provides specific 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?
Description indicates usefulness for finding previously learned information, but does not explicitly state when not to use it or differentiate from other knowledge tools. Usage context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_queryA
Validate a RetrieVe/UniQuery statement before execution.
Checks query syntax and safety without executing it. Useful for validating AI-generated queries before running them.
Args: query: Query statement to validate
Returns: Dictionary containing validation results: - valid: Boolean indicating if query is valid - command: The query command detected (LIST, SELECT, etc.) - warnings: List of potential issues - suggestions: Helpful hints for common patterns
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It states the tool does not execute the query (non-destructive) and describes return fields. It adequately discloses main behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (description, Args, Returns) and is concise without fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects, output schema exists), the description covers essential information. It explains the return format and usage, which is 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%, but the description adds an 'Args' section explaining the query parameter meaning. This adds value beyond the schema's minimal title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Validate a RetrieVe/UniQuery statement before execution. Checks query syntax and safety without executing it.' This distinguishes it from siblings like execute_query.
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 'Useful for validating AI-generated queries before running them', providing clear context. While it doesn't explicitly say when not to use, the sibling tool set implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watchdog_statusA
Get the connection watchdog status and statistics.
The watchdog monitors connection health and automatically recovers from hung database connections.
Returns: Watchdog configuration and statistics including check counts, failure counts, and forced reconnects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses that the watchdog auto-recovers from hung connections and returns configuration and statistics. It doesn't mention any prerequisites or side effects, but the read-only nature is evident.
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?
Description is concise, front-loaded with the core purpose, and each sentence adds value. 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?
For a simple read-only tool with no parameters and an output schema, the description fully covers purpose, behavior, and return content. Complete and 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?
No parameters exist; schema coverage is 100%. Description adds meaning by detailing return fields (check counts, failure counts, forced reconnects) beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets watchdog status and statistics, explains what the watchdog does (monitors connection health, auto-recovers), and distinguishes from connection management siblings like connect, disconnect, list_connections.
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 explicit when-to-use or when-not-to-use is provided. Usage is implied as a simple status check, but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_recordA
Write or update a record in a Universe file.
Args: file_name: Target file name record_id: Record ID to create or update fields: Field values as JSON object. Keys are field numbers as strings, values can be strings (single value), lists (multivalues), or nested lists (subvalues). confirm: Must be True to execute the write. This is a safety measure.
Returns: Status of the write operation. Requires confirm=True to execute. Disabled in read-only mode.
Example fields: {"1": "John Doe", "2": ["555-1234", "555-5678"], "3": "CA"}
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| confirm | No | ||
| file_name | Yes | ||
| record_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the upsert behavior ('create or update'), the safety requirement ('confirm: Must be True to execute'), and the read-only mode disabling. However, it does not detail potential side effects (e.g., field overwrite behavior) or error handling, which would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose and structured as a docstring with Args and Returns. While not overly verbose, it includes an example and parameter details. It could be slightly more concise by removing the example if schema already covers structure, but overall it's well-organized.
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 (though not shown), the description only needs to summarize return values ('Status of the write operation'). It covers key aspects: purpose, parameters, safety confirm, and read-only mode. Missing details like error conditions or default field handling do not significantly detract from completeness.
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 0% description coverage, so the description must add full meaning. The Args section explains each parameter: file_name, record_id, fields (with structure details: single values, lists, nested lists), and confirm (with safety condition). An example is provided, significantly aiding understanding.
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 'Write or update a record in a Universe file,' specifying the verb (write/update) and resource (record in a Universe file). This differentiates it from sibling tools like read_record, delete_record, or execute_query.
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 does not explicitly state when to use this tool versus alternatives. It implies usage for create/update operations but lacks guidance on when not to use it (e.g., for reading or deleting records). The mention of 'Disabled in read-only mode' provides a constraint but no comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose within its group (connection, schema, CRUD, export, knowledge, query, TCL, subroutines, transactions). Any slight overlaps (e.g., describe_file vs analyze_file_structure) are complementary rather than ambiguous.
All tools follow a consistent verb_noun pattern in snake_case (e.g., list_files, write_record, begin_transaction). No mixing of conventions or vague verbs.
33 tools is somewhat high, but each set (connection, schema, CRUD, export, knowledge, query, TCL, subroutines, transactions) earns its place. The knowledge management group (6 tools) is slightly bloated but supports a unique feature.
The tool surface covers the full lifecycle for a Universe database: connection, schema exploration, record CRUD with safety confirmations, query execution, TCL commands, subroutine calls, transactions, data export, and persistent knowledge. No obvious gaps for its purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceBridges legacy MultiValue databases to modern AI assistants like Claude Desktop, allowing natural language queries and data manipulation through a secure, OAuth-authenticated connection.
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query and explore Vertica databases through natural language with readonly protection by default. Supports SQL execution, schema discovery, large dataset streaming, and Vertica-specific optimizations like projection awareness.388MIT
- AlicenseCqualityDmaintenanceEnables AI assistants to interact with Vertica Analytics Databases for querying, schema exploration, and performance optimization through natural language. It provides enterprise-grade features like fine-grained permissions, query streaming, and secure SSL/TLS connections.123MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query and analyze databases using natural language through MCP and HTTP API, supporting 17+ databases and integration with 50+ platforms.115MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bpamiri/u2-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server