Skip to main content
Glama
josemachado-vp

SF Assistant MCP Server

SF Assistant MCP Server

MCP (Model Context Protocol) server for SAP SuccessFactors. Provides 52 tools across 15 categories that let an MCP client (Claude Code, Claude Desktop, etc.) query SF live data, generate business rules, validate imports, run analytics, compare instances, audit data, build cutover checklists, and populate client workbooks — all against a real SF tenant via OData v2.

Default tenant: This project ships configured against the VPMC Sandbox tenant (VPMCSandbox company ID on api8preview.sapsf.com). Every credential in the .env.example below is meant for that tenant — for any other tenant ask the functional lead for the right OIDC client and IAS host.

Built with FastMCP (Python) and httpx for async OData calls.


Prerequisites

  • Python 3.10+

  • uv package manager

  • Credentials for the VPMC Sandbox tenant (or whichever tenant you target):

    • SF user with OData API permissions

    • OIDC client registered in IAS with an SF dependency

  • An MCP client to consume the server (Claude Code, Claude Desktop, etc.)


Related MCP server: Happy MCP Server

Quick Start

# 1. Clone the monorepo and enter this project
git clone https://github.com/VeritasPrime/Jose_Avengers.git
cd Jose_Avengers/sf-mcp-server

# 2. Install dependencies
uv sync

# 3. Configure credentials
cp .env.example .env       # then edit .env with the values below

# 4. Run the MCP server (stdio transport, default)
uv run python main.py

# Or run with SSE transport
MCP_TRANSPORT=sse uv run python main.py

Environment Variables (VPMC Sandbox)

The server reads credentials from .env at the project root. Every variable below is requiredhelpers/credentials.py raises ValueError listing the missing ones if any is empty.

Variable

Required

Description

VPMC Sandbox value

SF_API_HOST

SF API host (full URL or DC code)

https://api8preview.sapsf.com

SF_COMPANY_ID

SF company ID (tenant)

VPMCSandbox

SF_USER_ID

IAS username (NOT user@companyId)

(ask team lead)

SF_PASSWORD

IAS password

(ask team lead)

IAS_HOST

IAS tenant host

abkakgd3p.accounts.ondemand.com

OIDC_CLIENT_ID

OIDC Client ID registered in IAS

(ask team lead)

OIDC_CLIENT_SECRET

OIDC Client Secret from IAS

(ask team lead)

IAS_DEPENDENCY_NAME

SF dependency name configured in IAS

SF_DEPENDENCY

Sample .env (VPMC Sandbox skeleton — fill the secrets):

# --- SF Tenant (VPMC Sandbox) ---
SF_API_HOST=https://api8preview.sapsf.com
SF_COMPANY_ID=VPMCSandbox
SF_USER_ID=<your-ias-user>
SF_PASSWORD=<your-ias-password>

# --- IAS / OIDC ---
IAS_HOST=abkakgd3p.accounts.ondemand.com
OIDC_CLIENT_ID=<oidc-client-id>
OIDC_CLIENT_SECRET=<oidc-client-secret>
IAS_DEPENDENCY_NAME=SF_DEPENDENCY

⚠️ Never commit .env. It is already in .gitignore. If you target a different tenant (DEV, QA, another sandbox), keep a separate .env.<tenant> file outside the repo.

All credentials can also be overridden per-request via tool parameters (data_center, auth_user_id, auth_password) for multi-tenant workflows.


Authentication Flow (OIDC 2-step via IAS)

The server authenticates via SAP IAS (Identity Authentication Service) using the OIDC 2-step flow. See helpers/credentials.py:

  1. Step 1 — Password grant: POST {IAS_HOST}/oauth2/token with grant_type=password, returns an id_token.

  2. Step 2 — JWT-bearer exchange: POST {IAS_HOST}/oauth2/token with grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer, the id_token as assertion and resource=urn:sap:identity:application:provider:name:{IAS_DEPENDENCY_NAME}. Returns the SF access_token.

  3. The token is cached per-tenant with a 60-second safety buffer before expiry. Multi-tenant cache lives in helpers/credentials._token_cache.

All subsequent OData calls use Authorization: Bearer {access_token}.


Project Structure

sf-mcp-server/
├── main.py                     # Entry point — creates FastMCP server, registers 52 tools
├── pyproject.toml              # Project config (uv/hatch)
├── uv.lock                     # Locked dependencies
├── .env                        # Credentials (NOT committed)
├── .mcp.json                   # MCP client config
├── CLAUDE.md                   # Claude Code project instructions
│
├── helpers/                    # Cross-cutting infrastructure
│   ├── credentials.py          # OIDC 2-step flow, token cache (per-tenant)
│   ├── credential_store.py     # Pluggable credential storage (env / GCP Secret Manager)
│   ├── sf_client.py            # Async OData client (DC resolution, Bearer auth, GET/POST/PUT/upsert)
│   ├── metadata_parser.py      # EDMX/CSDL XML → structured dicts (with SAP annotations)
│   ├── nl_query_parser.py      # Natural language → OData $filter (no LLM, pattern-based)
│   ├── template_parser.py      # CSV / Excel template parser for imports
│   ├── odata_utils.py          # OData helpers (escaping, pagination, etc.)
│   └── pii_filter.py           # PII redaction layer for tool outputs
│
├── models/                     # Pydantic v2 models (domain objects)
│   ├── rule_spec.py            # RuleSpec, RuleCondition, RuleAction, ExecutionNotes
│   ├── field_validation.py     # FieldValidationResult, ValidationReport, TestCase, TestMatrix
│   ├── employee.py             # EmployeeProfile, OrgNode, EmployeeComparison, EmployeeHistoryRecord
│   ├── organization.py         # FoundationObject, OrgUnit, PositionDetail
│   └── data_import.py          # ImportFieldValidation, ImportValidationReport, UpsertRecord, UpsertResult
│
├── tools/                      # 52 MCP tools, one file per category
│   ├── discovery.py            # Discovery (4)
│   ├── rule_generation.py      # Business Rules — generation (2)
│   ├── rule_documentation.py   # Business Rules — docs (2)
│   ├── employee.py             # Employee (5)
│   ├── organization.py         # Organization (3)
│   ├── configuration.py        # Configuration (2)
│   ├── data_import.py          # Data Import (3)
│   ├── analytics.py            # Analytics (3)
│   ├── instance_compare.py     # Instance Comparison (4)
│   ├── audit.py                # Audit & Troubleshooting (5)
│   ├── documentation.py        # Documentation (4)
│   ├── migration.py            # Migration (4)
│   ├── mdf.py                  # MDF Objects (3)
│   ├── golive.py               # Go-Live (2)
│   ├── country.py              # Country support (3)
│   └── workbook_generator.py   # Workbook Generator (3)
│
├── knowledge/                  # Static JSON knowledge base
│   ├── entity_mapping.json             # Entity catalog with NL hints, dating templates, codes
│   ├── workbook_entity_mapping.json    # Workbook → SF entity column mappings
│   ├── base_objects.json               # Base objects → primary OData entities
│   ├── rule_scenarios.json             # Standard SF rule scenarios
│   ├── event_types.json                # Event types (onSave, onChange, onInit, validate)
│   ├── best_practices.json             # SAP rule configuration best practices
│   └── pii_classification.json         # Field-level PII classification
│
├── docs/                       # Project documentation
│   ├── MCP_SF_Technical_Documentation.docx
│   ├── MCP_SF_Value_Proposition.md
│   ├── SF_Assistant_MCP_Value_Proposition.docx
│   └── superpowers/            # Specs and implementation plans
│
├── scripts/                    # Operational scripts (not MCP tools)
│   ├── generate_pptx.py
│   ├── generate_word_doc.py
│   └── validate_workbooks.py
│
├── tests/                      # pytest suite (uses respx for HTTP mocking)
│   ├── test_sf_client.py
│   ├── test_metadata_parser.py
│   ├── test_models.py
│   └── test_pii_filter.py
│
└── Workbooks Templates/        # Reference Excel templates from clients
    ├── 1_26 Version_ JVL - Employee Field Data & RBP.xlsx
    ├── 1_26 Version_ JVL - Workflow Notifications & Messages.xlsx
    └── 1_26 Version_JVL - Object & Picklist Data.xlsx

Tools Reference (52 tools, 15 categories)

#

Category

Tools

1–4

Discovery

get_entity_metadata, list_entities, get_picklist_values, query_odata

5–8

Business Rules

validate_rule_fields, generate_rule_spec, generate_rule_doc, generate_rule_test

9–13

Employee

search_employees, get_employee_profile, get_org_chart, get_employee_history, compare_employees

14–16

Organization

get_org_structure, get_position_details, list_foundation_objects

17–18

Configuration

list_business_rules, get_permission_roles

19–21

Data Import

validate_import_template, generate_import_template, execute_upsert (dry_run by default)

22–24

Analytics

get_headcount, get_compensation_analytics, simulate_rule_impact

25–28

Instance Comparison

compare_instance_config, compare_picklists, compare_business_rules, compare_foundation_objects

29–33

Audit & Troubleshooting

audit_employee_data, find_data_anomalies, trace_rule_execution, check_permission_access, validate_effective_dating

34–37

Documentation

generate_functional_spec, generate_cutover_checklist, generate_data_dictionary, generate_test_script

38–41

Migration

validate_migration_file, generate_migration_sequence, reconcile_data, generate_purge_file

42–44

MDF

get_mdf_object_definition, generate_mdf_import_template, list_mdf_objects

45–46

Go-Live

run_go_live_checks, generate_reconciliation_report

47–49

Country

get_country_specific_fields, validate_country_compliance, generate_country_config_guide

50–52

Workbook Generator

generate_fo_workbook, generate_workflow_workbook, generate_rules_workbook

Typical Workflows

Goal

Pipeline

Build a business rule

get_entity_metadatavalidate_rule_fieldsgenerate_rule_specgenerate_rule_doc / generate_rule_test

Find and inspect employees

search_employeesget_employee_profileget_org_chart

Run an import

generate_import_templatevalidate_migration_fileexecute_upsert

Cutover prep

compare_instance_configgenerate_cutover_checklistrun_go_live_checks

Country setup

get_country_specific_fieldsgenerate_country_config_guidevalidate_country_compliance

Populate client workbooks

generate_fo_workbook / generate_workflow_workbook / generate_rules_workbook


MCP Client Configuration

To use the server from Claude Code, add this to .mcp.json at the monorepo root (or wherever your MCP client reads from):

{
  "mcpServers": {
    "sf-assistant": {
      "command": "uv",
      "args": ["run", "python", "main.py"],
      "cwd": "/absolute/path/to/Jose_Avengers/sf-mcp-server"
    }
  }
}

For Claude Desktop, point its claude_desktop_config.json at the same command. The server responds on stdio by default; set MCP_TRANSPORT=sse to expose it over HTTP/SSE instead.


Running Tests

uv sync --dev          # install dev deps (pytest, pytest-asyncio, respx)
uv run pytest          # run all tests
uv run pytest -v       # verbose
uv run pytest tests/test_pii_filter.py -v   # one file

Tests use respx to mock httpx calls — no live SF tenant needed.


Troubleshooting

Symptom

Likely cause / fix

ValueError: Missing OIDC config: ...

One or more env vars in .env are empty. The error message lists exactly which ones.

ValueError: No API host configured

SF_API_HOST is empty. Set it to a full URL or a DC code (e.g., DC4, DC8_PREVIEW).

OIDC Step 1 failed (401)

Wrong SF_USER_ID / SF_PASSWORD, or user is locked in IAS.

OIDC Step 2 failed (400)

Wrong OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, or IAS_DEPENDENCY_NAME. The IAS dependency name must match exactly the one registered in IAS for the SF app.

httpx.ConnectTimeout

Network / VPN / firewall blocking IAS or SF API. Default timeouts: 30 s for IAS, 60 s for OData (90 s for full $metadata).

403 Forbidden on OData calls

The SF user lacks OData API permissions on the entity. Check Admin Center → Manage Permission Roles.

Unknown data center 'XXX'

SF_API_HOST is neither a known DC code nor a valid URL. Use a full URL or one of the codes in helpers/sf_client.py.


Conventions

  • Async everywhere. All SF calls use httpx.AsyncClient with asyncio.Semaphore(5) for rate limiting.

  • Effective-dated entities (EmpJob, EmpCompensation, PerPersonal) require date filters — the tools enforce this.

  • execute_upsert defaults to dry_run=True for safety; flip explicitly to commit.

  • OData v2 lacks $apply / groupby — analytics tools aggregate client-side with $top limits.

  • One MCP server only. Each tools/<category>.py may build a local FastMCP for testing, but main.py is the single registration point exposed to clients.


Dependencies

Package

Version

Purpose

fastmcp

>= 3.0.0

MCP server framework

httpx

>= 0.27.0

Async HTTP client

pydantic

>= 2.0.0

Data models / validation

python-dotenv

(transitive)

Load .env

openpyxl

(transitive)

Workbook generation / template parsing

Optional extras:

  • uv sync --extra gcp — adds google-cloud-secret-manager for the GCPSecretManagerStore credential backend.

Dev: pytest, pytest-asyncio, respx.


Ownership

Role

Person

Functional Lead

José Machado

Stakeholder

Jabin Geary

Repo owner

Ryan Summerskill

Engineers

Jose Avengers (4 engineers, India)

For questions on tools, OIDC setup, or VPMC Sandbox access — ping the functional lead.

Web frontend (optional)

A local web UI lets you chat with Gemini, which orchestrates the 52 MCP tools.

Install

uv sync --extra frontend
cd frontend && npm install

Configure

Add to .env:

GEMINI_API_KEY=...
GEMINI_MODEL=gemini-3-pro-preview
FRONTEND_BACKEND_PORT=8001
FRONTEND_CORS_ORIGIN=http://localhost:5173

Run

In two terminals:

# 1. Backend (FastAPI + SSE)
uv run python -m backend.app

# 2. Frontend (Vite)
cd frontend && npm run dev

Open the Vite URL printed in the second terminal.

Safety

execute_upsert always pops a confirmation modal before running. Choose Approve, Reject, or Force dry_run. Direct sidebar execution of execute_upsert is forced to dry_run=true.

Available Tools

52 tools
audit_employee_dataB

Run data integrity checks on a single employee.

Validates: job info exists, employment record exists, personal info complete, effective dates are consistent, manager is valid, compensation exists, email is present. Returns findings with severity levels.

ParametersJSON Schema
NameRequiredDescriptionDefault
checksNo
user_idYesEmployee userId to audit
data_centerNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes what is validated and that findings are returned with severity levels. But it does not state whether data is modified, auth requirements (though auth params exist), or other side effects. No annotations provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short two-sentence description with clear purpose and list of checks. Could be slightly more efficient by front-loading the key action, but overall no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description lacks detail on parameter usage (especially 'checks' and auth), making it incomplete for the tool's complexity and sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 20%, description should compensate. It lists checks in prose but does not explain the 'checks' parameter or auth-related parameters (data_center, auth_user_id, auth_password). Only user_id is obvious.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool runs data integrity checks on a single employee, listing specific validations. However, it does not explicitly differentiate from siblings like 'find_data_anomalies' or 'reconcile_data'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage is auditing a single employee, but no when-not or alternatives are provided. Given many sibling tools, explicit guidance would help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_permission_accessB

Look up permission role details.

Queries RBPRole and FODynamicRole to find matching roles. Note: Actual field-level RBP permissions are not exposed via OData v2. This tool helps identify which roles exist and their basic properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityNo
role_nameYesPermission role name or substring to search
data_centerNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It transparently states the tables queried and explicitly notes a key limitation (field-level RBP not exposed). However, it does not mention that the tool is read-only or discuss authentication, though auth parameters exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise: two sentences and a short note. The first sentence states the purpose directly. Every sentence adds value, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values are likely documented elsewhere. However, the description lacks context on how optional parameters affect the query, and does not mention pagination or result limits. Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only 'role_name' described). The description adds no explanation for other parameters like 'entity', 'data_center', or auth fields. Given low coverage, the description should compensate but fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool looks up permission role details by querying specific database tables. It distinguishes itself by noting the limitation that field-level permissions are not exposed, but does not explicitly differentiate from sibling tool 'get_permission_roles' which might have a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. The description only implies a limitation (field-level not exposed) but does not name alternative tools for different needs. Given many sibling tools, this is insufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_business_rulesA

Compare business rules between two SF instances.

Shows rules that exist in one instance but not the other, and differences in rule properties (scenario, base object, status). Essential for cutover validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_nameNo
instance_a_dcNoData center or API host for instance A
instance_b_dcNoData center or API host for instance B
instance_a_userNo
instance_b_userNo
instance_a_passwordNo
instance_b_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool shows missing rules and property differences, implying a read-only comparison. However, it does not address authentication needs, data sensitivity (passwords in params), or any side effects, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 lines) and front-loaded with the purpose sentence. Every sentence adds value with no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, many optional), the description is sufficient for a standard diff scenario but incomplete for parameter guidance. The existence of an output schema reduces the need to describe return values, but the low param coverage and missing security notes leave gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%. The description adds no per-parameter explanation beyond the schema's minimal descriptions (e.g., instance_a_dc gets 'Data center...'). Most parameters like rule_name, instance_a_user, and passwords lack semantic guidance in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it compares business rules between two SF instances, showing differences and property changes. This specific verb+resource combo distinguishes it from siblings like list_business_rules (which just lists rules in one instance).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions 'Essential for cutover validation,' giving a clear use case. However, it does not explicitly state when not to use the tool or suggest alternatives like simulate_rule_impact or trace_rule_execution for other tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_employeesB

Compare multiple employees side by side.

Fetches profiles for all specified employees in parallel and returns a comparison matrix highlighting differences. Useful for auditing or verifying employee data consistency.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idsYesList of userIds to compare (2-5 employees)
data_centerNo
auth_user_idNo
auth_passwordNo
compare_fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it fetches profiles 'in parallel' and returns a comparison matrix. No annotations provided, so description is the only source. Missing details on authentication requirements (auth_user_id, auth_password) and whether the operation is read-only, which are relevant for behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short and front-loaded with purpose. Two paragraphs, no wasted words. However, the second sentence about parallel fetching could be integrated into the first for better flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters including authentication-related ones and an output schema exists, the description covers the main purpose and returns a matrix but omits important context like how authentication is handled and what the compare_fields parameter does. The existence of output schema reduces need to explain return format, but authentication context is still missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only user_ids has schema description). The tool description does not explain the other four parameters (data_center, auth_user_id, auth_password, compare_fields), leaving them ambiguous. For user_ids, the schema already defines the constraint (2-5 employees) but description does not reinforce it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb and resource: 'compare multiple employees' and 'returns a comparison matrix'. Specific to employees and distinguishes from other comparison tools like compare_business_rules, but does not explicitly differentiate from sibling tools that also deal with employees (e.g., audit_employee_data, search_employees).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States 'Useful for auditing or verifying employee data consistency', which gives context for when to use. However, it does not mention when not to use or provide alternatives, leaving the agent to infer from sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_foundation_objectsB

Compare Foundation Objects between two SF instances.

Detects FO records that exist in one instance but not the other, and field differences for matching records (by externalCode).

ParametersJSON Schema
NameRequiredDescriptionDefault
fo_typeYesFoundation Object type: 'company', 'department', 'division', 'location', 'cost_center', 'job_code', 'pay_grade' or entity name
instance_a_dcNoData center or API host for instance A
instance_b_dcNoData center or API host for instance B
instance_a_userNo
instance_b_userNo
instance_a_passwordNo
instance_b_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes the core behavior (detecting missing records and field differences) and mentions the matching key (externalCode). However, missing disclosure on whether the operation is read-only, required permissions, or side effects. With no annotations, the description should provide more transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose. Efficient but could be more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a comparison tool with output schema, but missing details on authentication setup, parameter defaults, and network requirements. The description could more fully cover the operation's context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 43%, and the description adds no additional parameter information. The user and password parameters have no descriptions, and the default values are not explained. The description fails to compensate for low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'compare', the resource 'Foundation Objects', and specific actions: detecting missing records and field differences between two SF instances. It distinguishes itself from sibling tools like compare_employees and compare_picklists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other compare tools or when not to use it. 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.

compare_instance_configA

Compare entity metadata between two SF instances.

Detects fields that exist in one instance but not the other, type mismatches, and annotation differences (editability, labels). Essential for cutover validation (DEV → QA → PROD).

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesEntity to compare (e.g., 'EmpJob', 'User', 'FOCompany')
instance_a_dcYesData center or API host for instance A (e.g., 'api8preview.sapsf.com')
instance_b_dcYesData center or API host for instance B
instance_a_userNo
instance_b_userNo
instance_a_passwordNo
instance_b_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses what is compared (fields, types, annotations) which is good, but it does not mention authentication requirements or that the operation is read-only. The input schema shows user/password fields, so this context would be valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two paragraphs, front-loaded with the core purpose ('Compare entity metadata between two SF instances'), followed by a concise list of detection types. Every sentence adds value with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (context signals), the description does not need to explain return values. It covers the main purpose and detection types well but lacks details on how authentication works for the two instances, which is relevant for tool usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (43%). The description does not add meaning beyond the schema for the required parameters (entity, instance_a_dc, instance_b_dc) and entirely ignores the optional authentication parameters (user/password). It fails to compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it compares entity metadata between two SF instances, listing specific detection types: field existence, type mismatches, and annotation differences. This distinguishes it from sibling tools like compare_business_rules or compare_employees, which focus on other aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions 'Essential for cutover validation (DEV → QA → PROD)', providing a clear use case. It does not explicitly state when not to use it or name alternatives, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_picklistsA

Compare picklist values between two SF instances.

Detects values that exist in one instance but not the other, and label differences for matching values. Critical for ensuring picklist consistency during migrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
picklist_idYesPicklist ID to compare (e.g., 'eventReason', 'employeeClass')
instance_a_dcYesData center or API host for instance A
instance_b_dcYesData center or API host for instance B
instance_a_userNo
instance_b_userNo
instance_a_passwordNo
instance_b_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes what the tool detects (missing values, label differences) but does not disclose side effects, authentication requirements, or whether it is read-only. The behavioral disclosure is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, and includes additional details about what it detects. It is appropriately sized but could be structured to better highlight usage and parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, optional auth, output schema exists), the description omits prerequisites, network access needs, and authentication context. However, the output schema relieves the need to explain return values. Overall, moderately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43% (required only). The description adds no parameter-specific details, leaving optional parameters (user/password) unexplained. With low coverage, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it compares picklist values between two Salesforce instances, specifying what it detects (missing values, label differences). The verb 'compare' is precise and distinguishes it from sibling tools like 'get_picklist_values' (single instance) and other compare tools via the 'picklist' resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides usage context ('critical during migrations') but lacks explicit when-not scenarios or alternatives. With many compare siblings, explicit guidance would help, but the migration hint gives some direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_upsertA

Execute an upsert operation against an SF entity.

IMPORTANT: Defaults to dry_run=True. In dry_run mode, validates all records against metadata without making any changes. Set dry_run=False to actually write data.

Records are processed in batches. Each record is sent as an individual OData POST (upsert) to the entity endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoIf True (default), validates without writing. Set to False to actually execute.
recordsYesList of record dictionaries to upsert
batch_sizeNoRecords per batch (1-50)
data_centerNo
entity_nameYesTarget SF entity
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behaviors: dry_run default and its effect, batch processing, and individual OData POST per record. With no annotations, the description carries full burden and meets it well, though could add error handling details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short paragraphs with no filler. Each sentence adds value: purpose, important default, and processing mode. Highly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers operation, dry_run mode, and batching. With output schema present, return values are expected to be documented. Missing auth context and error handling but sufficient for understanding the tool's core behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 57%, and description adds value by explaining dry_run default and batch processing. However, it does not compensate for underspecified parameters like data_center and auth fields. Parameter semantics are adequate but not enhanced significantly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Execute an upsert operation against an SF entity', specifying the verb 'execute' and the resource. It distinguishes from sibling tools like query_odata (read-only) by being a write operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description does not mention comparable tools or exclusion criteria, 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.

find_data_anomaliesA

Detect data anomalies in SF entities.

Types:

  • 'empty': Find records where the specified field is blank/null

  • 'duplicates': Find duplicate values in the specified field

  • 'future_dates': Find date fields with values in the future

  • 'orphan': Find records referencing non-existent FO/user records

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesField to analyze
entityYesEntity to check (e.g., 'EmpJob', 'User', 'FODepartment')
data_centerNo
max_resultsNoMax anomalous records to return
anomaly_typeYesType of anomaly: 'empty' (blank required fields), 'duplicates' (duplicate values), 'orphan' (references to non-existent records), 'future_dates' (dates in the future)
auth_user_idNo
scope_filterNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description partially carries the burden. It explains the behavior for each anomaly type (e.g., finds empty fields, duplicates), but does not disclose side effects, authorization needs, or resource impact. It implies read-only behavior but doesn't confirm.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and well-structured, using a bullet list for anomaly types. It is efficient but could be more concise by integrating the types into a single sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and 8 parameters, the description covers the core detection logic but lacks context on authentication, filtering, and result interpretation. 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.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%, and the tool description adds value only for 'anomaly_type' by listing its options. Parameters like 'auth_user_id', 'scope_filter', 'auth_password', and 'data_center' are not elaborated in the description, leaving their semantics unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool detects data anomalies in SF entities and lists four specific anomaly types, making the purpose unambiguous. It distinguishes itself from sibling tools like 'audit_employee_data' by focusing on automated anomaly detection rather than manual audit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists the types of anomalies but does not provide explicit guidance on when to use this tool versus alternatives or any prerequisites. Usage is implied by the anomaly types, but no when-not-to-use or context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_country_config_guideA

Generate a configuration guide for a specific country.

Includes:

  • Required PerGlobalInfo fields and their purpose

  • Picklists that need to be configured

  • Compliance requirements and notes

  • Typical business rules to implement

  • Data validation recommendations

No SF API call needed — uses knowledge base.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoOutput language: 'en' or 'es'es
country_codeYesISO country code: COL, MEX, PER, CHL, ARG, BRA, USA, ESP

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states no API call and that it uses knowledge base, implying safe, non-destructive operation. However, it does not explicitly state read-only status or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and well-structured with a bullet list. Every sentence adds value, and the description is front-loaded with the key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, covering return structure. The description lists expected content, which is helpful. Could be slightly more explicit about whether output is text or file, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for both parameters. The description adds no extra param-specific information, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates a configuration guide for a specific country, lists specific contents, and distinguishes it from sibling tools by mentioning knowledge base usage and country-specific focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance. The 'No SF API call needed' hint is useful but does not directly contrast with alternative tools like validate_country_compliance or other generate_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_cutover_checklistA

Generate a cutover checklist for migrating configuration from DEV to PROD.

Produces an ordered checklist based on entity dependencies, including:

  • Foundation Objects in correct load order

  • Picklist configurations

  • Business rules

  • User/employee data in dependency order

Essential for go-live planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYesEntities to include in cutover (e.g., ['FOCompany', 'FODepartment', 'EmpJob'])
languageNoOutput language: 'en' or 'es'en
data_centerNo
auth_user_idNo
auth_passwordNo
include_rulesNoInclude business rules in the checklist
include_picklistsNoInclude picklists in the checklist

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It discloses that the output is an ordered checklist based on entity dependencies and lists included categories. However, it does not mention return format, side effects, permissions, or error conditions. With an output schema existing, the description adds moderate context but not full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at 5 sentences, with a clear structure: purpose statement, bullet-like list of contents, and a closing sentence. It is front-loaded and each sentence adds value, though the bullet list could be more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is an output schema, the description does not need to detail return values. However, it does not mention prerequisites, typical usage scenarios beyond go-live, or how the checklist order is determined. The description is adequate but incomplete for a tool with 7 parameters and no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 57%. The description adds meaning by explaining what the entities parameter is for (e.g., 'Entities to include') and implies the categories of output, but it does not detail all parameters (e.g., language, auth fields). The description adds some value beyond the schema but does not fully compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate a cutover checklist for migrating configuration from DEV to PROD' with specific verb and resource. It lists the types of objects included (Foundation Objects, Picklists, etc.), distinguishing it from sibling tools like generate_migration_sequence or generate_rule_doc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for go-live planning with 'Essential for go-live planning', but does not explicitly state when to use versus alternatives, nor does it provide exclusions. Sibling tools exist (e.g., generate_migration_sequence) that could overlap, but no guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_data_dictionaryB

Generate a complete data dictionary for multiple SF entities.

For each entity, produces a field-by-field reference with: name, type, label, key status, required, creatable, updatable, picklist info.

Output is structured as CSV-exportable rows for easy import into Excel.

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYesEntities to include (e.g., ['EmpJob', 'EmpCompensation', 'PerPersonal'])
languageNoOutput language: 'en' or 'es'en
data_centerNo
auth_user_idNo
auth_passwordNo
include_navigationNoInclude navigation properties

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It does not mention whether the tool is read-only, idempotent, requires authentication, or has side effects. The description focuses on output format but omits safety or mutation characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two short paragraphs and no redundant words. It front-loads the main purpose and lists output contents efficiently. It could be slightly more compact but is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 params, no annotations, output schema exists), the description covers the output format and general purpose but does not explain input parameters beyond entities. It assumes the agent knows what SF entities are valid. The presence of an output schema partially compensates, but the description should offer more detail on prerequisites or parameter usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (3 of 6 parameters have descriptions). The tool description only adds that the input is 'multiple SF entities', which is already covered by the entities parameter description. It fails to explain the purpose of language, data_center, auth fields, or include_navigation, so it does not compensate for missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates a complete data dictionary for multiple SF entities, listing field-by-field metadata like name, type, label, etc. This verb+resource combination is specific and distinguishes it from sibling tools like generate_fo_workbook or generate_mdf_import_template, which have different outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating a data dictionary of SF entities, but provides no explicit guidance on when to use this tool versus alternatives like get_entity_metadata or list_entities. No prerequisites, exclusions, or context for selection are mentioned, so it relies on the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_fo_workbookA

Generate a populated Object & Picklist Data workbook from the live SF instance.

Reads all Foundation Objects (Legal Entity, Business Unit, Division, Department, Cost Center, Job Family, Job Function, Job Code, Location, Pay Grade, Pay Range, Pay Group, Pay Component, Pay Component Group, Event Reason, Time Type, etc.) and Picklists, then writes them to a dated Excel file in exports/.

The output file format exactly matches the client template column layout. Header rows 1-2 are preserved from the template. Data starts at row 3.

Returns: { file, sheets_populated, sheets_skipped, summary, warnings }

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesNoSheet names to populate: 'all' for all 28 sheets, or a comma-separated list like 'Department,Event Reason,Location'all
data_centerNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Given no annotations, the description adequately explains the tool reads live data and writes an Excel file without modifying data. It describes the output format and return structure, but could explicitly state it is read-only and mention potential side effects like file overwriting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise and front-loaded with the main purpose. It includes a useful bulleted list of objects and the return structure. However, it could be slightly more compact by removing redundant elements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main functionality and output structure, but lacks details on error handling, authentication requirements (though auth params are listed), and default behavior. With no annotations and a moderate parameter count, more context would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 25% of parameters have descriptions in the schema. The description adds some context for the 'entities' parameter (listing sheet names) but does not elaborate on 'data_center', 'auth_user_id', or 'auth_password'. With low schema coverage, the description should compensate more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a populated Object & Picklist Data workbook from a live Salesforce instance. It lists the specific foundation objects and picklists, which distinguishes it from sibling tools like generate_data_dictionary or generate_import_template.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other generate_* tools. The description does not mention prerequisites, when not to use, or context like needing live instance access. Sibling tools are numerous and similar, but no comparative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_functional_specB

Generate a functional specification document for an SF entity/portlet.

Produces a structured spec with:

  • Entity overview and key fields

  • Field mapping (name, type, label, editability, picklist info)

  • Configured business rules (optional)

  • Navigation properties / relationships

  • Recommendations

Output is structured for easy conversion to Word/PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesPrimary entity for the spec (e.g., 'EmpJob', 'User')
languageNoOutput language: 'en' (English) or 'es' (Spanish)en
data_centerNo
auth_user_idNo
scope_fieldsNo
auth_passwordNo
include_rulesNoInclude configured business rules in the spec

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes the output structure but does not disclose behavioral traits such as whether the tool modifies data, authentication requirements, rate limits, or side effects. This lacks clarity for an agent to understand the tool's operational impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short paragraphs, front-loading the purpose and listing key contents without extraneous information. It is appropriately concise, though a bulleted list could improve scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return value details are not needed. However, the description omits context about authentication parameters (auth_user_id, auth_password) and data_center, which are relevant for an agent to configure the call. The tool specification is mostly adequate but has gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43%, with only three of seven parameters described. The description adds high-level semantics about the output but does not detail uncovered parameters like data_center, auth_user_id, scope_fields, or auth_password, which require clarification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates a functional specification for an SF entity/portlet, listing specific sections like entity overview, field mapping, business rules, etc. It distinguishes from many sibling tools that generate other types of documents (e.g., generate_data_dictionary, generate_rule_doc).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it is used when a functional spec is needed for an entity/portlet, but it does not provide explicit guidance on when to use this tool versus siblings like generate_data_dictionary or generate_rule_spec, nor does it mention 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.

generate_import_templateB

Generate an import template with correct field headers for an SF entity.

Creates a CSV-ready template structure with field names, types, and whether they are key/required fields. Optionally includes valid picklist values to help with data preparation.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
entity_nameYesTarget SF entity (e.g., 'EmpJob', 'User', 'FODepartment')
auth_user_idNo
auth_passwordNo
include_fieldsNo
include_picklist_valuesNoInclude valid picklist values as comments

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility. It discloses the tool creates a CSV-ready template and includes optional picklist values, but omits details about authentication requirements, rate limits, side effects (e.g., no data is modified), or return value structure beyond 'template'. Meets minimal expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the purpose front-loaded. No redundant information. Could optionally include a brief example or note about authentication but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description adequately explains the tool's output. However, it lacks context on prerequisite setup (e.g., authentication, entity availability), error scenarios, or how the template is generated relative to specific parameters. Adequate for a straightforward generator but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (33%), and the description adds limited parameter-level meaning. It explains 'include_picklist_values' but does not clarify 'data_center', 'auth_user_id', 'auth_password', or 'include_fields'. The description's mention of 'field names, types, and key/required fields' helps contextualize the output but not the input parameters themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates an import template for an SF entity, specifying it produces a CSV-ready template with field headers, types, and key/required fields. This distinguishes it from sibling generation tools like 'generate_mdf_import_template' which targets MDF objects, and from validation tools like 'validate_import_template'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives such as 'generate_mdf_import_template' or other import-related tools. The description implies use for data preparation but does not specify prerequisites, excluded cases, or comparative advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_mdf_import_templateB

Generate an import template for an MDF object.

Creates a CSV-ready template with key fields, required fields, and optionally all editable fields. Includes field type info as comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
object_nameYesMDF object name (e.g., 'cust_MyObject')
auth_user_idNo
auth_passwordNo
include_readonlyNoInclude read-only fields in template

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It explains the output (CSV template with fields and comments) but fails to mention authentication requirements (params include auth_user_id and auth_password), the role of data_center, or any side effects. The template generation is non-destructive, but this is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loads the main purpose. It is efficient but could be improved by including parameter context. The structure is logical and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the output schema exists (reducing need for return value explanation), the description omits key parameter details (data_center, auth) and does not differentiate from very similar sibling tools like 'generate_import_template'. The tool's complexity (5 params, 1 required) warrants more completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 40%, meaning 3 of 5 parameters lack schema descriptions. The tool description adds no extra meaning for these undocumented parameters (data_center, auth_user_id, auth_password). It does not clarify their usage or format, failing to compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates an import template for an MDF object, specifically a CSV-ready template with key fields, required fields, and optional editable fields with field type comments. This distinguishes it from sibling tools like 'generate_import_template' which may be for different object types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., 'generate_import_template' for non-MDF objects) or prerequisites like authentication or data center configuration. The description implies usage for MDF object import template generation but lacks explicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_migration_sequenceA

Calculate the correct load order for a set of entities based on dependencies.

Uses the predefined dependency graph from knowledge base to ensure Foundation Objects are loaded before employee data, employment before job info, etc.

Returns the ordered sequence with dependency notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYesList of entities to load (e.g., ['User', 'EmpEmployment', 'EmpJob', 'FOCompany'])

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that it uses a dependency graph and returns an ordered sequence with notes, indicating no side effects. It could explicitly state it is read-only, but the behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences, each providing essential information: purpose, mechanism, and output. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the input (entities list) and output (ordered sequence with notes). Given the presence of an output schema, it does not need to detail return values. It could mention error handling for cyclic dependencies, but overall is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% as the parameter already has a description. The tool description does not add extra meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calculates correct load order based on dependencies, uses a predefined dependency graph, and provides examples (Foundation Objects before employee data). It also distinguishes from sibling tools like generate_import_template by focusing on ordering logic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for determining load order in migrations, but does not explicitly state when not to use or mention alternatives. However, the context of sibling tools provides indirect guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_purge_fileA

Generate a purge/delete file for SF import.

Fetches records matching the filter and returns them with the correct key fields for deletion via SF import. Output includes CSV content ready for the SF Import tool's purge mode.

IMPORTANT: Review the records carefully before using for deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesEntity to generate purge file for
data_centerNo
filter_exprYesOData $filter to identify records to purge
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses fetching records, returning CSV content ready for SF Import purge mode, and warns to review before deletion. With no annotations, description carries disclosure burden; it's clear but could explicitly state no actual deletion occurs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences plus a warning, front-loaded with purpose. No redundant information; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose and high-level behavior. Has output schema so return details not needed. Lacks context on authentication parameters and filter syntax; adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 40% (only entity and filter_expr described). Description mentions filter but does not clarify data_center, auth_user_id, or auth_password parameters, failing to compensate for missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Generate a purge/delete file for SF import', specifying verb and resource. Distinguishes from siblings like execute_upsert (upsert) and query_odata (query) by focusing on deletion file generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for deletion via SF Import, with a warning to review records. Lacks explicit guidance on when to use vs alternatives (e.g., execute_upsert for upserts) or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_reconciliation_reportA

Generate a reconciliation report comparing expected vs actual record counts.

Queries each entity for its record count and compares against expected values from the source system. Essential for cutover day validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYesEntities to reconcile (e.g., ['User', 'EmpJob', 'EmpEmployment', 'FOCompany'])
data_centerNo
auth_user_idNo
auth_passwordNo
expected_countsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It states the tool 'queries each entity,' implying a read operation, but does not explicitly confirm read-only behavior or disclose other traits like rate limits or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two succinct sentences with front-loaded purpose and no superfluous information. Every sentence contributes to understanding the tool's function and value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the output schema exists (covering returns), the description omits details about how to use auth parameters and whether expected_counts is required. The cutover validation context is helpful but incomplete for effective invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, yet the description does not add meaning for parameters like data_center, auth_user_id, auth_password, or expected_counts beyond the schema. The 'comparing expected vs actual' hint partially covers expected_counts but leaves others unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool generates a reconciliation report comparing expected vs actual record counts, with specific verb and resource. Mentions cutover day validation, distinguishing it from siblings like reconcile_data by focusing on a specific use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the tool is 'Essential for cutover day validation,' providing context for when to use it, but it lacks explicit guidance on when not to use it or direct comparisons to sibling tools like reconcile_data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_rule_docA

Generate step-by-step implementation documentation for a business rule.

Produces a consultant-ready guide for creating the rule in the SAP SuccessFactors Rule Editor UI, including:

  • Navigation steps in Admin Center

  • Rule creation dialog values

  • Each IF/THEN condition to configure

  • HRIS Element assignment instructions

  • Event type configuration

  • Post-implementation verification steps

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoDocumentation language: 'en' for English, 'es' for Spanishen
rule_specYesThe rule specification output from generate_rule_spec
output_formatNoOutput format: 'markdown' (default), 'json', or 'text'markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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 clearly states the tool produces documentation (a non-destructive generative action) but does not disclose side effects, authentication needs, or rate limits. The content is transparent but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the main purpose, and uses a bulleted list for clarity without redundancy. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters (one nested object), and an output schema, the description provides sufficient context about the output contents and parameter sources. It does not cover error handling or edge cases but is adequate for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already covers each parameter's meaning. The description adds context (e.g., rule_spec comes from generate_rule_spec) but does not significantly extend parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Generate') and clearly identifies the resource ('step-by-step implementation documentation for a business rule'). It lists detailed contents, differentiating it from sibling tools like generate_rule_spec or generate_rule_test.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a pipeline use (accepting output from generate_rule_spec) but does not explicitly state when to use this tool vs alternatives. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_rule_specA

Generate a complete Business Rule specification from a natural language requirement.

This tool:

  1. Queries the SF instance metadata to identify relevant fields

  2. Validates all referenced fields and picklist values exist

  3. Builds IF/THEN/ELSE condition logic

  4. Generates naming, execution notes, and best practice recommendations

The output can be passed to generate_rule_doc (documentation) and generate_rule_test (test cases).

Example requirement: "When saving Job Information, if the employee's country is Peru and employee class is Full-Time, set pay group to PG_PE_FT. If Part-Time, set to PG_PE_PT."

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_nameNo
event_typeYesEvent type: 'onSave', 'onChange', 'onInit', or 'validate'
base_objectYesBase object (e.g., 'JobInformationModel', 'CompInfoModel')
data_centerNo
requirementYesNatural language description of the business rule requirement
auth_user_idNo
auth_passwordNo
country_scopeNo
rule_scenarioYesRule scenario (e.g., 'Rules for Employee Central', 'Event Reason Derivation')
conditions_hintNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description covers the process: queries metadata, validates fields, builds logic. It omits details on authentication or rate limits, but the steps are transparent enough for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear opening statement and a bulleted list of steps. Every sentence adds value, and the example requirement illustrates usage without extra fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 params, 4 required) and presence of an output schema, the description covers the core workflow and link to other tools. It could mention when auth params are needed and handling of edge cases, but it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 40%, and the description adds context via an example but does not detail individual parameters beyond existing schema descriptions. Parameters like 'conditions_hint' and 'data_center' remain under-explained, requiring the agent to infer their usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the tool's purpose: generating a Business Rule specification from natural language. It lists specific steps (queries metadata, validates fields, builds logic) and distinguishes from siblings by focusing on rule spec creation, with an example.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the output can be used with generate_rule_doc and generate_rule_test, providing a workflow context. However, it does not explicitly state when to use this tool versus other generation tools like generate_functional_spec, though the purpose is distinct enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_rules_workbookB

Populate the Employee Central Rules sheet in the Employee Field Data & RBP workbook.

Reads all Business Rules from RuleHeaderBean and maps them to the 8 columns: HRIS Element / Object | Rule Name | Rule Trigger Type | Field to Trigger onChange Rule | Functional Description | Rule Description | Rule Base Object | Rule ID

All other sheets in the RBP workbook are preserved unchanged (manual).

Returns: { file, rules_count, warnings }

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
auth_user_idNo
auth_passwordNo
scenario_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions reading all business rules from RuleHeaderBean, mapping to columns, and preserving other sheets unchanged, which gives some insight. However, it omits side effects (e.g., overwriting) and access requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences and a clear list of columns. It front-loads the main action, though the parameter list could be more structured within the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description fails to explain the purpose of any parameters, which are critical for authentication and filtering. The tool's context (HRIS system) is implied but not fully elaborated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the four parameters (data_center, auth_user_id, auth_password, scenario_filter). Users would have no idea what these parameters mean or how to use them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it populates the Employee Central Rules sheet in a specific workbook, listing the 8 columns. This distinguishes it from sibling tools like generate_rule_doc or generate_rule_spec, which generate different artifacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it is for generating a rules workbook but does not explicitly state when to use it or provide alternatives. With many sibling generation tools, explicit guidance on when to choose this over others would be beneficial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_rule_testA

Generate a comprehensive test case matrix for a business rule.

Produces test cases covering:

  • Each condition path (positive scenarios)

  • Edge cases (empty fields, null values, boundary conditions)

  • Negative cases (conditions that should NOT trigger the rule)

  • Coverage matrix showing which paths are tested

Each test case includes preconditions, action, and expected results.

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_specYesThe rule specification output from generate_rule_spec
include_edge_casesNoInclude edge case test scenarios
include_negative_testsNoInclude negative/no-match test cases

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It explains that test cases cover condition paths, edge cases, negative cases, and a coverage matrix, and that each test case includes preconditions, action, and expected results. This is good behavioral context without annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, uses bullet points for clarity, and front-loads the purpose. Every sentence adds meaningful detail without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (not shown but stated) and three parameters, the description provides sufficient context: it explains inputs, coverage types, and test case structure. No critical gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents all parameters. The description adds value by specifying that rule_spec comes from generate_rule_spec and by clarifying the purpose of include_edge_cases and include_negative_tests beyond their default values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate a comprehensive test case matrix for a business rule' and lists coverage types. It implicitly relates to sibling tools like generate_rule_spec but does not explicitly differentiate from siblings such as simulate_rule_impact or trace_rule_execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after obtaining a rule spec from generate_rule_spec, as indicated in the parameter schema. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_test_scriptB

Generate an end-to-end test script for a specific HR scenario.

Produces step-by-step test instructions including:

  • Preconditions

  • Step-by-step actions

  • Expected results at each step

  • Business rule validations

  • Country-specific checks

No SF API calls needed — uses knowledge base.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNo
languageNoOutput language: 'en' or 'es'en
scenarioYesTest scenario: 'hire', 'promote', 'transfer', 'terminate', 'rehire', 'compensation_change', 'org_change', 'full_lifecycle'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'No SF API calls needed — uses knowledge base', which is a key behavioral trait. However, with no annotations provided, more disclosure (e.g., permissions, side effects, robustness) would be expected for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the main purpose, and uses a bulleted list for structure. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no annotations, and an output schema, the description covers the output structure but lacks details on output format, edge cases, or clarification of boundaries with similar tools. Adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67% (2 of 3 parameters have descriptions). The description adds minimal parameter context beyond the schema, only implying scenario is the core input. For moderate coverage, the description does not significantly enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate an end-to-end test script for a specific HR scenario' and lists what it includes (preconditions, steps, expected results, etc.). However, it does not explicitly differentiate from sibling tools like generate_rule_test, which may overlap in purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., generate_rule_test, generate_functional_spec). No context on prerequisites or when not to use it, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_workflow_workbookB

Generate a populated Workflow Notifications & Messages workbook from the live SF instance.

Populates: Workflows Tab, WF Processes, Dynamic Roles, Workflow Groups, Alert Messages, Message Definitions, Email Notification Templates.

Workflow Configuration Settings is preserved unchanged (manual — no OData API).

Returns: { file, sheets_populated, sheets_skipped, summary, warnings }

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It discloses that data is from a live instance, lists populated items, and notes one setting is preserved. However, it lacks safety info (e.g., read-only vs mutation), authentication needs beyond parameters, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with clear purpose first, then bullet-like list of populated items, and return object. Every sentence adds value, though no parameter info slightly reduces efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists and description matches return fields, but three parameters are completely undocumented. For a generation tool, parameter context is crucial; current level is adequate for output but insufficient for input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and description provides no explanation for the three parameters (data_center, auth_user_id, auth_password). Description must compensate but fails to add any meaning beyond parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool generates a workbook for Workflow Notifications & Messages from a live SF instance. Specifically lists populated sheets and distinguishes from sibling tools like generate_fo_workbook or generate_rules_workbook.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implicitly indicates use for workflow workbook generation but does not provide explicit when-to-use or when-not-to-use guidance relative to 50+ sibling tools. No exclusions or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_compensation_analyticsA

Get compensation statistics (average, min, max, median compa-ratio and range penetration) grouped by a scope field.

Queries EmpCompensation joined with EmpJob for the scope field. Note: Limited to 5000 records for performance.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
scope_fieldYesField to scope analysis by: 'department', 'company', 'division', 'location', 'countryOfCompany', 'jobCode'
scope_valueNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses the 5000-record limit for performance and the underlying query join (EmpCompensation + EmpJob), which is transparent. However, it does not mention authentication requirements (implied by auth parameters) or whether the operation is read-only, though the name suggests it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences: first states purpose, second explains data source, third notes a performance limitation. It is front-loaded and contains no superfluous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description does not need to detail return values. It covers the key behavioral context (5000-record limit, join, scope field options). However, it omits explanation of authentication parameters and the optional data_center/scope_value fields, which could be helpful for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (20%). Only the scope_field parameter is described with allowed values in the description. Other parameters (data_center, scope_value, auth_user_id, auth_password) lack any semantic explanation beyond schema types, leaving the agent to infer their meaning. The description adds some value for scope_field but does not compensate for the overall low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves compensation statistics (average, min, max, median compa-ratio, range penetration) grouped by a scope field. It specifies the data source (EmpCompensation joined with EmpJob) and the scope_field parameter's allowed values, making the purpose distinct from sibling tools like get_headcount or get_employee_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly guide when to use this tool versus alternatives. It mentions a 5000-record limit for performance but lacks context on when this tool is appropriate compared to other analytics queries. No exclusions or alternative tool references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_country_specific_fieldsA

Get country-specific fields for a PerGlobalInfo entity.

Returns the required fields, common picklists, compliance notes, and typical business rules for the specified country. Covers: COL (Colombia), MEX (Mexico), PER (Peru), CHL (Chile), ARG (Argentina), BRA (Brazil), USA (United States), ESP (Spain).

Optionally fetches live metadata from the instance to compare against the knowledge base.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
auth_user_idNo
country_codeYesISO country code: COL, MEX, PER, CHL, ARG, BRA, USA, ESP
auth_passwordNo
include_live_metadataNoAlso fetch metadata from the live instance for the country entity

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It mentions an optional feature to fetch live metadata for comparison, which is useful. However, it does not specify if the tool is read-only, any required permissions, or potential side effects. The description is partially transparent but leaves gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences) and well-structured. It starts with the main action, then lists what is returned, followed by supported countries in a bullet-like format. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so detailed return value documentation is not needed. The description covers the main returned components (fields, picklists, compliance, rules) and mentions an optional feature. Given the moderate complexity, it is sufficiently complete, though the optional live metadata feature could be elaborated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 40% (only country_code and include_live_metadata have descriptions). The tool description adds context for country_code by listing valid codes, but does not explain auth parameters (data_center, auth_user_id, auth_password). Since coverage is low, the description should compensate but only partly does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get country-specific fields for a PerGlobalInfo entity.' It lists the supported countries and what is returned (required fields, common picklists, compliance notes, typical business rules). This distinguishes it from siblings like get_entity_metadata or get_picklist_values which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing country-specific field definitions for PerGlobalInfo, but does not explicitly state when not to use it or suggest alternatives. Siblings like validate_country_compliance or get_picklist_values could be relevant in related contexts, but no guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_employee_historyB

Get the history of changes for an employee.

Retrieves effective-dated records ordered by date descending, showing the timeline of changes. Supports job (EmpJob), compensation (EmpCompensation), and employment (EmpEmployment) history.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum records to return (1-50)
user_idYesThe userId to retrieve history for
data_centerNo
auth_user_idNo
history_typeNoType of history: 'job', 'compensation', 'employment'job
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that records are effective-dated and ordered descending, and lists supported history types. However, it does not mention authentication requirements (auth parameters) or any side effects; for a read operation, this is sufficient 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each with clear purpose: intent, behavior, and supported types. No redundant information, well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not analyzed here), the description sufficiently explains the tool's purpose and behavior (timeline of changes, ordering). It could mention pagination via limit, but overall it's complete for a history retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (3 of 6 parameters documented). The description adds meaning for the 'history_type' parameter by mapping to EmpJob, EmpCompensation, EmpEmployment, which goes beyond the schema's enum labels. For other parameters, it adds no new info beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the history of changes for an employee' with a specific verb and resource. It also enumerates three history types (job, compensation, employment), but does not explicitly differentiate from siblings like get_employee_profile or audit_employee_data, so it lacks clear sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., get_employee_profile, audit_employee_data). The description only describes functionality, with no explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_employee_profileA

Get a complete employee profile by assembling data from multiple SF entities.

Fetches User, EmpJob, EmpCompensation, EmpEmployment, PerPersonal, PerEmail, and PerPhone in parallel for maximum performance.

Sections can be filtered to reduce API calls. Effective-dated entities (job, compensation, personal) use as_of_date for point-in-time queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesThe userId of the employee to retrieve
sectionsNo
as_of_dateNo
data_centerNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that multiple entities are fetched in parallel for performance and that sections can be filtered, but does not discuss error behavior, authentication requirements, or data modification implications. The description implies read-only but does not explicitly state it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise, well-structured in three paragraphs: purpose, entities and performance, filtering and as_of_date. Every sentence adds value. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description lacks context about the auth parameters (data_center, auth_user_id, auth_password), which are critical for execution. With no annotations, the agent needs to know how these affect the call. The description does not cover error conditions or data freshness. Given the complexity (6 params, composite fetch), this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (only user_id described). The description adds meaning for sections (filtering to reduce API calls) and as_of_date (point-in-time queries), which are not documented in the schema. However, the auth parameters (data_center, auth_user_id, auth_password) remain undescribed. Overall, description improves parameter understanding but leaves gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it retrieves a complete employee profile by assembling data from multiple SF entities, listing the specific entities. This distinguishes it from siblings like get_employee_history, which focuses on historical changes, or search_employees for searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains that sections can be filtered to reduce API calls and that effective-dated entities accept as_of_date for point-in-time queries, but does not provide explicit guidance on when to use this tool versus alternatives like get_compensation_analytics or get_org_chart. No exclusions or when-not-to-use mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_entity_metadataA

Retrieve structured metadata for a specific SAP SuccessFactors entity.

Returns the entity's properties (fields), their types, whether they are editable, required, or picklist-based, plus navigation properties (relationships).

Use this to understand what fields are available on an entity before building business rules that reference those fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
entity_nameYesName of the SF entity (e.g., 'EmpJob', 'User', 'FOCompany')
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that the tool is read-only (returns metadata) and lists the type of information returned (properties, navigation). However, it does not mention authentication behavior or data center usage, which are implied by parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that front-load the purpose and follow with usage advice. No redundant information: every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown but implied) and sibling tools, the description covers the core functionality and use case. It could mention default values or authentication handling, but it is sufficient for the primary task of metadata retrieval.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25% (only entity_name described). The description does not provide any additional meaning for the three undocumented parameters (data_center, auth_user_id, auth_password), leaving the agent with insufficient guidance for these fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves structured metadata (properties, types, editable, required, picklist, navigation) for an SAP SuccessFactors entity. It uses specific verbs ('retrieve', 'returns') and distinguishes from siblings like list_entities by focusing on metadata of a single entity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using the tool to understand available fields before building business rules. While it does not exclude other tools or mention when not to use it, the context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_headcountB

Get headcount grouped by a specific field.

Aggregates employee counts by department, company, location, country, etc. Computed client-side since OData v2 doesn't support $apply/groupby.

Note: For large organizations, results are based on up to 5000 active employee records.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNo
group_byYesField to group by: 'department', 'company', 'division', 'location', 'countryOfCompany', 'employmentType', 'employeeClass'
data_centerNo
auth_user_idNo
auth_passwordNo
include_inactiveNoInclude terminated/inactive employees

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that results are based on up to 5000 active records and that computation is client-side due to OData limitations. However, without annotations, missing details on authentication, rate limits, or behavior when limits are exceeded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with the primary action stated in the first sentence. The client-side computation note and limit warning add essential context without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema, the description omits key context for a 6-parameter tool: how to apply filters, use auth parameters, and what happens with large datasets. The limit disclosure is helpful but insufficient for full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (2 of 6 parameters described). The description repeats examples that already appear in the group_by parameter description but adds no meaning for filters, auth fields, or data_center. It does not compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves headcount grouped by a specific field, with examples like department, company, location, country. It is distinct from sibling tools, which focus on individual records, analytics, or other aggregations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like search_employees or get_employee_profile. The note about client-side computation explains a limitation but does not advise on selection criteria or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mdf_object_definitionA

Get complete metadata for an MDF object.

Returns all fields, types, labels, editability flags, picklist associations, and navigation properties. Works for both custom (cust_*) and standard MDF objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
object_nameYesMDF object name / entity name (e.g., 'cust_MyObject', 'Position')
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It lists return contents but fails to disclose behavioral traits such as side effects (none expected), authorization needs, rate limits, or output size. It also doesn't mention read-only nature or potential errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three brief sentences. First sentence states the main purpose, second lists return contents, third notes scope. No fluff, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (true), the description need not explain return values. It provides sufficient context about the object types (custom and standard). However, it could be more complete by noting that it's a read operation and mentioning the tool's relationship to other metadata tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (only object_name has description). The description adds meaning by explaining object_name as 'MDF object name / entity name' and notes it works for custom objects. However, it doesn't detail the auth parameters or data_center, leaving ambiguity about their purpose and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets 'complete metadata for an MDF object' with specific verb and resource. It distinguishes from siblings like list_mdf_objects (listing) and get_entity_metadata (generic) by specifying the object type (cust_* and standard).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving metadata but provides no explicit guidance on when to use this tool versus alternatives (e.g., list_mdf_objects for listing, get_entity_metadata for generic metadata). No when-not-to-use or context for selection among 50+ siblings.

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 the organizational chart centered on a specific employee.

Navigates upward through managerId to show the management chain, and downward to show direct reports. Uses EmpJob for manager relationships and User for names/titles.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesThe userId to center the org chart on
depth_upNoLevels of managers above (0-5)
depth_downNoLevels of direct reports below (0-3)
data_centerNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description mentions internal data sources (EmpJob, User) and navigation direction, but does not disclose authentication requirements, rate limits, or potential performance implications of depth values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with purpose. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return value explanation is not needed. Description covers main functionality and data sources, missing only minor details like format representation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (3 of 6 params described). Description explains user_id, depth_up, depth_down but not data_center, auth_user_id, auth_password. Partially compensates but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool gets an org chart centered on a specific employee, with specifics about upward/downward navigation. Distinguishes from siblings like get_org_structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies use for centering org chart on an employee but does not explicitly contrast with similar tools like get_org_structure or get_employee_profile. No when-not-to or alternatives provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_org_structureB

Get organizational structure at a specific level.

Queries Foundation Object entities (FOCompany, FODepartment, etc.) to show the organizational hierarchy. Can optionally include headcount per unit by cross-referencing with EmpJob.

Levels: company, division, department, business_unit, cost_center, location, job_code, pay_grade.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesOrganizational level to query: 'company', 'division', 'department', 'business_unit', 'cost_center', 'location', 'job_code', 'pay_grade'
active_onlyNoOnly return active records
data_centerNo
parent_codeNo
auth_user_idNo
auth_passwordNo
include_headcountNoInclude employee headcount per unit (requires additional API calls)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the full burden. It notes that including headcount requires additional API calls, which is a behavioral trait. However, it does not disclose authentication requirements, data freshness, rate limits, or side effects. The auth parameters in the schema are not explained in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at four sentences. It front-loads the main purpose and then provides necessary details. Every sentence adds value with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters and an output schema), the description covers the core functionality well. However, it does not explain how parameters like 'parent_code' or 'data_center' affect the query, and it lacks guidance on typical use cases or limitations. The output schema exists, so return values are not required in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43%, meaning over half of parameters lack schema descriptions. The description adds value by listing valid values for 'level' and explaining 'include_headcount' (cross-referencing with EmpJob). However, it does not clarify the purpose or format of 'data_center', 'parent_code', or the auth fields, leaving significant gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves organizational structure at a specific level by querying Foundation Object entities. It lists the available levels and mentions optional headcount inclusion, which distinguishes it from siblings like get_org_chart (likely full hierarchy) and get_headcount (aggregate count). However, it does not explicitly name alternatives, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (need hierarchical data at one level) but does not explicitly state when not to use it or mention alternative tools. The mention of optional headcount hints at use cases, but 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_permission_rolesA

List permission roles configured in the SAP SuccessFactors instance.

Queries RBPRole (Role-Based Permissions) and/or FODynamicRole entities. Useful for understanding the security model and role assignments.

ParametersJSON Schema
NameRequiredDescriptionDefault
role_nameNo
role_typeNoType of role: 'rbp' for RBP roles, 'dynamic' for dynamic roles, 'all' for bothall
data_centerNo
max_resultsNoMaximum results per type (1-100)
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description reveals it queries RBPRole and FODynamicRole entities, which is useful, but doesn't disclose other behavioral traits like authentication requirements or performance implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that directly state the purpose and the entities involved. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values are documented elsewhere. However, the description lacks context on authentication parameters and the data_center parameter, which are part of the input schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 33% schema description coverage, the description adds no parameter-specific meaning. It does not explain role_name, data_center, auth_user_id, or auth_password beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists permission roles, specifies the entities queried (RBPRole and FODynamicRole), and distinguishes it from sibling tools by focusing on security model roles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says it is useful for understanding security model and role assignments, but doesn't provide explicit when-to-use or when-not-to-use guidance, nor alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_picklist_valuesA

Get all options (values) for a specific picklist in SAP SuccessFactors.

Picklists are dropdown/select fields. Returns the external code (API value), label (display text), and status for each option.

Use this to validate that picklist values referenced in business rules actually exist in the target instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
picklist_idYesThe picklist ID (e.g., 'payGroup', 'employeeClass', 'eventReason')
auth_user_idNo
auth_passwordNo
status_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses output fields but does not mention read-only nature, authentication requirements, or potential side effects. Adequate 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, 60 words, front-loaded with purpose. No redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so description need not detail return values. Covers core functionality and use case. Lacks explanation of optional parameters, but acceptable for a straightforward tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (20%) and description only explains picklist_id via example values. Does not clarify data_center, auth_user_id, auth_password, or status_filter, leaving them opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb (Get) and resource (options for a picklist) with specific details (external code, label, status). Distinct from siblings like compare_picklists and list_entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete use case ('validate that picklist values referenced in business rules actually exist'). Does not explicitly mention when not to use or alternatives, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_position_detailsB

Get position details from Position Management.

Retrieve specific positions or filter by department/vacancy status. Returns position code, name, department, job code, incumbent, and vacancy status.

ParametersJSON Schema
NameRequiredDescriptionDefault
departmentNo
data_centerNo
max_resultsNoMaximum results (1-200)
vacant_onlyNoOnly return vacant positions
auth_user_idNo
auth_passwordNo
position_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It hints at a read operation by stating 'Get position details' and listing return fields, but it does not explicitly confirm no side effects, mention authentication requirements, or discuss rate limits. The description is adequate 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short (two sentences) and front-loaded with the core purpose. It is well-structured and avoids unnecessary repetition, though it could be slightly more concise by merging the first two sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (as per context signals), the description need not detail return values extensively, but it does mention the return fields. The description covers the main use cases but lacks information about authentication parameters, pagination (max_results is mentioned only in schema), and error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions filtering by department and vacancy status, which maps to two parameters (department, vacant_only). However, with 29% schema description coverage, the description does not compensate for the other five parameters (data_center, auth_user_id, auth_password, position_code). It adds limited meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 'position details' from 'Position Management'. It specifies retrieving specific positions or filtering by department/vacancy status. However, it does not explicitly differentiate from sibling tools like get_employee_profile or get_org_chart, which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving positions with optional filters, but it does not provide guidance on when to use this tool versus alternatives (e.g., search_employees) or when not to use it. No exclusion criteria or context are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_business_rulesB

List business rules configured in the SAP SuccessFactors instance.

Queries the RuleHeaderBean entity to show configured rules. Filter by scenario, base object, or search by name. Useful to understand what rules are already in place before creating new ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
max_resultsNoMaximum results (1-200)
name_searchNo
auth_user_idNo
auth_passwordNo
scenario_filterNo
base_object_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, or side effects. Auth parameters are present but unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, but the second sentence is somewhat dense. It could be restructured for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, return values are covered. However, with 7 parameters and low schema coverage, more details on auth and data_center would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 14% (only max_results has a description). The description explains three filter parameters (scenario, base_object, name_search) but ignores auth_user_id, auth_password, and data_center, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists business rules and mentions filtering options, but does not differentiate from sibling list tools like list_entities or list_foundation_objects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a usage hint ('useful to understand what rules are already in place before creating new ones'), but does not explicitly state when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_entitiesA

List all available OData entities in the SAP SuccessFactors instance.

Returns entity set names from $metadata. Optionally filter by prefix (e.g., 'Emp' for employment entities, 'FO' for Foundation Objects, 'Per' for person entities).

Note: Fetching full metadata can be slow (5-30 seconds). Use filter_prefix or query a specific entity with get_entity_metadata instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_centerNo
auth_user_idNo
auth_passwordNo
filter_prefixNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses a key behavioral trait: fetching full metadata can be slow (5-30 seconds). This helps the agent set expectations. It does not explicitly state read-only nature, but it is implied. The description adds useful performance context beyond what annotations would provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the primary purpose, then filter options, and finally a performance note. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main function, filtering, and performance, but lacks explanation for three of four parameters (data_center, auth params). While an output schema exists, the missing parameter descriptions reduce completeness for a 4-param tool with zero schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 only explains filter_prefix with examples, leaving data_center, auth_user_id, and auth_password undescribed. These parameters are common but still need semantic context to guide proper use.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all available OData entities from SAP SuccessFactors, specifying it returns entity set names from $metadata and providing examples of prefixes. It distinguishes itself from a sibling tool (get_entity_metadata) by mentioning it as an alternative for querying a specific entity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises when to use the tool (list all entities, optionally filter by prefix) and when not to (when slow performance is a concern, suggesting to use get_entity_metadata instead). It provides alternative guidance and context for efficient usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_foundation_objectsA

List Foundation Objects of any type.

A flexible tool to query any Foundation Object entity. Use friendly names like 'company', 'department', 'location' or direct entity names like 'FOCompany'.

Foundation Objects are the reference/master data that define the organizational structure in SuccessFactors.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectNo
fo_typeYesFoundation Object type: 'company', 'division', 'department', 'business_unit', 'cost_center', 'location', 'job_code', 'pay_grade', or direct entity name like 'FOCompany'
active_onlyNoOnly return active records
data_centerNo
filter_exprNo
max_resultsNoMaximum results (1-500)
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It mentions Foundation Objects are reference/master data, but does not disclose default pagination, return format, authentication needs, or side effects. The schema hints at behavior (max_results) but the description does not.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, no filler, front-loaded with the core action. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool has 8 parameters and an output schema, the description only covers the concept of Foundation Objects. It omits details on return structure, pagination, and authentication, making it incomplete for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 38%. The description adds value for fo_type (friendly names) but does not explain other parameters like filter_expr, select, or auth credentials. With low coverage, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Foundation Objects of any type, and explicitly mentions it can use friendly names or direct entity names. This distinguishes it from sibling tools like list_mdf_objects and get_org_structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on how to specify the FO type (friendly names or direct names), but does not explicitly state when to use this tool versus alternatives like list_mdf_objects. It gives context but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_mdf_objectsA

List all MDF objects configured in the SF instance.

Categories:

  • 'custom': Only cust_* objects (custom MDF)

  • 'standard': Only standard SAP MDF objects

  • 'all': Everything

Many instances have 50+ custom MDF objects with unclear purposes. This tool helps inventory them.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter: 'custom' for cust_* objects, 'standard' for SAP standard, 'all' for everythingcustom
data_centerNo
name_searchNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It explains categories and general behavior (listing all MDF objects) but does not disclose authentication requirements or side effects. It adds value beyond the schema by explaining the filter purpose but lacks full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized: three sentences front-load the purpose, then detail categories, then add context. It is efficient but could omit the last sentence without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given moderate complexity (5 params, no required) and existence of an output schema, the description covers the main parameter and context but omits other parameters. It is adequate for basic use but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (20%). The description adds meaning for the 'category' parameter by defining 'custom', 'standard', 'all' and mapping them to object types. However, it ignores other parameters (data_center, name_search, auth_user_id, auth_password), leaving them unexplained beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all MDF objects configured in the SF instance,' specifying the verb (list) and resource (MDF objects). It differentiates from siblings like get_mdf_object_definition by focusing on the full set and provides a category filter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: it inventories MDF objects, especially in instances with many custom objects. It implies when to use (to explore available objects) but does not explicitly mention when not to use or alternatives, though sibling tools serve different purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_odataA

Execute a flexible OData query against any SAP SuccessFactors entity.

Supports filtering, field selection, navigation expansion, pagination, and sorting.

Examples:

  • Active employees: entity='EmpEmployment', filter="endDate eq datetime'9999-12-31T00:00:00'"

  • Company details: entity='FOCompany', select='externalCode,name,country'

  • Job info with company: entity='EmpJob', expand='companyNav', top=5

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMax records to return (1-1000)
skipNo
entityYesOData entity name (e.g., 'EmpJob', 'User', 'FOCompany')
expandNo
filterNo
selectNo
orderbyNo
data_centerNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It correctly states supported features but does not disclose potential side effects, rate limits, authentication requirements (though auth params are in schema), error behavior, or performance implications. The description is positive but lacks behavioral caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a clear opening sentence, a bullet list of capabilities, and concrete examples. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, no annotations, known output schema), the description covers the main OData query capabilities. However, it does not explain authentication parameter usage or return format beyond what output schema might provide. Overall, it is fairly complete but could mention error handling or limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 10 parameters but only 20% have descriptions (entity alone). The description adds value through examples (e.g., filter, select, expand, top) but does not explain all parameters individually. For a tool with many parameters, more detailed explanation of each parameter's purpose and syntax would improve usability.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'Execute a flexible OData query against any SAP SuccessFactors entity.' It uses a specific verb (execute) and resource (OData query against entities), and the examples demonstrate distinct capabilities not offered by sibling tools like list_entities or search_employees.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides examples and lists supported features (filtering, selection, expansion, pagination, sorting), which implicitly guide usage. However, it lacks explicit guidance on when to use this tool versus alternative tools (e.g., get_employee_profile for employee details) and does not indicate 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.

reconcile_dataB

Reconcile data after migration — compare expected vs actual record counts.

Can reconcile at entity level (total count) or grouped by a field (e.g., count per company, per department). Essential for cutover day validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesEntity to reconcile
data_centerNo
filter_exprNo
auth_user_idNo
auth_passwordNo
expected_countNo
group_by_fieldNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavioral traits. It explains entity vs grouped reconciliation but omits critical details: authentication is required (auth_user_id, auth_password), data_center parameter, and any side effects or requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences plus a critical line about usage. Every sentence adds value; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description doesn't hint at output structure or what the reconciliation result looks like. With 7 parameters and 14% schema coverage, the description should provide more context on optional parameters like filter_expr and expected_count.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14%. Description adds meaning for 'entity' and 'group_by_field' but ignores 5 other parameters (data_center, filter_expr, auth_user_id, auth_password, expected_count). Does not compensate for low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'reconcile' with specific resource 'data after migration' and measurable outcome 'compare expected vs actual record counts'. Distinguishes from siblings like 'generate_reconciliation_report' by focusing on count comparison rather than report generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States it's 'Essential for cutover day validation', which implies when to use. But lacks explicit when-not-to-use guidance or comparison to similar tools like 'find_data_anomalies' or 'query_odata'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_go_live_checksB

Run pre-go-live validation checks on the SF instance.

Validates:

  • Critical: Employees without jobs, orphan records, missing key dates

  • Important: Vacant positions with incumbents, self-referencing managers, inactive FOs in use

  • Recommended: Email/phone completeness, compensation completeness

Returns a pass/fail report for each check with sample affected records.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_sampleNoMax sample records to return per check
data_centerNo
auth_user_idNo
auth_passwordNo
checklist_typeNoCheck severity to run: 'critical', 'important', 'recommended', 'all'all

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries the burden. It discloses that the tool returns a pass/fail report with sample affected records, but does not mention authentication needs (though auth params exist), side effects, or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three sentences covering purpose, check categories, and output format. It is front-loaded and wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters (0 required), an output schema exists, and no annotations, the description covers purpose and output adequately but omits parameter details and usage guidance, leaving gaps for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 40%, and the description adds no information about parameters. It does not explain the meaning of auth credentials, data_center, or how checklist_type maps to the listed categories.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Run pre-go-live validation checks on the SF instance' and lists specific check categories (critical, important, recommended), distinguishing it from sibling tools that perform more granular validations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for pre-go-live validation but does not explicitly explain when to use this tool over alternatives like validate_country_compliance or find_data_anomalies. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_employeesA

Search for employees using natural language queries.

Supports searching by:

  • Name: "John", "John Smith", "Smith"

  • Department: "department 40000013", "dept HR"

  • Country: "country COL", "employees in Colombia"

  • Status: "active employees", "terminated employees"

  • Location: "location NYC"

  • Manager: "reports to admin", "manager 12345"

  • Company: "company 1000"

  • User ID: "user admin"

Combinations work too: "active employees in department 40000013"

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural language search query. Examples: 'John Smith', 'department 40000013', 'employees in Colombia', 'active employees in location NYC'
data_centerNo
max_resultsNoMaximum results to return (1-100)
auth_user_idNo
auth_passwordNo
search_fieldsNo
include_inactiveNoInclude terminated/inactive employees

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It lacks information on side effects (e.g., idempotency, read-only nature), authentication requirements (despite auth params), rate limits, or behavior on missing queries. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, well-structured with bullet points, and provides relevant examples without unnecessary text. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters and natural language input, the description covers usage comprehensively with examples. However, it lacks behavioral details (auth, idempotency) and does not explain how search matching works. Output schema exists but not included; overall adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the schema by listing supported query fields and examples, but it does not explain parameters like data_center, search_fields, or auth params. Schema description coverage is 43%, so the description partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search for employees using natural language queries' and enumerates specific searchable fields with examples, effectively distinguishing it from sibling tools like get_employee_profile or get_employee_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit searchable fields and example queries, including combinations. However, it does not discuss when not to use this tool or compare with alternatives, slightly limiting guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_rule_impactA

Simulate the impact of a business rule against real employee data.

Evaluates the rule's conditions against actual employee records and shows which employees would be affected and what changes would be made. This is a read-only simulation — no data is modified.

Useful for impact analysis before deploying a new rule.

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_specYesRule specification (from generate_rule_spec) with conditions and actions
data_centerNo
sample_sizeNoMaximum employees to evaluate (1-1000)
auth_user_idNo
auth_passwordNo
target_populationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It explicitly states 'read-only simulation — no data is modified,' which is the most critical behavioral trait. It also explains that it evaluates conditions and shows affected employees and changes. More detail on authentication or prerequisites would improve transparency, but the core behavior is well communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with three short paragraphs that immediately communicate the tool's purpose and key characteristics. No unnecessary words, and the read-only nature is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters, 1 required, nested objects, and an output schema, the description is somewhat minimal. It covers the core purpose and read-only trait, but omits details about required parameters like 'rule_spec' and authentication parameters. The output schema may compensate, but the description itself does not fully prepare an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, meaning most parameters lack descriptions. The tool description adds no additional information about parameters, failing to compensate for the low coverage. For example, 'data_center', 'auth_user_id', and 'auth_password' are mentioned in the schema but not explained in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it simulates the impact of a business rule on real employee data, showing affected employees and changes. It specifies 'read-only simulation' and is distinct from sibling tools like 'trace_rule_execution' or 'generate_rule_spec'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Useful for impact analysis before deploying a new rule,' giving a clear context of when to use this tool. It does not provide when-not-to-use guidance or compare to alternatives, but the context is sufficient for basic use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trace_rule_executionA

Trace which business rules would apply to an employee for a given event.

Fetches the employee's current data, then checks each configured rule's conditions against that data. Shows which rules match, which don't, and why. Invaluable for debugging "why did this field get this value?"

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesEmployee userId to trace rules for
event_typeYesEvent type: 'onSave', 'onChange', 'onInit', 'validate'
base_objectYesBase object (e.g., 'JobInformationModel', 'CompInfoModel')
data_centerNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that it fetches current employee data, checks rule conditions, and shows match results with reasons. Implicitly indicates read-only behavior (no mention of modifications). Could add more about side effects or data freshness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, no wasted words. Front-loaded with action and purpose, then explains mechanics, then provides use case. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return structure is covered. Description explains what the tool does and its debugging value. Missing details on prerequisites (e.g., rule configuration must exist) and any limitations. Adequate for a debugging tool with good sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%, with optional parameters (data_center, auth credentials) lacking descriptions. The description does not clarify these parameters' roles, relying on the schema which is incomplete. Added parameter semantics are minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specifies verb 'trace' and resource 'business rules for an employee event'. Distinguishes from sibling 'list_business_rules' by explaining it evaluates conditions against live data, not just listing. Includes debugging context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames as debugging 'why did this field get this value?', but does not specify when not to use or compare directly to other siblings. Context is clear enough for an agent to infer usage scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_country_complianceC

Validate that employees in a country have all required country-specific fields.

Checks each employee against the country's required fields (from knowledge base) and reports which fields are missing or empty. Essential for payroll and compliance readiness.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idsNo
data_centerNo
auth_user_idNo
country_codeYesISO country code: COL, MEX, PER, CHL, ARG, BRA, USA, ESP
auth_passwordNo
max_employeesNoMax employees to check (1-500)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the check mechanism and reporting of missing fields, but does not mention permissions, authentication requirements (implied by auth_user_id and auth_password parameters), or whether the tool modifies data. The existence of an output schema partially offsets the lack of return value details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the primary action. It is concise and to the point, but could be slightly more structured. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters and an output schema, the description is incomplete. It fails to explain optional parameters, authentication needs, or default behavior for max_employees. The core validation logic is explained, but for a compliance tool with many fields, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 2 of 6 parameters have schema descriptions, and the tool description adds no additional parameter context. For example, user_ids and auth parameters are not explained. The description does not compensate for the low schema coverage (33%).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates employees against country-specific required fields from a knowledge base and reports missing/empty fields. The verb 'validate' and resource 'country compliance' are specific, and the tool distinguishes itself from siblings like 'audit_employee_data' by focusing on compliance requirements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only notes it is 'Essential for payroll and compliance readiness' but does not specify when to use this tool versus alternatives (e.g., get_country_specific_fields or audit_employee_data). No guidance on prerequisites 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.

validate_effective_datingB

Validate effective dating for time-sliced entities.

Detects gaps and overlaps in effective-dated records. These are the most silent and destructive data bugs — an employee may appear to have no active record on a specific date due to a gap.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesEffective-dated entity to check: 'EmpJob', 'EmpCompensation', 'PerPersonal'
user_idsNo
data_centerNo
auth_user_idNo
auth_passwordNo
max_employeesNoMax employees to check (1-200)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description warns that gaps/overlaps are 'silent and destructive data bugs' and gives a concrete example. However, without annotations, it does not disclose whether the tool is read-only or has side effects, and it omits expected output or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences including a helpful example. It is front-loaded with the purpose and adds value with the warning. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, but the description doesn't mention what the output contains (e.g., list of gaps/overlaps). For a validation tool with 6 parameters, more context about validation scope or prerequisites would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (entity and max_employees described). The description adds no meaning to user_ids, data_center, auth_user_id, or auth_password. It does not compensate for the undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states clearly that the tool validates effective dating for time-sliced entities by detecting gaps and overlaps. This is a specific verb and resource, but it does not explicitly distinguish it from sibling tools like find_data_anomalies or reconcile_data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. There is no mention of prerequisites, limitations, or contextual hints such as 'use this to check for missing records'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_import_templateA

Validate an import template's headers and sample data against SF metadata.

Checks that all column headers correspond to actual fields on the target entity, identifies missing key/required fields, and validates sample data types. Use this before executing an import to catch errors early.

ParametersJSON Schema
NameRequiredDescriptionDefault
headersYesColumn headers from the import template
data_centerNo
entity_nameYesTarget SF entity (e.g., 'EmpJob', 'User', 'FODepartment')
sample_rowsNo
auth_user_idNo
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It describes the validation checks but does not detail return format, error handling, or auth requirements. It is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs with no wasted words. The purpose is front-loaded, and each sentence adds value. Highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 params, 2 required) and low schema coverage, the description is somewhat complete but lacks explicit mention of the output structure or validation result format, despite the presence of an output schema. It covers key checks but could be more thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (33%), so the description must compensate. It explains that headers are for field mapping and sample_rows for data type validation, adding meaning beyond schema. However, data_center, auth_user_id, and auth_password remain unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates import template headers and sample data against SF metadata. It specifies the checks performed (field correspondence, missing fields, data types), and distinguishes from sibling tools like validate_migration_file by focusing on import templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this before executing an import to catch errors early,' providing clear when-to-use guidance. It does not mention when not to use or alternatives, but the context is sufficient for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_migration_fileA

Deep validation of a migration/import CSV file.

Validates:

  • Column headers match entity metadata

  • Key fields are present and populated

  • Data types are correct (dates, numbers, strings)

  • Required fields are populated

  • Picklist values exist (strict mode)

  • Foreign key references exist (strict mode)

  • Date format consistency

Returns detailed error report per row.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesTarget entity (e.g., 'EmpJob', 'FODepartment')
strictNoStrict mode: also validate picklist values and foreign key references exist
data_centerNo
auth_user_idNo
file_contentYesCSV file content as string
auth_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. Lists comprehensive validation checks including strict mode behavior. Notes that it returns a detailed error report per row, implying read-only operation. Lacks explicit mention of authorization requirements or side effects, but given the context, it is transparent enough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, bulleted list with sentences that each add value. Front-loaded with purpose, then lists validation categories. No redundant or vague statements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters and an output schema, the description covers the primary function and validation details. Missing explanation for optional authentication/configuration parameters, but overall sufficient for an agent to understand its role.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%; description adds meaning for 'entity' and 'file_content' by linking to validation checks. However, optional parameters (data_center, auth_user_id, auth_password) are not explained beyond schema, leaving their purpose unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it validates CSV migration files and lists specific validation categories (headers, key fields, data types, etc.). Distinguishes from sibling tools like 'validate_import_template' and 'audit_employee_data' by specifying 'deep validation' for migration/import CSV files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly indicates use for validating migration CSV files before import, but does not explicitly state when to use over alternatives or when not to use. No mention of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_rule_fieldsA

Validate that fields, entities, and picklist values referenced in a proposed business rule actually exist in the SAP SuccessFactors instance.

For each field:

  1. Verifies the entity exists in $metadata

  2. Verifies the field exists on that entity

  3. Checks the field type (string, date, picklist, number)

  4. If picklist values are provided, verifies they exist

  5. Checks if the field is editable (creatable or updatable)

Example fields_to_validate: [ {"field": "payGroup", "entity": "EmpJob", "values": ["PG_PE_FT", "PG_PE_PT"]}, {"field": "employeeClass", "entity": "EmpJob", "values": ["FT", "PT"]}, {"field": "countryOfCompany", "entity": "EmpJob"} ]

ParametersJSON Schema
NameRequiredDescriptionDefault
base_objectNo
data_centerNo
auth_user_idNo
auth_passwordNo
fields_to_validateYesList of fields to validate. Each dict: {'field': str, 'entity': str, 'values': [optional list of picklist values]}

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It lists five validation steps but does not disclose output format, error handling, or authentication needs, leaving behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with a clear purpose statement, enumerated steps, and an illustrative example; no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists but is not described. Missing details on return values, error messages, and how optional parameters affect behavior, leaving some incompleteness for a 5-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 20%. Description adds value for fields_to_validate with structure and example, but ignores four optional parameters (base_object, data_center, auth_user_id, auth_password), so only partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it validates fields, entities, and picklist values for business rules, with specific steps and an example, distinguishing it from sibling tools like validate_country_compliance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Context is implied by 'proposed business rule' but no explicit guidance on when to use versus alternative validation tools, nor any when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 52 tool updatesv0.2.0
    • First observedaudit_employee_data
    • First observedcheck_permission_access
    • First observedcompare_business_rules
    • First observedcompare_employees
    • First observedcompare_foundation_objects
    • First observedcompare_instance_config
    • First observedcompare_picklists
    • First observedexecute_upsert
    • First observedfind_data_anomalies
    • First observedgenerate_country_config_guide
    • First observedgenerate_cutover_checklist
    • First observedgenerate_data_dictionary
    • First observedgenerate_fo_workbook
    • First observedgenerate_functional_spec
    • First observedgenerate_import_template
    • First observedgenerate_mdf_import_template
    • First observedgenerate_migration_sequence
    • First observedgenerate_purge_file
    • First observedgenerate_reconciliation_report
    • First observedgenerate_rule_doc
    • First observedgenerate_rule_spec
    • First observedgenerate_rule_test
    • First observedgenerate_rules_workbook
    • First observedgenerate_test_script
    • First observedgenerate_workflow_workbook
    • First observedget_compensation_analytics
    • First observedget_country_specific_fields
    • First observedget_employee_history
    • First observedget_employee_profile
    • First observedget_entity_metadata
    • First observedget_headcount
    • First observedget_mdf_object_definition
    • First observedget_org_chart
    • First observedget_org_structure
    • First observedget_permission_roles
    • First observedget_picklist_values
    • First observedget_position_details
    • First observedlist_business_rules
    • First observedlist_entities
    • First observedlist_foundation_objects
    • First observedlist_mdf_objects
    • First observedquery_odata
    • First observedreconcile_data
    • First observedrun_go_live_checks
    • First observedsearch_employees
    • First observedsimulate_rule_impact
    • First observedtrace_rule_execution
    • First observedvalidate_country_compliance
    • First observedvalidate_effective_dating
    • First observedvalidate_import_template
    • First observedvalidate_migration_file
    • First observedvalidate_rule_fields

TDQS

A3.6/5.0

Scored across 52 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap among similar validation tools (e.g., validate_import_template vs validate_migration_file) and workbook generation tools (generate_fo_workbook vs generate_rules_workbook). Descriptions help clarify differences, but an agent might occasionally select the wrong one.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., audit_employee_data, compare_employees, generate_cutover_checklist). Verbs are imperative and clear, with no mixed casing or inconsistent styles.

Tool Count3/5

With 52 tools, the set is relatively large. While SuccessFactors is complex and the tools cover many operations, the count feels slightly excessive. Some clustering of similar tools (e.g., multiple validate_* or generate_* tools) could be consolidated, but the scope still justifies the number.

Completeness5/5

The tool set covers an extensive range of operations: data integrity checks, instance comparisons, migration support, rule lifecycle (spec, test, simulation, trace), validation, employee data retrieval, and more. There are no obvious gaps for the stated purpose of assisting with SF configuration and migration.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables querying SAP SuccessFactors OData API metadata and managing Role-Based Permission (RBP) configurations. It provides tools for retrieving entity metadata, listing permission roles, and inspecting user-specific access rights through MCP-compatible clients.
    29
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server for BambooHR with 47 tools covering employee management, time off, reports, benefits, payroll, goals, training, files, and webhooks, plus 18 React-based UI apps.
    -