PeopleSoft MCP Server
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., "@PeopleSoft MCP ServerGet employee details for EMPLID 12345"
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.
PeopleSoft MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to query and understand PeopleSoft HCM databases. This server provides semantic tools for HR, Payroll, Benefits, Performance, and PeopleTools metadata - allowing natural language questions to be answered with accurate SQL queries.
Features
41 semantic tools covering all major PeopleSoft HCM modules
4 documentation resources for PeopleSoft concepts and query patterns
Direct database access via Oracle thin client (no JDBC required)
PeopleTools introspection for understanding system architecture
Effective dating support built into all queries
Related MCP server: DB MCP (HR CSV to SQLite)
Quick Start
Prerequisites
Python 3.11+
Oracle Database connectivity to a PeopleSoft HCM 9.2 instance
uv package manager (recommended)
Installation
# Clone the repository
git clone <repo-url>
cd peoplesoft-mcp
# Install dependencies
uv syncConfiguration
Copy the example environment file and add your credentials:
cp .env.example .envEdit
.envwith your database credentials:
ORACLE_DSN=hostname:port/service_name
ORACLE_USER=your_username
ORACLE_PASSWORD=your_passwordEdit
.cursor/mcp.jsonand update the path to your installation.
Running the Server
uv run peoplesoft_server.pyCursor IDE Integration
The MCP config (.cursor/mcp.json) should look like:
{
"mcpServers": {
"peoplesoft": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp_ps/",
"run",
"peoplesoft_server.py"
]
}
}
}Credentials are loaded from .env automatically - no need to include them in the MCP config.
Available Tools
Schema Introspection (5 tools)
Tool | Description |
| Get table structure, fields, and indexes |
| Search for tables by name pattern |
| Decode field codes (XLAT values) |
| View index definitions for performance |
| Find foreign key relationships |
HR Module (5 tools)
Tool | Description |
| Get employee details by EMPLID |
| Search employees by name, department, etc. |
| View job history for an employee |
| Get organizational hierarchy |
| Get department details and headcount |
Payroll Module (5 tools)
Tool | Description |
| View payroll calculation results |
| Check payroll processing status |
| Get YTD/MTD balances |
| Get payment details |
| List payroll calendar runs |
Benefits Module (4 tools)
Tool | Description |
| View benefit plan elections |
| Get dependent information |
| Get beneficiary designations |
| Calculate benefit costs |
Performance Module (3 tools)
Tool | Description |
| List performance documents |
| Get detailed review information |
| Search reviews by criteria |
PeopleTools Module (18 tools)
Tool | Description |
| Full record structure with fields and keys |
| Find records by name or description |
| Component pages and navigation |
| Fields on a page with record bindings |
| Find PeopleCode on records/fields |
| Security access for permission lists |
| Roles containing a permission list |
| Process Scheduler job definitions |
| AE program structure |
| IB service operations |
| IB message structure |
| PS Query records and fields |
| Get SQL text by SQLID (views, App Engine, PeopleCode) |
| Search SQL objects by text |
| Search text within PeopleCode |
| Impact analysis - where a field is used |
| All XLAT values for a field |
| Explains effective dating, SetID, etc. |
Direct Query (1 tool)
Tool | Description |
| Execute custom SQL queries |
Available Resources
Resource URI | Description |
| Major tables by module |
| Effective dating, EMPLID, SetID, XLAT |
| SQL query patterns |
| PeopleTools architecture guide |
Project Structure
peoplesoft-mcp/
├── peoplesoft_server.py # Main MCP server entry point
├── db.py # Database connection management
├── tools/ # Semantic tool modules
│ ├── introspection.py # Schema discovery tools
│ ├── hr.py # HR module tools
│ ├── payroll.py # Payroll module tools
│ ├── benefits.py # Benefits module tools
│ ├── performance.py # ePerformance tools
│ └── peopletools.py # PeopleTools metadata tools
├── tests/ # Test suites
│ ├── test_business_questions.py # HR business scenarios
│ └── test_peopletools_questions.py # Technical consultant scenarios
├── docs/ # Documentation resources
│ ├── peoplesoft_concepts.md
│ ├── peoplesoft_schema_guide.md
│ ├── peopletools_guide.md
│ ├── sql_query_examples.md
│ ├── peopletools-tables-by-tool.md # Tables required per tool
│ └── migration-analysis.md # Migration planning notes
└── pyproject.toml # Project configurationRunning Tests
# Set environment variables
export ORACLE_DSN="hostname:port/service_name"
export ORACLE_USER="username"
export ORACLE_PASSWORD="password"
# Run all tests
uv run pytest tests/ -v -s
# Run specific test suite
uv run pytest tests/test_business_questions.py -v -s
uv run pytest tests/test_peopletools_questions.py -v -sExample Queries
The MCP enables natural language questions like:
Business Questions:
"How many active employees are in each company?"
"What is the average salary by department?"
"Who reports to manager X?"
"Show me employees without a supervisor assigned"
Technical Questions:
"What fields does PS_JOB have?"
"Where is the DEPTID field used?"
"What PeopleCode runs on the JOB record?"
"What SQL does HR_ABSV_JOB_EFFDT use?"
"Search for SQL objects referencing PS_ABSV_REQUEST"
"Explain effective dating in PeopleSoft"
Development
Adding New Tools
Create a new module in
tools/or add to existing moduleDefine async functions that use
db.execute_query()Add a
register_tools(mcp)functionImport and register in
peoplesoft_server.py
Key Concepts
Effective Dating: Most PeopleSoft tables use EFFDT/EFFSEQ for history
SetID: Controls data sharing across business units
Translate Values: Short codes decoded via PSXLATITEM
EMPLID/EMPL_RCD: Employee ID + employment record number
License
MIT
Changelog
v0.2.1 (2026-03-02)
Added
get_sql_definition- fetch SQL text by SQLID from PSSQLTEXTDEFNAdded
search_sql_definitions- search SQL objects by textPeopleTools compatibility: adjusted PSPNLGROUP, PSPNLFIELD, PSAEAPPLDEFN, PSAESTEPDEFN queries for varying column names across PeopleTools versions
Added
docs/peopletools-tables-by-tool.md- tables required per tool
v0.2.0 (2026-02-28)
Added modular tool architecture with 39 semantic tools
Added PeopleTools introspection module (16 tools)
Added comprehensive test suites (42 tests)
Replaced connection pooling with direct connections for reliability
Added 4 documentation resources
Improved effective dating patterns in all queries
Available Tools
43 toolsdescribe_tableA
Get the structure of a PeopleSoft table/record including all fields,
their types, lengths, and descriptions.
Use this tool FIRST when you need to understand what fields are available
in a table before writing queries.
:param table_name: The PeopleSoft record name (e.g., 'PERSONAL_DATA', 'JOB', 'DEPT_TBL').
Can include or exclude the 'PS_' prefix.
:return: List of fields with their properties
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It describes a read operation returning field properties, but does not disclose any potential side effects, auth needs, or performance implications. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and front-loaded with the purpose. Every sentence adds value: purpose, usage guidance, and parameter details with an example. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter and no output schema, the description adequately explains what the tool returns (list of fields with properties) and how to use it. It could optionally mention error handling or limitations, but the information provided is sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides no description for the table_name parameter (0% coverage). The description adds meaningful context: it explains the parameter represents a PeopleSoft record name, provides examples, and notes that the 'PS_' prefix is optional. This compensates well for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets the structure of a PeopleSoft table/record including fields, types, lengths, and descriptions. While there is a sibling get_record_definition that might overlap, the description is specific enough to distinguish its scope.
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 advises using this tool FIRST to understand fields before writing queries, providing clear context. It does not mention when not to use it or alternatives, but the guidance is actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_peoplesoft_conceptB
Provide explanation of PeopleSoft/PeopleTools concepts based on actual
system metadata and configuration.
Args:
concept: The concept to explain (e.g., 'effective_dating', 'component',
'record_types', 'security', 'integration_broker')
Returns:
Relevant system metadata that illustrates the concept
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the tool returns metadata illustrations. It does not disclose behavioral traits such as side effects, authentication requirements, or limitations. For a read-like tool, basic transparency is lacking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and structured with 'Args' and 'Returns' sections. It is front-loaded with the main purpose and uses minimal, necessary words. No irrelevant details are present.
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 interface (one parameter, no output schema), the description is reasonably complete. It explains what the tool does and what it returns. However, it could add context about when to use it (e.g., for learning PeopleSoft concepts) or mention that it queries live metadata.
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 'concept' is defined only by title in the schema (0% coverage). The description adds examples (e.g., 'effective_dating', 'component'), which helps, but does not enumerate all possible values or specify input format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it explains PeopleSoft/PeopleTools concepts using system metadata. This distinguishes it from sibling tools that retrieve specific objects (e.g., describe_table, get_field_usage), as it provides conceptual understanding rather than raw data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for understanding concepts but does not explicitly guide when to use this tool versus alternatives. It provides examples of concepts but no when-not or direct comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accumulator_balancesA
Get accumulator balances (YTD, MTD, etc.) for an employee.
Accumulators track cumulative values like:
- Year-to-date earnings
- Year-to-date taxes
- Lifetime pension contributions
- Month-to-date hours worked
:param employee_id: The employee ID (EMPLID)
:param accum_type: Optional filter by accumulator type (e.g., 'YTD', 'MTD', 'QTD')
:param calendar_run: Optional calendar run ID. If not provided, returns latest.
:return: Accumulator balances
| Name | Required | Description | Default |
|---|---|---|---|
| accum_type | No | ||
| employee_id | Yes | ||
| calendar_run | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It mentions returning 'accumulator balances' and that omitting calendar_run returns the latest, but lacks disclosure of authentication needs, read-only nature, error handling, or rate limits.
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 relatively concise with a clear structure: purpose, examples, parameter explanations, and return note. The example list adds value without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no output schema, the description covers parameters well but provides minimal detail on the return format ('Accumulator balances' is vague). It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema: it explains employee_id, accum_type as an optional filter with examples (YTD, MTD, QTD), and calendar_run as optional with default behavior. This compensates for the 0% schema description 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?
The description clearly states 'Get accumulator balances (YTD, MTD, etc.) for an employee.' and provides concrete examples of accumulators, making the purpose specific and distinct from sibling tools that retrieve other data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the tool retrieves cumulative values and mentions optional filters, but it does not explicitly guide when to use this tool over siblings or state when not to use it. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_application_engine_stepsA
Get the steps and sections of an Application Engine program.
Args:
ae_program: The AE program name
Returns:
Program structure with sections, steps, and actions
| Name | Required | Description | Default |
|---|---|---|---|
| ae_program | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Returns: Program structure with sections, steps, and actions.' It does not disclose any behavioral traits such as side effects, permissions required, or whether the tool is read-only. The description lacks transparency beyond what is obvious from the function name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences for the purpose and minimal lines for args and returns. Every piece of information earns its place, and there is no redundancy. The structure is front-loaded with the core functionality.
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 simplicity of the tool (one required parameter, no nested objects, no output schema), the description is fairly complete. It specifies the input and output nature. However, it lacks context such as typical usage scenarios or differences from similar get_* tools, which a more comprehensive description might include.
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 description coverage, but the description's Args section explains 'ae_program: The AE program name.' This adds meaning beyond the schema's title 'Ae Program' by clarifying that the parameter expects a program name. However, the explanation is brief and could include format or examples.
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 steps and sections of an Application Engine program.' This is a specific verb and resource, and it distinguishes this tool from siblings like get_record_definition or get_component_structure, which retrieve different types of definitions.
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?
There is no guidance on when to use this tool versus alternatives. The description does not mention any context, exclusions, or prerequisites. It simply states what the tool does without indicating appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_beneficiariesA
Get beneficiary designations for an employee's benefit plans.
:param employee_id: The employee ID (EMPLID)
:param plan_type: Optional filter by plan type (e.g., '2A' for life insurance)
:return: Beneficiary designations by plan
| Name | Required | Description | Default |
|---|---|---|---|
| plan_type | No | ||
| employee_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It implies a read-only operation ('Get') but does not explicitly state that it does not modify data, has no side effects, or what permissions are needed. The return type is vaguely described as 'beneficiary designations by plan' but lacks detail on structure, pagination, or error cases.
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: one sentence plus parameter docstrings. Front-loaded with the main purpose. No redundant or filler text. Every part 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?
For a simple read tool with 2 params and no output schema, the description covers the inputs adequately. However, it lacks information about output structure (e.g., list vs. single object, fields included), pagination, or any constraints. With no output schema, the description should at least hint at the format of 'beneficiary designations by plan'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage, so description must compensate. It explains employee_id as 'The employee ID (EMPLID)' and plan_type as 'Optional filter by plan type (e.g., '2A' for life insurance)'. This adds meaningful context beyond the schema's field names and types, though could be more precise (e.g., valid plan 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 the tool's action ('Get beneficiary designations') and resource ('benefit plans for an employee'). It distinguishes from siblings like 'get_benefit_costs' and 'get_benefit_elections' by specifying 'designations'. The verb 'Get' is specific and the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives like 'get_benefit_elections' or 'get_dependents'. The description does not mention prerequisites, contexts, or exclusions. It only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_benefit_costsB
Get benefit cost information including employee and employer contributions.
:param employee_id: The employee ID (EMPLID)
:param as_of_date: Optional date (YYYY-MM-DD format). Defaults to current date.
:return: Benefit costs by plan
| Name | Required | Description | Default |
|---|---|---|---|
| as_of_date | No | ||
| employee_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions returning 'benefit costs by plan' but does not explicitly state it is read-only or disclose any side effects, permissions, or other 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 concise with a clear structure: a one-line summary followed by parameter and return value documentation. 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 no output schema, the description explains return as 'Benefit costs by plan', which is somewhat vague. For a simple two-parameter tool, this is minimally adequate, but details on error handling or empty results are missing.
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 beyond the schema: it clarifies employee_id as 'The employee ID (EMPLID)' and as_of_date as 'Optional date (YYYY-MM-DD format). Defaults to current date.' Since schema description coverage is 0%, this is valuable.
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 retrieves benefit cost information including employee and employer contributions. However, it does not differentiate from sibling tools like get_benefit_elections or get_beneficiaries, which is a missed opportunity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_benefit_elections for elections). No exclusion criteria or prerequisites provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_benefit_electionsC
Get current benefit plan elections for an employee.
Shows active benefit enrollments including:
- Health plans
- Life insurance
- Retirement plans
- Other voluntary benefits
:param employee_id: The employee ID (EMPLID)
:return: List of benefit elections with plan details
| Name | Required | Description | Default |
|---|---|---|---|
| employee_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It implies read-only by saying 'Shows active benefit enrollments,' but does not explicitly state mutability, required permissions, rate limits, or side effects. The lack of behavioral context is a gap for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses a docstring format with a bulleted list of benefit types, which is somewhat verbose. Core purpose is front-loaded, but the bullet list could be condensed. It is adequately sized but not maximally concise.
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?
No output schema exists, so the description should explain return values. It says 'List of benefit elections with plan details,' which is vague and lacks structure or key fields. For a simple tool with one parameter, this is acceptable but could be improved with more specific details about the response.
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?
Only one parameter, employee_id. The description adds meaning beyond the schema by stating 'The employee ID (EMPLID),' which provides domain-specific context. However, no further details about format or validation are given. Given 0% schema coverage, the description partially compensates but could be more informative.
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 the action 'Get current benefit plan elections for an employee' and lists specific benefit types (health, life, retirement, voluntary). The verb and resource are specific, though it does not explicitly differentiate from sibling tools like get_benefit_costs or get_beneficiaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites, limitations, or exclusions. The description simply states what it does without context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_component_pagesA
Get lightweight component-to-pages mapping. Uses only PSPNLGRPDEFN and
PSPNLGROUP with version-safe columns.
Args:
component_name: The component name (e.g., 'JOB_DATA', 'ABSV_PLAN_TABLE')
Returns:
Component name, search record, and list of pages with item number and label
| Name | Required | Description | Default |
|---|---|---|---|
| component_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds value by noting it is lightweight and uses version-safe columns, implying safe, read-only behavior. It also describes the return structure, but doesn't detail error handling 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 with no wasted words, and uses a clear structure (Args/Returns). Every sentence provides important 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 simplicity of the tool (one parameter, no output schema), the description is complete. It explains input, output, and behavioral constraints, making it fully usable.
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 the description adds an example and explains the meaning of the component_name parameter, effectively compensating 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 the verb 'get' and resource 'lightweight component-to-pages mapping', and specifies the underlying tables used. It distinguishes from siblings like get_component_structure by focusing on the mapping aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete example for the component_name argument, implying usage context. However, it does not explicitly state when to use this tool versus alternatives or mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_component_structureA
Get the structure of a PeopleSoft component including its pages,
records, and navigation path.
Args:
component_name: The component name (e.g., 'JOB_DATA', 'PERSONAL_DATA')
Returns:
Component definition with pages, records, and menu navigation
| Name | Required | Description | Default |
|---|---|---|---|
| component_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description adds some context (returns pages, records, navigation) but does not disclose authentication, performance, or other behavioral traits. Adequate for a simple get operation.
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?
Extremely concise with a clear purpose statement, separated Args and Returns sections. No wasted text.
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 one-parameter tool without output schema, the description adequately covers what the tool returns and the parameter. Could mention ordering or more detail on navigation path, but completes the needed context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description provides examples and clarifies the parameter is a component name. This adds significant meaning beyond the schema, though constraints like case sensitivity 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 clearly states the tool retrieves the structure of a PeopleSoft component including pages, records, and navigation path. This distinguishes it from siblings like get_component_pages and describe_table.
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. The description implies this tool is for full component structure, while siblings like get_component_pages exist for pages only, but no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_department_infoB
Get detailed information about a department including its current employees.
:param department_id: The department ID (DEPTID)
:return: Department details and employee list
| Name | Required | Description | Default |
|---|---|---|---|
| department_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavior traits like read-only, side effects, or authorization needs. It is implicitly a read operation but not explicit.
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?
Short and to the point, with no unnecessary information. Could be slightly more structured but 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?
The description lacks details on what exactly 'department details' and 'employee list' contain. No output schema exists to compensate, leaving the agent with incomplete information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the only parameter by stating it is the department ID (DEPTID), going beyond the schema which only defines type. Schema coverage is 0%, so this is valuable.
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 it gets department details and employees, which is clear. However, it does not differentiate from sibling tools like get_employee or get_org_chart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dependentsB
Get dependents and beneficiaries for an employee.
Returns:
- Dependent personal information
- Relationship to employee
- Benefits coverage status
- National ID (if available)
:param employee_id: The employee ID (EMPLID)
:return: List of dependents with their details
| Name | Required | Description | Default |
|---|---|---|---|
| employee_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses the return format (list of dependents with fields) but lacks details on side effects, error handling, or data sensitivity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, with an introductory sentence and a bulleted list of return fields. It is efficient but could be slightly more compact.
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 no output schema, the description covers the return structure but omits pagination, empty results, and permissions context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds basic meaning for the 'employee_id' parameter (noting it is EMPLID). However, it does not provide format or constraints 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?
The description clearly states the tool retrieves dependents and beneficiaries for an employee, specifying the action and resource. It distinguishes from sibling 'get_beneficiaries' by including dependents, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_beneficiaries' or 'get_employee'. Context or exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_employeeA
Get comprehensive employee profile including personal data, current job,
department, and employment status.
This is the primary tool for getting employee information. It returns:
- Personal details (name, birthdate, address, etc.)
- Current job information (department, position, manager, etc.)
- Employment status and dates
:param employee_id: The employee ID (EMPLID)
:return: Complete employee profile
| Name | Required | Description | Default |
|---|---|---|---|
| employee_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the return content but does not disclose any behavioral traits (e.g., read-only, auth requirements, error handling). For a simple get operation, this is adequate but not exceptional.
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: a high-level summary, then bullet points of returned data, then explicit parameter and return documentation. No wasted 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 low complexity (1 parameter, no output schema), the description is complete. It covers the tool's purpose, inputs, and outputs sufficiently.
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 employee_id is described as 'The employee ID (EMPLID)', which adds meaningful context beyond the schema's title and type. Schema coverage is 0% but the description compensates well.
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 comprehensive employee profile' and enumerates the specific categories (personal data, current job, department, employment status). It distinguishes itself as the primary tool for employee 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 notes it is the primary tool for employee info and lists returned data, but does not explicitly state when to use alternatives (e.g., get_job_history for historical data). However, the scope is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_field_usageA
Find all records that use a specific field - useful for impact analysis.
Args:
field_name: The field name to search for
Returns:
List of records containing this field and key information
| Name | Required | Description | Default |
|---|---|---|---|
| field_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral aspects such as read-only nature, required permissions, or whether it returns all records or paginated results. The return value is vaguely described as 'key information'.
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 succinct, using one-line purpose and structured Args/Returns. No redundant information, and the core function is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with one parameter, the description covers the basic function. However, lack of output schema and absence of details on error handling or data completeness leaves 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 schema has 0% description coverage, but the description's Args section adds meaning: 'field_name: The field name to search for'. This clarifies the parameter beyond its title, though it remains minimal.
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 'Find all records that use a specific field' and indicates it's for impact analysis. This distinguishes it from siblings like 'get_record_definition' which returns a single record's 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 implies usage for impact analysis but does not explicitly specify when to use versus alternatives or when not to use it. No exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integration_broker_servicesC
Get Integration Broker service operations and their configuration.
Args:
service_name: Optional service name filter
Returns:
Service definitions with their operations
| Name | Required | Description | Default |
|---|---|---|---|
| service_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits such as side effects, authentication requirements, or rate limits. Since no annotations are provided, the description bears full responsibility, and it fails to offer meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise in a docstring format with minimal verbosity, which is appropriate for a simple tool. It could be improved by front-loading the core purpose but is efficient overall.
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 lack of output schema and annotations, and the presence of many similar sibling tools, the description is insufficient. It does not explain what Integration Broker is, the nature of operations, or how to interpret the returned service definitions, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds the phrase 'Optional service name filter' which clarifies the parameter's role beyond the schema's title alone, providing useful semantics for filtering.
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 'Get Integration Broker service operations and their configuration' which is a clear verb-resource pair. However, it lacks differentiation from many sibling tools that also 'get' various PeopleSoft entities, making it less helpful for an agent to choose correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any when-not conditions. The description simply states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_historyA
Get the complete job history for an employee showing all effective-dated changes.
This shows every job change including:
- Position changes
- Department transfers
- Promotions/demotions
- Salary changes
- Status changes (leave, return to work, termination, etc.)
:param employee_id: The employee ID (EMPLID)
:param limit: Maximum number of history records (default 50)
:return: Chronological list of job changes
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| employee_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavior. It states that results are 'all effective-dated changes' and 'chronological list of job changes', but does not disclose response format, pagination, or rate limits.
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, uses bullet points for clarity, and includes a docstring-style parameter list. 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?
For a 2-parameter tool with no output schema, the description sufficiently explains the purpose and parameter roles, including return format as 'chronological list'. Minor gap: missing mention of effective date ordering.
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 adds meaning by explaining employee_id as 'The employee ID (EMPLID)' and limit with a default value of 50, going beyond the schema's type and 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 uses a specific verb ('Get') and resource ('complete job history'), and explicitly lists the types of changes (position, department, promotions, etc.), making it distinct from siblings like get_employee or get_performance_reviews.
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 retrieving job history but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_message_definitionA
Get the structure of an Integration Broker message.
Args:
message_name: The message name
Returns:
Message definition with parts and records
| Name | Required | Description | Default |
|---|---|---|---|
| message_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden. It discloses the return type ('Message definition with parts and records') but lacks details on side effects, permissions, or rate limits. For a read operation, this is minimally 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 extremely concise: three sentences front-loading the purpose, parameter explanation, and return value. Every sentence serves a clear purpose with no extraneous 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's simplicity (1 required parameter, no output schema), the description covers the essential aspects: purpose, input, and output. It could elaborate on what 'parts and records' means, but overall it's sufficiently complete for a straightforward retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description adds a basic explanation ('message_name: The message name'), but this largely mirrors the schema title 'Message Name'. It provides no additional constraints, format, or examples, so it only marginally adds value.
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 the structure') and the resource ('an Integration Broker message'). It distinguishes from siblings like get_integration_broker_services and get_record_definition by specifying 'message' and 'structure', making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives such as get_integration_broker_services or get_record_definition. The description simply states what it does without any contextual advice on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_org_chartA
Get organizational hierarchy showing reporting relationships.
You can start from:
- A specific department (all employees in that dept with their managers)
- A specific manager (all direct and indirect reports)
- A company (top-level org structure)
:param department_id: Starting department ID
:param manager_id: Starting manager's employee ID
:param company: Company code to filter by
:param max_depth: Maximum depth of hierarchy to retrieve (default 3)
:return: Hierarchical organization structure
| Name | Required | Description | Default |
|---|---|---|---|
| company | No | ||
| max_depth | No | ||
| manager_id | No | ||
| department_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It describes the hierarchical nature and the default max_depth, but omits details like authentication requirements, result format, or behavior when multiple parameters are provided simultaneously.
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 mostly concise with a clear structure: function summary, bulleted starting points, and parameter documentation. It could be slightly tighter by removing the redundant param list already present in the schema, but it remains 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?
Given the four parameters, no output schema, and no annotations, the description adequately explains entry points and parameters. However, it lacks details on output format, pagination, and any constraints (e.g., parameter exclusivity), leaving some gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage, but the description provides meaning for all four parameters: department_id, manager_id, company, and max_depth (with its default). This adds significant value beyond the schema definitions, especially explaining their roles in the hierarchy.
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 retrieves organizational hierarchy showing reporting relationships. It identifies three distinct starting points (department, manager, company), which differentiates it from sibling tools that retrieve individual records or other structures.
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 lists three scenarios for use (from department, manager, or company) and explains what each returns. It does not directly mention when not to use the tool or compare it to alternatives, but the context is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_field_bindingsA
Get simplified page field bindings: RECNAME, FIELDNAME, FIELDNUM, OCCURSLEVEL only.
Lightweight alternative when full page field properties are not needed.
Args:
page_name: The page name (e.g., 'JOB_DATA1', 'ABSV_PLAN_TABLE')
Returns:
Page name and list of record/field bindings
| Name | Required | Description | Default |
|---|---|---|---|
| page_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the full burden. It describes the return content but does not mention side effects, permissions, or rate limits. Adequate for a simple read operation, but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short, focused description with an Args/Returns structure. Every 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?
Given zero output schema and one parameter, the description provides sufficient context: what fields are returned and an example parameter value. Could specify the return structure more precisely, but adequate for 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?
The only parameter (page_name) is described with examples in the Args section, adding value over the schema's bare title. Schema coverage is 0%, so the description compensates well with clear formatting and examples.
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 the tool gets simplified page field bindings (RECNAME, FIELDNAME, FIELDNUM, OCCURSLEVEL) and positions itself as a lightweight alternative to full page field properties. This differentiates it from sibling tools like get_page_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?
Explicitly advises use when full page field properties are not needed, implying when not to use (i.e., when full properties are required). Naming a specific alternative (get_page_fields) would improve clarity, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_fieldsB
Get all fields defined on a PeopleSoft page with their properties.
Args:
page_name: The page name (e.g., 'JOB_DATA1', 'PERSONAL_DATA_1')
Returns:
Page definition with all field controls and their record/field bindings
| Name | Required | Description | Default |
|---|---|---|---|
| page_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It states returns page definition with field controls and bindings, but does not disclose read-only nature, permissions, or side effects. Minimal behavioral information.
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 sentences: main purpose, Args, Returns. No fluff, front-loaded with key action. Efficient for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 1 param, no output schema, no annotations. Description covers input and output adequately. Lacks error handling or edge cases but adequate for a straightforward retrieval 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?
Single parameter page_name with examples like 'JOB_DATA1', 'PERSONAL_DATA_1' adds meaning beyond schema's bare 'string' type and 'Page Name' title. Schema coverage 0% makes description valuable. Could mention case sensitivity or format but sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets all fields on a PeopleSoft page with properties. Verb 'get' and resource 'fields on a PeopleSoft page' are specific. Distinguishes from siblings like get_page_field_bindings by focusing on all fields rather than bindings, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like get_field_usage or get_page_field_bindings. Does not mention prerequisites or context. Simply states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_infoA
Get payment preparation and payment details for an employee.
:param employee_id: The employee ID (EMPLID)
:param calendar_run: Optional calendar run ID. If not provided, returns latest.
:return: Payment details including net pay and payment method
| Name | Required | Description | Default |
|---|---|---|---|
| employee_id | Yes | ||
| calendar_run | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states that it gets payment details, without revealing whether it is read-only, any side effects, error conditions, or response structure. The return value is only vaguely described as 'including net pay and payment method'.
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, consisting of a single sentence plus parameter documentation. It includes the return value hint, achieving maximum information density with minimal words. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 2 parameters and no output schema. The description provides essential information but lacks details on error handling, data volume, or potential constraints. It is minimally adequate for a straightforward retrieval 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 significant meaning beyond the input schema. It explains the employee_id as 'EMPLID' and the optional calendar_run with behavior ('If not provided, returns latest'). Given 0% schema description coverage, the description fully compensates by clarifying each parameter's purpose and default 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 gets payment preparation and payment details for an employee. The verb 'get' and resource 'payment details' are specific. Among siblings like get_payroll_results and get_payroll_status, this tool is distinctly focused on payment preparation and details including net pay and method.
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 like get_payroll_results or get_payroll_status. There is no mention of prerequisites, scenarios, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payroll_resultsB
Get earnings and deductions results for an employee's payroll run.
:param employee_id: The employee ID (EMPLID)
:param calendar_run: Optional calendar run ID. If not provided, returns latest run.
:param element_type: Optional filter: 'earnings', 'deductions', or 'all' (default)
:return: Payroll results with earnings and deductions
| Name | Required | Description | Default |
|---|---|---|---|
| employee_id | Yes | ||
| calendar_run | No | ||
| element_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states the tool retrieves data, but omits details like authentication needs, rate limits, pagination, or whether results are real-time or cached. The read-only intent is implied but not explicit.
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 as a docstring with parameter explanations, placing the core purpose first. It is relatively concise (about 4 lines of actual content), though the colon and indentation add minor verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema or annotations, the description does not specify the return structure beyond 'earnings and deductions', nor does it mention error handling, permissions, or data scoping. This is insufficient for a payroll results 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 crucial meaning beyond the schema's basic type/title. It explains employee_id as EMPLID, clarifies that calendar_run defaults to the latest run, and documents element_type values ('earnings', 'deductions', 'all'). This fully compensates for the schema's 0% 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?
The description uses a specific verb-resource combination ('Get earnings and deductions results for an employee's payroll run'), clearly distinguishing the tool from siblings like get_payroll_status or get_payment_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives (e.g., get_payroll_status, list_calendar_runs). There is no mention of prerequisites, exclusions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payroll_statusA
Get the processing status for all employees in a payroll calendar run.
Status codes:
- 'I': Identified
- 'C': Calculated
- 'F': Finalized
- 'P': Paid
:param calendar_run: The calendar run ID (CAL_RUN_ID)
:return: Summary of payroll processing status
| Name | Required | Description | Default |
|---|---|---|---|
| calendar_run | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses the input parameter and return summary but lacks details on side effects, permissions, or data scope. 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 concise: it states the purpose, lists status codes, and documents the parameter without any fluff. Every sentence serves a 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?
For a simple tool with one parameter and no output schema, the description covers the purpose, status codes, and parameter adequately. A brief note on the return format would enhance completeness, but it is not missing critical info.
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 meaning by specifying the parameter is 'The calendar run ID (CAL_RUN_ID)', which is not present in the schema. This compensates well.
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 gets processing status for all employees in a payroll calendar run, with specific verb and resource. It provides status codes and distinguishes from siblings like get_payroll_results.
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 by explaining the parameter and status codes, but does not explicitly state when to use this tool versus alternatives or when not to use it. No comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_peoplecodeA
Get PeopleCode programs attached to a record/field, including the actual source code.
Reads from PSPCMTXT which stores the PeopleCode source as CLOB. Use this to
understand component logic, trace field behavior, or analyze customizations.
Args:
record_name: The record name (e.g., 'JOB', 'ABSV_REQUEST')
field_name: Optional field name to filter (e.g., 'EMPLID', 'EFFDT')
event: Optional event type filter. Common events:
- RowInit: Fires when row is loaded
- FieldChange: Fires when field value changes
- FieldEdit: Validates field before accepting
- SaveEdit: Validates before save
- SavePreChange: Runs before database update
- SavePostChange: Runs after database update
- RowDelete: Fires when row is deleted
- RowInsert: Fires when new row inserted
- SearchInit: Fires on search page load
- SearchSave: Fires when search is executed
include_code: If True (default), returns actual PeopleCode source.
Set to False for just metadata/listing.
max_code_length: Maximum characters of code to return per program (default 32000).
Use for large programs that may exceed response limits.
Returns:
List of PeopleCode programs with their events and source code.
Programs are ordered by field name and event for logical reading.
Example:
# Get all PeopleCode for ABSV_REQUEST record
get_peoplecode("ABSV_REQUEST")
# Get just FieldChange events for BEGIN_DT field
get_peoplecode("ABSV_REQUEST", "BEGIN_DT", "FieldChange")
# List all events without code (for discovery)
get_peoplecode("JOB", include_code=False)
| Name | Required | Description | Default |
|---|---|---|---|
| event | No | ||
| field_name | No | ||
| record_name | Yes | ||
| include_code | No | ||
| max_code_length | No |
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 reads from PSPCMTXT, describes each parameter's effect, and explains the return format and ordering. It implies read-only behavior. No contradictions. Minor omission of potential errors or prerequisites.
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 (Args, Returns, Example). The first sentence states the purpose. The Args section is somewhat verbose but informative. A slightly more concise presentation would improve efficiency.
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 5 parameters and no output schema, the description covers the return format (list of programs with events and source), provides examples for common scenarios, and explains event types. It lacks details on error handling or prerequisites but is adequate for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. The Args section provides detailed explanations for all 5 parameters, including the meaning of common event types and examples. This adds substantial meaning beyond the schema's bare 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 gets PeopleCode programs attached to a record/field, including source code. The verb 'Get' and resource are specific. While it distinguishes from sibling 'search_peoplecode' by implication (get vs search), it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use cases: 'understand component logic, trace field behavior, or analyze customizations.' Examples demonstrate typical usage. However, it does not explicitly state when not to use this tool or mention alternatives like 'search_peoplecode'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_performance_reviewsA
Get performance appraisals for an employee.
Status codes:
- 'INP': In Progress
- 'COMP': Completed
- 'CANC': Cancelled
- 'PEND': Pending
:param employee_id: The employee ID (EMPLID)
:param year: Optional filter by review year
:param status: Optional filter by status code
:return: List of performance reviews
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| status | No | ||
| employee_id | Yes |
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 disclosing behavioral traits. It describes input and return but does not state whether the operation is read-only, has side effects, requires authentication, or has rate limits. The status code mapping is helpful but does not cover broader behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the first sentence clearly stating the purpose. The status code list and parameter documentation are structured and easy to parse. However, the docstring style ('param', 'return') adds slight redundancy with the schema. No wasted words, but could be slightly tighter.
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 output schema, the description minimally mentions return value as 'List of performance reviews'. This is adequate for a simple retrieval tool, but lacks details on the structure or fields of each review, pagination, or error handling. With moderate tool complexity, it is marginally 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 input schema has 0% description coverage, so the description must compensate. It does so effectively: employee_id is explained as 'The employee ID (EMPLID)', year as 'Optional filter by review year', and status as 'Optional filter by status code' with a list of valid codes and their meanings. This adds substantial 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 gets 'performance appraisals for an employee', which aligns with the tool name. It specifies the resource (employee performance reviews) and the action (get). Among siblings, it is distinct as it targets a single employee by ID, not broader search or detailed review retrieval.
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 'search_reviews' or 'get_review_details'. It does not mention prerequisites, limitations, or context such as only for a specific employee. The agent must infer usage from the parameter list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_permission_list_detailsC
Get details of a permission list including pages, components, and query access.
Args:
permission_list: The permission list name
Returns:
Permission list definition with component and page access
| Name | Required | Description | Default |
|---|---|---|---|
| permission_list | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states that the tool 'gets' details, implying a read operation. It does not disclose any behavioral traits such as side effects, authentication needs, or response characteristics.
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 lines plus formatted Args/Returns sections. It is well-structured and front-loaded, though the Returns description is somewhat vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple retrieval tool, the description lacks detail on the return structure. No output schema exists, and the Returns line ('Permission list definition with component and page access') is too vague to fully understand the data shape.
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 is described only as 'The permission list name', which merely restates the schema property name. With 0% schema description coverage, the description adds minimal semantic value beyond the parameter name itself.
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 retrieves details of a permission list, including specific subcomponents (pages, components, query access). This distinguishes it from siblings like get_component_pages or get_roles_for_permission_list which focus on single aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The sibling list includes several similar 'get' tools, but the description offers no selection criteria or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_process_definitionB
Get process scheduler definitions.
Args:
process_name: Optional specific process name
process_type: Optional filter by type (e.g., 'SQR Report', 'Application Engine')
Returns:
Process definitions with their configuration
| Name | Required | Description | Default |
|---|---|---|---|
| process_name | No | ||
| process_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only implies a read operation via 'Get' but does not disclose behavioral traits like idempotency, side effects, authentication needs, or rate limits. The lack of details on return behavior (e.g., pagination, ordering) is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences for purpose and parameters, plus Returns line. Front-loaded with purpose, every sentence earns its place without 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 output schema, the description only vaguely states 'returns process definitions with their configuration.' For a simple tool with two optional params, this is adequate but lacks specifics on the structure of the response. It could mention whether results are a list or single object.
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% (no description in schema), so the description adds value by explaining process_name as 'optional specific process name' and process_type as 'optional filter by type' with an example. This clarifies parameter semantics beyond the schema's 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 it retrieves 'process scheduler definitions' and specifies optional filters (process_name, process_type). The verb 'get' and resource are clear, and the tool distinguishes itself from siblings that target different entities (e.g., steps, results), though no explicit differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives. The description only lists parameters without context about prerequisites, common use cases, or when not to use it. Sibling tools like get_application_engine_steps are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_query_definitionB
Get a PS Query definition including its records, fields, and criteria.
Args:
query_name: The query name
Returns:
Query definition with records, fields, and criteria
| Name | Required | Description | Default |
|---|---|---|---|
| query_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds minimal behavioral context; it mentions the return structure (records, fields, criteria) but omits details on side effects, permissions, error conditions, or idempotency.
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, uses a structured docstring format (Args/Returns), and places the primary purpose first, though it could be slightly more 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?
Given the simplicity (1 param, no output schema, no annotations), the description provides the essential information but lacks usage context and behavioral details, making it just adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds only a brief clarification ('The query name') for the single parameter, which is slightly more informative than the schema title but incomplete.
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 explicitly states the action ('Get'), the resource ('PS Query definition'), and the components it includes ('records, fields, and criteria'), distinguishing it from sibling tools like 'get_sql_definition' or 'get_record_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, no exclusions, and no context for the appropriate scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_record_definitionA
Get complete definition of a PeopleSoft record including all fields,
keys, and properties. Essential for understanding data structures.
Args:
record_name: The record name (e.g., 'JOB', 'PERSONAL_DATA')
Will automatically add PS_ prefix if not present
Returns:
Record metadata including type, fields, keys, and parent record
| Name | Required | Description | Default |
|---|---|---|---|
| record_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes automatic PS_ prefix addition and return content (type, fields, keys, parent record). No annotations, so description carries full burden. Adequate for a read-only 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?
Succinct yet comprehensive: summary, Args, Returns sections. No wasted 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?
Covers parameter behavior and return summary. Lacks error handling or edge cases, but for a simple one-param tool with no output schema, it is reasonably 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?
Adds significant meaning beyond the schema: explains record name expects standard names, auto-adds PS_ prefix. 0% schema coverage means description must compensate, and it does well.
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 gets the complete definition of a PeopleSoft record including fields, keys, and properties. Distinct from siblings like describe_table and search_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?
Implicitly suggests use for understanding data structures, but no explicit when-to-use or when-not-to-use guidance. Mentions the PS_ prefix behavior but lacks comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_review_detailsB
Get detailed ratings, goals, and comments for a specific performance review.
:param appraisal_id: The appraisal ID (EP_APPR_ID)
:return: Complete review details including sections, items, and ratings
| Name | Required | Description | Default |
|---|---|---|---|
| appraisal_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It correctly implies a read operation ('Get') but does not disclose any behavioral traits such as authorization requirements, performance implications, or side effects. The return specification ('sections, items, and ratings') adds some clarity but is 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 lines plus a docstring-style param/return note. It front-loads the key purpose in the first sentence. Every part is essential, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is fairly complete. It specifies input format and output nature (details including sections, items, ratings). However, it omits details on output structure or potential edge cases, which an agent might need for complex downstream processing.
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 for the parameter 'appraisal_id'. The description compensates by explaining it is 'The appraisal ID (EP_APPR_ID)', adding format and context that the schema lacks. This significantly aids correct 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 the tool retrieves detailed ratings, goals, and comments for a specific performance review. It distinguishes from sibling tools like get_performance_reviews (likely listing) and search_reviews (searching) by focusing on one review's details. However, it does not explicitly differentiate from these 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?
The description provides no guidance on when to use this tool versus alternatives like get_performance_reviews or search_reviews. It does not mention prerequisites, context, or exclusion criteria, 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_roles_for_permission_listB
Find all roles that include a specific permission list.
Args:
permission_list: The permission list name
Returns:
List of roles containing this permission list
| Name | Required | Description | Default |
|---|---|---|---|
| permission_list | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like non-destructiveness, authentication needs, or side effects. The verb 'find' only weakly implies a read operation.
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: one line of purpose followed by clearly structured Args and Returns sections. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers purpose, input, and return type minimally. It lacks behavioral details and return structure, but is adequate for the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning beyond the schema, stating 'The permission list name' for the parameter, which nearly repeats the schema title. With 0% schema coverage, the description should provide more detail.
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 'Find all roles that include a specific permission list,' using a specific verb and resource, distinguishing it from sibling tools like get_permission_list_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 implies usage for finding roles by permission list but does not explicitly state when to use or provide alternatives, relying on the clear purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sql_definitionA
Get the SQL text for a PeopleSoft SQL object by SQLID.
PSSQLTEXTDEFN stores SQL used by views, App Engine programs, and PeopleCode
(SQL.SQLID). Long SQL is split across multiple rows by SEQNUM.
Args:
sql_id: The SQL object ID (e.g. 'HR_ABSV_JOB_EFFDT', 'GP_PIN_SELECT')
max_length: Maximum total characters to return (default 64000).
Use to avoid huge responses for very long SQL.
Returns:
SQL definition with sql_text (concatenated from all SEQNUM rows),
sql_type, market, and row_count.
Example:
get_sql_definition("HR_ABSV_JOB_EFFDT")
| Name | Required | Description | Default |
|---|---|---|---|
| sql_id | Yes | ||
| max_length | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Descriptions disclose that long SQL is concatenated from multiple rows and that max_length can limit response size. Return fields are listed. No annotations provided, so description carries full burden. Lacks error behavior or performance details but covers key 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?
Description is well-structured with a clear summary, context, args, returns, and example. Each sentence adds information without redundancy. Efficiently conveys necessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive given the tool's simplicity: 2 parameters, no output schema, no annotations. Covers what the tool does, parameters, return fields, and example. Missing error handling (e.g., if SQLID not found) but adequate for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description adds all meaning. The sql_id parameter is given an example and context (SQL object ID). The max_length parameter explains its purpose and default, providing value beyond the schema's type and default.
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 the tool gets the SQL text for a PeopleSoft SQL object by SQLID. The verb 'get' and resource 'SQL text' are specific, and it distinguishes from sibling tools like 'search_sql_definitions' which is for searching.
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 usage when you have a SQLID, but no explicit when-to-use or when-not-to-use. Does not mention alternatives like 'search_sql_definitions' for finding SQLIDs. Provides context about the data source but no guidance on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_indexesA
Get the index keys for a PeopleSoft table to help write efficient queries.
Understanding indexes helps you:
- Write WHERE clauses that use indexed fields for better performance
- Understand the logical key structure of a table
- Know which fields uniquely identify a row
Common PeopleSoft key patterns:
- Simple: EMPLID (employee ID only)
- Effective-dated: EMPLID, EMPL_RCD, EFFDT, EFFSEQ
- SetID-based: SETID, DEPTID, EFFDT
:param table_name: The PeopleSoft record name (e.g., 'JOB', 'PERSONAL_DATA')
:return: List of indexes with their key fields
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a read-only intent (getting indexes) and return type (list of indexes with key fields), but lacks details on authorization, rate limits, or side effects. Somewhat adequate but could be richer.
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 sections (purpose, benefits, patterns, param doc). It front-loads the main action. However, it is slightly verbose with explanatory text that could be streamlined, earning a 4 rather than 5.
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 low schema coverage and no output schema, the description provides adequate completeness: explains the tool's value, common patterns, and return content. It could specify the return structure more precisely, but the examples help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaningful context for the single parameter 'table_name' by providing examples like 'JOB', 'PERSONAL_DATA'. This clarifies the expected input beyond the schema's bare 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 'Get the index keys for a PeopleSoft table' with a specific verb and resource. It distinguishes from sibling tools like 'describe_table' or 'get_record_definition' by focusing specifically on indexes for query optimization.
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 clear context on when to use the tool (writing efficient queries) and lists common key patterns. It does not explicitly mention when not to use or alternatives, but the context is sufficient for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_relationshipsA
Find tables related to the specified table by analyzing shared key fields.
This helps discover:
- Parent/child relationships
- Common join patterns
- Related configuration tables
:param table_name: The PeopleSoft record name to analyze
:return: List of potentially related tables grouped by relationship type
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses the behavioral trait of analyzing shared key fields and returning a grouped list of related tables. It implies a read operation, which is appropriate.
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, front-loaded with the main action, and efficiently conveys purpose, output, and usage in a structured format.
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 parameter and no output schema, the description adequately covers purpose, method, and return format. Minor gaps in examples or limitations, but overall 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?
With 0% schema coverage, the description adds value by specifying that 'table_name' is a 'PeopleSoft record name,' providing context 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 tool finds tables related to a given table by analyzing shared key fields. It distinguishes from siblings like 'describe_table' and 'search_records' by focusing on discovering relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use (to discover parent/child relationships, join patterns, config tables), but does not explicitly mention exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_translate_field_valuesC
Get all translate values for a field with their effective dates.
Args:
field_name: The field name that uses translate values
Returns:
All translate values with descriptions and effective dates
| Name | Required | Description | Default |
|---|---|---|---|
| field_name | Yes |
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 mentions returning 'translate values with descriptions and effective dates' but does not disclose behavioral traits such as whether the operation is read-only, if permissions are required, or any side effects. The description is 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 two sentences plus 'Args' and 'Returns' sections, which are brief. It is fairly concise, though the 'Args' and 'Returns' are redundant given the input schema and lack of output schema. Not verbose, but could be more streamlined.
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 one parameter, no output schema, and many sibling tools, the description does not provide enough context to fully understand the tool's usage. It lacks explanation of effective dates, how results are structured, or how this tool relates to similar siblings like 'get_translate_values'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage. The only parameter 'field_name' is described as 'The field name that uses translate values' in the description, adding minimal context beyond the schema's title 'Field Name'. However, it does clarify the purpose of the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all translate values for a field with their effective dates', specifying the verb 'get', the resource 'translate values for a field', and an additional detail about including effective dates. This distinguishes it from the sibling 'get_translate_values' which may not include dates, but the difference is not explicitly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_translate_values' or when not to use it. There is no context about prerequisites, scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_translate_valuesA
Get all valid translate values for a PeopleSoft field.
Many PeopleSoft fields use single or double letter codes that have
specific meanings. This tool decodes those values.
Common examples:
- SEX: 'M' = Male, 'F' = Female
- HR_STATUS: 'A' = Active, 'I' = Inactive
- EMPL_STATUS: 'A' = Active, 'T' = Terminated, 'L' = Leave, etc.
- MAR_STATUS: 'S' = Single, 'M' = Married, 'D' = Divorced
:param field_name: The field name to look up (e.g., 'SEX', 'HR_STATUS', 'EMPL_STATUS')
:return: List of valid values with their short and long descriptions
| Name | Required | Description | Default |
|---|---|---|---|
| field_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral aspects. It notes that the tool returns a list of valid values with descriptions, which is sufficient for a read-only operation. However, it does not disclose any potential side effects, authorization requirements, or rate limits, 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 concise and to the point, with a clear opening sentence followed by examples. It uses a structured format with parameter documentation. While it could be slightly more front-loaded, there is no unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description adequately explains the functionality and provides common use cases. It covers the essential information needed for an AI agent to understand and invoke the tool correctly. Minor gaps like missing output format details don't detract significantly.
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, but the description provides parameter documentation in reStructuredText format, stating the parameter is the field name and giving examples. This adds significant meaning beyond the schema's mere type definition, compensating for the lack of 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 the verb 'Get' and the resource 'valid translate values for a PeopleSoft field', making the purpose obvious. However, it does not explicitly differentiate from the sibling 'get_translate_field_values', which may be similar. The examples help clarify what it 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 examples and implies the tool is for decoding field codes, but it does not explicitly state when to use this tool versus alternatives, nor does it provide any exclusions or prerequisites. The context is clear but lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calendar_runsA
List payroll calendar runs with their status.
:param pay_entity: Optional filter by pay entity
:param year: Optional filter by year
:param status: Optional filter by status ('open', 'closed', 'finalized')
:param limit: Maximum results (default 20)
:return: List of calendar runs
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| status | No | ||
| pay_entity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'list' without disclosing read-only nature, potential for large data, or any side effects. It fails to clarify that this is a safe, non-destructive operation.
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, front-loading the purpose in the first sentence, and listing parameters in a structured docstring format. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not specify the return format beyond 'list of calendar runs'. It covers parameters adequately but lacks guidance on pagination, ordering, or performance considerations.
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?
All four parameters are explained with clear roles (e.g., 'Optional filter by status'), adding meaning beyond the input schema which lacks descriptions. The status parameter includes example values, enhancing 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 'List payroll calendar runs with their status', a specific verb-resource pair. It distinguishes from sibling tools like get_payroll_results or search_employees by being a distinct listing tool.
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 guidance. The parameter list implies filtering capabilities but doesn't direct the agent to alternatives or clarify when this tool is preferable over similar list or search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesA
Search for PeopleSoft tables/records by name pattern or module.
:param pattern: Optional search pattern (e.g., 'EMPLOYEE', 'JOB', 'GP_RSLT').
Searches with wildcards automatically.
:param module: Optional module filter. Values:
- 'HR' or 'CORE': Core HR tables (PERSONAL_DATA, JOB, DEPT, etc.)
- 'GP' or 'PAYROLL': Global Payroll tables (GP_*)
- 'EP' or 'PERFORMANCE': ePerformance tables (EP_*)
- 'BN' or 'BENEFITS': Benefits tables (BEN_*, DEPENDENT_*)
- 'SYSTEM': PeopleTools system tables (PS* without underscore)
:param limit: Maximum number of results (default 50)
:return: List of matching tables with descriptions
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| module | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions 'searches with wildcards automatically', a useful behavioral trait. However, it does not disclose authentication needs, rate limits, or behavior when no results found. Some transparency, but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a docstring with parameter lists, which is structured but slightly verbose. The examples are helpful. It could be trimmed slightly, but overall it's clear and 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 no output schema and 0% schema coverage, the description explains inputs well and includes the return format ('list of matching tables with descriptions'). However, it lacks details on the exact structure of each returned item (e.g., fields of the table objects). Mostly complete but could be more specific.
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 fully. It does: explains pattern with examples, module with specific value mappings, and limit with default. 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?
The description clearly states it searches for PeopleSoft tables/records by name pattern or module. The verb 'search' and resource 'tables/records' are specific. It distinguishes itself from siblings like 'describe_table' (which gets details on a specific table) and 'search_records' (which might search across 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 provides parameter details (pattern, module, limit) that imply when to use each, but it does not explicitly state when to use this tool over alternatives. For example, it doesn't compare to 'search_records' or 'describe_table'. Usage guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_peoplesoft_dbA
Query PeopleSoft Oracle Database directly.
When working with a PeopleSoft database, follow these guidelines in order:
1. FIRST, always check the record structure and fields:
- Use: SELECT RECNAME, FIELDNAME FROM PSRECFIELD WHERE RECNAME = 'YOUR_TABLE'
- This shows all fields in a record/table and helps prevent invalid field errors
2. SECOND, check field properties and translations:
- For field details: SELECT * FROM PSDBFIELD WHERE FIELDNAME = 'YOUR_FIELD'
- For code translations:
* ALWAYS check PSXLATITEM and PSXLATITEMLANG for single/double letter codes
* Example: 'M'/'F' for SEX, 'SP'/'C' for RELATIONSHIP, 'Y'/'N' for flags
* Query: SELECT FIELDNAME, FIELDVALUE, XLATLONGNAME, XLATSHORTNAME
FROM PSXLATITEM
WHERE FIELDNAME = 'YOUR_FIELD'
- Understanding field properties ensures correct data handling
3. THIRD, review table indexes for performance:
- Use: SELECT * FROM PSKEYDEFN WHERE RECNAME = 'YOUR_TABLE'
- Knowing indexes helps write efficient queries using indexed fields
4. FINALLY, write your query using the discovered structure
- Example finding employee data:
1. Check PSRECFIELD for PS_PERSONAL_DATA fields
2. Look up important fields in PSDBFIELD
3. Check PSKEYDEFN for PS_PERSONAL_DATA indexes
4. Write optimized query using indexed fields
5. Don't forget to join with PSXLATITEM for any code fields
AVAILABLE RESOURCES:
- Use describe_table() to get table structure
- Use list_tables() to search for tables
- Use get_translate_values() to decode field codes
- Use get_table_indexes() for performance optimization
:param sql_query: SQL query to execute (e.g., SELECT * FROM PS_EMPLOYEE WHERE EMPLID = :1)
:param parameters: List of query parameters (optional)
:return: A dictionary containing query results or an error message
| Name | Required | Description | Default |
|---|---|---|---|
| sql_query | Yes | ||
| parameters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It explains the query execution and safe usage workflow, but does not explicitly state whether the tool is read-only, what permissions are needed, or potential risks (e.g., DML statements could modify data).
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 verbose with multiple numbered steps and repeated examples. While structured, it could be more concise without losing essential guidance. The front-loaded sentence clearly states the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of direct SQL querying in PeopleSoft, the description provides a thorough workflow, links to companion tools, and explains the return type generically. However, it lacks a detailed output format specification, which would be expected without 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?
Despite 0% schema coverage, the description includes a dedicated param section with examples (e.g., 'SELECT * FROM PS_EMPLOYEE WHERE EMPLID = :1') and explains the optional parameter list, adding meaning 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?
The description clearly states the tool's function: 'Query PeopleSoft Oracle Database directly.' It distinguishes itself from sibling tools like get_employee or search_records by offering direct SQL execution, and the step-by-step guidelines reinforce its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prioritized workflow (FIRST, SECOND, THIRD, FINALLY) and explicitly lists alternative tools (describe_table, list_tables, get_translate_values, get_table_indexes) for preliminary steps, telling the agent when to use each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_employeesA
Search for employees by various criteria.
:param name: Search by employee name (partial match supported)
:param department: Filter by department ID
:param company: Filter by company code
:param location: Filter by location code
:param job_code: Filter by job code
:param status: Filter by status: 'active' (default), 'inactive', 'terminated', or 'all'
:param limit: Maximum results to return (default 50)
:return: List of matching employees with basic info
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| limit | No | ||
| status | No | active | |
| company | No | ||
| job_code | No | ||
| location | No | ||
| department | No |
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 it returns a list with basic info, but does not explicitly confirm read-only behavior or mention any side effects. The search function implies a read operation, but lacks explicit disclosure.
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 clear purpose first, then parameters listed in a readable docstring format. It is slightly verbose with line breaks, but each 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?
With 7 parameters, no output schema, and siblings that include similar search tools, the description adequately explains all inputs and return value. However, it could benefit from mentioning pagination beyond the limit parameter or more details on output structure.
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 compensates fully with detailed explanations for each parameter, including partial match for name, enum values for status, and default for limit. This adds critical meaning beyond the schema's type and default fields.
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 'Search for employees by various criteria.', providing a specific verb and resource. It distinguishes from siblings like 'get_employee' by implying multiple results and flexible filtering.
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 lists parameters and defaults, implicitly indicating when to use filters. However, it lacks explicit guidance on choosing this tool over alternatives like 'get_employee' for single employee lookup or 'search_reviews' for different entities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_peoplecodeA
Search for text within PeopleCode programs.
Args:
search_term: Text to search for in PeopleCode
search_in: Where to search - 'all', 'record', 'component', 'appengine'
Returns:
List of PeopleCode locations containing the search term
| Name | Required | Description | Default |
|---|---|---|---|
| search_in | No | all | |
| search_term | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool searches and returns locations but does not disclose behavioral traits like read-only nature, permissions, or side effects. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, with a clear main sentence followed by structured args and returns. Every line adds value without unnecessary elaboration.
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 (2 params, no output schema), the description adequately covers the purpose, inputs, and output type. It is complete enough for a basic search tool, though it could benefit from example usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaningful explanations for both parameters (search_term and search_in), including possible values. This compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (search) and resource (PeopleCode programs). It is specific and distinguishes from sibling search tools like search_employees or search_records, though it does not explicitly differentiate from get_peoplecode.
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 some guidance through the Args section, explaining the search_in parameter options. However, it does not specify when to use this tool over alternatives, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_recordsB
Search for PeopleSoft records by name or description.
Args:
search_term: Partial name or description to search for
record_type: Optional filter by type (0=Table, 1=View, 2=Derived, 7=Temp)
Returns:
List of matching records with their types and descriptions
| Name | Required | Description | Default |
|---|---|---|---|
| record_type | No | ||
| search_term | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states it returns matching records with types and descriptions, but omits details like pagination, case sensitivity, fuzzy matching, or any rate limits. This is insufficient for a search tool with potential large result sets.
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: a clear purpose statement, followed by parameter explanations and return type. 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?
For a simple search tool, the description covers inputs and basic output structure. However, it omits important usage context like pagination behavior, case sensitivity, and error handling, which reduces 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?
Since the schema provides no parameter descriptions (0% coverage), the description compensates by explaining that search_term is a partial match and record_type values map to specific record types (Table, View, etc.). This adds essential semantic context.
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 searches for PeopleSoft records by name or description, using a specific verb and resource. Siblings with similar names (e.g., search_employees) target different entities, so the purpose is distinct enough.
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 searching records by name/description but provides no explicit guidance on when to use this tool versus alternatives like get_record_definition or list_tables.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_reviewsB
Search performance reviews by various criteria.
:param reviewer_id: Filter by reviewer's employee ID
:param department: Filter by employee's department
:param status: Filter by status ('INP', 'COMP', 'CANC', 'PEND')
:param year: Filter by review year
:param limit: Maximum results (default 50)
:return: List of matching reviews
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| status | No | ||
| department | No | ||
| reviewer_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the return type ('list of matching reviews') without mentioning pagination, sorting, error handling, or any side effects. This is insufficient for a search 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 concise and uses a clear docstring format with parameter explanations. While efficient, it could be slightly more structured (e.g., separating usage notes from parameter docs).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 optional parameters and no output schema, the description covers parameters and return type adequately. However, it lacks details on default behavior (limit default is implied but not explicit), sorting, and result handling, making it moderately 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 input schema has 0% description coverage, so the description compensates by fully documenting each parameter's meaning (e.g., 'Filter by reviewer's employee ID'). This adds significant value 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 verb 'Search' and the resource 'performance reviews', making the purpose clear. However, it does not differentiate from sibling tools like 'get_performance_reviews' or 'get_review_details', which may overlap in functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description is purely functional without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sql_definitionsA
Search for SQL object IDs whose text contains the given term.
Useful for discovering which SQL objects reference a table, field, or
other identifier. Does not return full SQL text—use get_sql_definition
for that.
Args:
search_term: Text to search for in SQL (e.g. 'PS_JOB', 'ABSV_REQUEST')
limit: Maximum number of SQLIDs to return (default 50)
Returns:
List of matching SQLIDs with sql_type and market.
Example:
search_sql_definitions("PS_ABSV_REQUEST")
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| search_term | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it does not return full SQL text and mentions the return structure (SQLIDs with sql_type and market). It does not mention safety or side effects, but the tool appears read-only. Some behavioral context is given, but not exhaustive.
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 moderately concise with a structured format (Args, Returns, Example). However, it could be shorter without losing clarity. The front-loaded sentence states the main purpose well.
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 required parameter, one optional) and no output schema, the description adequately covers the return format (list with sql_type and market) and provides an example. It references a sibling tool for extended functionality, making it contextually complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains search_term with examples (e.g., 'PS_JOB', 'ABSV_REQUEST') and explains limit with its default value (50). An example call is provided. This adds significant meaning beyond the schema's basic 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 searches for SQL object IDs whose text contains a given term. It uses specific verbs and resources ('search for SQL object IDs') and distinguishes itself from the sibling tool 'get_sql_definition' by noting it does not return full SQL text.
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 it is useful for discovering which SQL objects reference a table, field, or other identifier. It also contrasts with get_sql_definition for full text. However, it does not provide explicit when-not-to-use or broader alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes, with detailed descriptions that guide usage. Minor overlap exists between get_translate_values and get_translate_field_values, and between get_beneficiaries and get_dependents, but these are still distinguishable.
Tools generally follow a verb_noun pattern, but mix prefixes like 'get_', 'search_', 'list_', 'explain_', and 'query_'. This is mostly consistent but lacks a unified convention, e.g., 'list_tables' vs 'search_records'.
43 tools is on the high side for a single server, covering a broad domain. While each tool serves a specific purpose, the count may feel overwhelming. Could potentially be consolidated, especially for related metadata queries.
The tool set covers a wide range of PeopleSoft functionality: employee data, payroll, benefits, performance, metadata, and integration. Minor gaps exist, such as no dedicated create/update tools for HR data (except via raw SQL), but overall it's comprehensive for an exploration and querying server.
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
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP (Model Context Protocol) server that exposes natural language to SQL functionality, allowing any MCP-compatible client to convert plain English questions into SQL queries for database interaction using AI.3MIT
- AlicenseNot gradedqualityCmaintenanceAn open-source MCP server that imports HR CSV data into an in-memory SQLite database for structured querying and metadata retrieval. It enables users to perform read-only SQL queries and structured searches on employee data through natural language.MIT
- -licenseNot gradedqualityCmaintenanceAn MCP server that bridges AI assistants with SQL databases, enabling natural language querying across multiple database types with built-in optimization and security.3
- FlicenseNot gradedqualityCmaintenanceAn MCP server for interacting with an HR database, enabling querying employee data and HR operations via natural language.
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/rgrz/peoplesoft-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server