SF Assistant MCP Server
Provides tools to query SAP SuccessFactors data, manage business rules, validate imports, run analytics, compare instances, audit data, generate migration sequences, and create cutover checklists via OData v2.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SF Assistant MCP Serverlist employees hired this month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 (
VPMCSandboxcompany ID onapi8preview.sapsf.com). Every credential in the.env.examplebelow 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.pyEnvironment Variables (VPMC Sandbox)
The server reads credentials from .env at the project root. Every variable below is required — helpers/credentials.py raises ValueError listing the missing ones if any is empty.
Variable | Required | Description | VPMC Sandbox value |
| ✅ | SF API host (full URL or DC code) |
|
| ✅ | SF company ID (tenant) |
|
| ✅ | IAS username (NOT | (ask team lead) |
| ✅ | IAS password | (ask team lead) |
| ✅ | IAS tenant host |
|
| ✅ | OIDC Client ID registered in IAS | (ask team lead) |
| ✅ | OIDC Client Secret from IAS | (ask team lead) |
| ✅ | SF dependency name configured in IAS |
|
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:
Step 1 — Password grant:
POST {IAS_HOST}/oauth2/tokenwithgrant_type=password, returns anid_token.Step 2 — JWT-bearer exchange:
POST {IAS_HOST}/oauth2/tokenwithgrant_type=urn:ietf:params:oauth:grant-type:jwt-bearer, theid_tokenas assertion andresource=urn:sap:identity:application:provider:name:{IAS_DEPENDENCY_NAME}. Returns the SFaccess_token.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.xlsxTools Reference (52 tools, 15 categories)
# | Category | Tools |
1–4 | Discovery |
|
5–8 | Business Rules |
|
9–13 | Employee |
|
14–16 | Organization |
|
17–18 | Configuration |
|
19–21 | Data Import |
|
22–24 | Analytics |
|
25–28 | Instance Comparison |
|
29–33 | Audit & Troubleshooting |
|
34–37 | Documentation |
|
38–41 | Migration |
|
42–44 | MDF |
|
45–46 | Go-Live |
|
47–49 | Country |
|
50–52 | Workbook Generator |
|
Typical Workflows
Goal | Pipeline |
Build a business rule |
|
Find and inspect employees |
|
Run an import |
|
Cutover prep |
|
Country setup |
|
Populate client workbooks |
|
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 fileTests use respx to mock httpx calls — no live SF tenant needed.
Troubleshooting
Symptom | Likely cause / fix |
| One or more env vars in |
|
|
| Wrong |
| Wrong |
| Network / VPN / firewall blocking IAS or SF API. Default timeouts: 30 s for IAS, 60 s for OData (90 s for full |
| The SF user lacks OData API permissions on the entity. Check Admin Center → Manage Permission Roles. |
|
|
Conventions
Async everywhere. All SF calls use
httpx.AsyncClientwithasyncio.Semaphore(5)for rate limiting.Effective-dated entities (EmpJob, EmpCompensation, PerPersonal) require date filters — the tools enforce this.
execute_upsertdefaults todry_run=Truefor safety; flip explicitly to commit.OData v2 lacks
$apply/ groupby — analytics tools aggregate client-side with$toplimits.One MCP server only. Each
tools/<category>.pymay build a localFastMCPfor testing, butmain.pyis the single registration point exposed to clients.
Dependencies
Package | Version | Purpose |
| >= 3.0.0 | MCP server framework |
| >= 0.27.0 | Async HTTP client |
| >= 2.0.0 | Data models / validation |
| (transitive) | Load |
| (transitive) | Workbook generation / template parsing |
Optional extras:
uv sync --extra gcp— addsgoogle-cloud-secret-managerfor theGCPSecretManagerStorecredential 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 installConfigure
Add to .env:
GEMINI_API_KEY=...
GEMINI_MODEL=gemini-3-pro-preview
FRONTEND_BACKEND_PORT=8001
FRONTEND_CORS_ORIGIN=http://localhost:5173Run
In two terminals:
# 1. Backend (FastAPI + SSE)
uv run python -m backend.app
# 2. Frontend (Vite)
cd frontend && npm run devOpen 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 toolsaudit_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.
| Name | Required | Description | Default |
|---|---|---|---|
| checks | No | ||
| user_id | Yes | Employee userId to audit | |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | No | ||
| role_name | Yes | Permission role name or substring to search | |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_name | No | ||
| instance_a_dc | No | Data center or API host for instance A | |
| instance_b_dc | No | Data center or API host for instance B | |
| instance_a_user | No | ||
| instance_b_user | No | ||
| instance_a_password | No | ||
| instance_b_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | Yes | List of userIds to compare (2-5 employees) | |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| compare_fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| fo_type | Yes | Foundation Object type: 'company', 'department', 'division', 'location', 'cost_center', 'job_code', 'pay_grade' or entity name | |
| instance_a_dc | No | Data center or API host for instance A | |
| instance_b_dc | No | Data center or API host for instance B | |
| instance_a_user | No | ||
| instance_b_user | No | ||
| instance_a_password | No | ||
| instance_b_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | Entity to compare (e.g., 'EmpJob', 'User', 'FOCompany') | |
| instance_a_dc | Yes | Data center or API host for instance A (e.g., 'api8preview.sapsf.com') | |
| instance_b_dc | Yes | Data center or API host for instance B | |
| instance_a_user | No | ||
| instance_b_user | No | ||
| instance_a_password | No | ||
| instance_b_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| picklist_id | Yes | Picklist ID to compare (e.g., 'eventReason', 'employeeClass') | |
| instance_a_dc | Yes | Data center or API host for instance A | |
| instance_b_dc | Yes | Data center or API host for instance B | |
| instance_a_user | No | ||
| instance_b_user | No | ||
| instance_a_password | No | ||
| instance_b_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | If True (default), validates without writing. Set to False to actually execute. | |
| records | Yes | List of record dictionaries to upsert | |
| batch_size | No | Records per batch (1-50) | |
| data_center | No | ||
| entity_name | Yes | Target SF entity | |
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | Field to analyze | |
| entity | Yes | Entity to check (e.g., 'EmpJob', 'User', 'FODepartment') | |
| data_center | No | ||
| max_results | No | Max anomalous records to return | |
| anomaly_type | Yes | Type of anomaly: 'empty' (blank required fields), 'duplicates' (duplicate values), 'orphan' (references to non-existent records), 'future_dates' (dates in the future) | |
| auth_user_id | No | ||
| scope_filter | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Output language: 'en' or 'es' | es |
| country_code | Yes | ISO country code: COL, MEX, PER, CHL, ARG, BRA, USA, ESP |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entities | Yes | Entities to include in cutover (e.g., ['FOCompany', 'FODepartment', 'EmpJob']) | |
| language | No | Output language: 'en' or 'es' | en |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| include_rules | No | Include business rules in the checklist | |
| include_picklists | No | Include picklists in the checklist |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entities | Yes | Entities to include (e.g., ['EmpJob', 'EmpCompensation', 'PerPersonal']) | |
| language | No | Output language: 'en' or 'es' | en |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| include_navigation | No | Include navigation properties |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must 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.
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.
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.
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.
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.
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 }
| Name | Required | Description | Default |
|---|---|---|---|
| entities | No | Sheet names to populate: 'all' for all 28 sheets, or a comma-separated list like 'Department,Event Reason,Location' | all |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | Primary entity for the spec (e.g., 'EmpJob', 'User') | |
| language | No | Output language: 'en' (English) or 'es' (Spanish) | en |
| data_center | No | ||
| auth_user_id | No | ||
| scope_fields | No | ||
| auth_password | No | ||
| include_rules | No | Include configured business rules in the spec |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| entity_name | Yes | Target SF entity (e.g., 'EmpJob', 'User', 'FODepartment') | |
| auth_user_id | No | ||
| auth_password | No | ||
| include_fields | No | ||
| include_picklist_values | No | Include valid picklist values as comments |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| object_name | Yes | MDF object name (e.g., 'cust_MyObject') | |
| auth_user_id | No | ||
| auth_password | No | ||
| include_readonly | No | Include read-only fields in template |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entities | Yes | List of entities to load (e.g., ['User', 'EmpEmployment', 'EmpJob', 'FOCompany']) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | Entity to generate purge file for | |
| data_center | No | ||
| filter_expr | Yes | OData $filter to identify records to purge | |
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entities | Yes | Entities to reconcile (e.g., ['User', 'EmpJob', 'EmpEmployment', 'FOCompany']) | |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| expected_counts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Documentation language: 'en' for English, 'es' for Spanish | en |
| rule_spec | Yes | The rule specification output from generate_rule_spec | |
| output_format | No | Output format: 'markdown' (default), 'json', or 'text' | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must 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.
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.
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.
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.
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.
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:
Queries the SF instance metadata to identify relevant fields
Validates all referenced fields and picklist values exist
Builds IF/THEN/ELSE condition logic
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."
| Name | Required | Description | Default |
|---|---|---|---|
| rule_name | No | ||
| event_type | Yes | Event type: 'onSave', 'onChange', 'onInit', or 'validate' | |
| base_object | Yes | Base object (e.g., 'JobInformationModel', 'CompInfoModel') | |
| data_center | No | ||
| requirement | Yes | Natural language description of the business rule requirement | |
| auth_user_id | No | ||
| auth_password | No | ||
| country_scope | No | ||
| rule_scenario | Yes | Rule scenario (e.g., 'Rules for Employee Central', 'Event Reason Derivation') | |
| conditions_hint | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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 }
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| scenario_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_spec | Yes | The rule specification output from generate_rule_spec | |
| include_edge_cases | No | Include edge case test scenarios | |
| include_negative_tests | No | Include negative/no-match test cases |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | ||
| language | No | Output language: 'en' or 'es' | en |
| scenario | Yes | Test scenario: 'hire', 'promote', 'transfer', 'terminate', 'rehire', 'compensation_change', 'org_change', 'full_lifecycle' |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 }
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| scope_field | Yes | Field to scope analysis by: 'department', 'company', 'division', 'location', 'countryOfCompany', 'jobCode' | |
| scope_value | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| auth_user_id | No | ||
| country_code | Yes | ISO country code: COL, MEX, PER, CHL, ARG, BRA, USA, ESP | |
| auth_password | No | ||
| include_live_metadata | No | Also fetch metadata from the live instance for the country entity |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return (1-50) | |
| user_id | Yes | The userId to retrieve history for | |
| data_center | No | ||
| auth_user_id | No | ||
| history_type | No | Type of history: 'job', 'compensation', 'employment' | job |
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The userId of the employee to retrieve | |
| sections | No | ||
| as_of_date | No | ||
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| entity_name | Yes | Name of the SF entity (e.g., 'EmpJob', 'User', 'FOCompany') | |
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No | ||
| group_by | Yes | Field to group by: 'department', 'company', 'division', 'location', 'countryOfCompany', 'employmentType', 'employeeClass' | |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| include_inactive | No | Include terminated/inactive employees |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| object_name | Yes | MDF object name / entity name (e.g., 'cust_MyObject', 'Position') | |
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The userId to center the org chart on | |
| depth_up | No | Levels of managers above (0-5) | |
| depth_down | No | Levels of direct reports below (0-3) | |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | Organizational level to query: 'company', 'division', 'department', 'business_unit', 'cost_center', 'location', 'job_code', 'pay_grade' | |
| active_only | No | Only return active records | |
| data_center | No | ||
| parent_code | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| include_headcount | No | Include employee headcount per unit (requires additional API calls) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| role_name | No | ||
| role_type | No | Type of role: 'rbp' for RBP roles, 'dynamic' for dynamic roles, 'all' for both | all |
| data_center | No | ||
| max_results | No | Maximum results per type (1-100) | |
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| picklist_id | Yes | The picklist ID (e.g., 'payGroup', 'employeeClass', 'eventReason') | |
| auth_user_id | No | ||
| auth_password | No | ||
| status_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| department | No | ||
| data_center | No | ||
| max_results | No | Maximum results (1-200) | |
| vacant_only | No | Only return vacant positions | |
| auth_user_id | No | ||
| auth_password | No | ||
| position_code | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| max_results | No | Maximum results (1-200) | |
| name_search | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| scenario_filter | No | ||
| base_object_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| filter_prefix | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| select | No | ||
| fo_type | Yes | Foundation Object type: 'company', 'division', 'department', 'business_unit', 'cost_center', 'location', 'job_code', 'pay_grade', or direct entity name like 'FOCompany' | |
| active_only | No | Only return active records | |
| data_center | No | ||
| filter_expr | No | ||
| max_results | No | Maximum results (1-500) | |
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter: 'custom' for cust_* objects, 'standard' for SAP standard, 'all' for everything | custom |
| data_center | No | ||
| name_search | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Max records to return (1-1000) | |
| skip | No | ||
| entity | Yes | OData entity name (e.g., 'EmpJob', 'User', 'FOCompany') | |
| expand | No | ||
| filter | No | ||
| select | No | ||
| orderby | No | ||
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | Entity to reconcile | |
| data_center | No | ||
| filter_expr | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| expected_count | No | ||
| group_by_field | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| max_sample | No | Max sample records to return per check | |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| checklist_type | No | Check severity to run: 'critical', 'important', 'recommended', 'all' | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries 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.
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.
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.
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.
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.
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"
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language search query. Examples: 'John Smith', 'department 40000013', 'employees in Colombia', 'active employees in location NYC' | |
| data_center | No | ||
| max_results | No | Maximum results to return (1-100) | |
| auth_user_id | No | ||
| auth_password | No | ||
| search_fields | No | ||
| include_inactive | No | Include terminated/inactive employees |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_spec | Yes | Rule specification (from generate_rule_spec) with conditions and actions | |
| data_center | No | ||
| sample_size | No | Maximum employees to evaluate (1-1000) | |
| auth_user_id | No | ||
| auth_password | No | ||
| target_population | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 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.
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.
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.
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.
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.
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Employee userId to trace rules for | |
| event_type | Yes | Event type: 'onSave', 'onChange', 'onInit', 'validate' | |
| base_object | Yes | Base object (e.g., 'JobInformationModel', 'CompInfoModel') | |
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | No | ||
| data_center | No | ||
| auth_user_id | No | ||
| country_code | Yes | ISO country code: COL, MEX, PER, CHL, ARG, BRA, USA, ESP | |
| auth_password | No | ||
| max_employees | No | Max employees to check (1-500) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | Effective-dated entity to check: 'EmpJob', 'EmpCompensation', 'PerPersonal' | |
| user_ids | No | ||
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| max_employees | No | Max employees to check (1-200) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| headers | Yes | Column headers from the import template | |
| data_center | No | ||
| entity_name | Yes | Target SF entity (e.g., 'EmpJob', 'User', 'FODepartment') | |
| sample_rows | No | ||
| auth_user_id | No | ||
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | Target entity (e.g., 'EmpJob', 'FODepartment') | |
| strict | No | Strict mode: also validate picklist values and foreign key references exist | |
| data_center | No | ||
| auth_user_id | No | ||
| file_content | Yes | CSV file content as string | |
| auth_password | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. 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.
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.
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.
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.
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.
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:
Verifies the entity exists in $metadata
Verifies the field exists on that entity
Checks the field type (string, date, picklist, number)
If picklist values are provided, verifies they exist
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"} ]
| Name | Required | Description | Default |
|---|---|---|---|
| base_object | No | ||
| data_center | No | ||
| auth_user_id | No | ||
| auth_password | No | ||
| fields_to_validate | Yes | List of fields to validate. Each dict: {'field': str, 'entity': str, 'values': [optional list of picklist values]} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It 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.
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.
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.
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.
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.
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.
52 tool updates
v0.2.0- First observed
audit_employee_data - First observed
check_permission_access - First observed
compare_business_rules - First observed
compare_employees - First observed
compare_foundation_objects - First observed
compare_instance_config - First observed
compare_picklists - First observed
execute_upsert - First observed
find_data_anomalies - First observed
generate_country_config_guide - First observed
generate_cutover_checklist - First observed
generate_data_dictionary - First observed
generate_fo_workbook - First observed
generate_functional_spec - First observed
generate_import_template - First observed
generate_mdf_import_template - First observed
generate_migration_sequence - First observed
generate_purge_file - First observed
generate_reconciliation_report - First observed
generate_rule_doc - First observed
generate_rule_spec - First observed
generate_rule_test - First observed
generate_rules_workbook - First observed
generate_test_script - First observed
generate_workflow_workbook - First observed
get_compensation_analytics - First observed
get_country_specific_fields - First observed
get_employee_history - First observed
get_employee_profile - First observed
get_entity_metadata - First observed
get_headcount - First observed
get_mdf_object_definition - First observed
get_org_chart - First observed
get_org_structure - First observed
get_permission_roles - First observed
get_picklist_values - First observed
get_position_details - First observed
list_business_rules - First observed
list_entities - First observed
list_foundation_objects - First observed
list_mdf_objects - First observed
query_odata - First observed
reconcile_data - First observed
run_go_live_checks - First observed
search_employees - First observed
simulate_rule_impact - First observed
trace_rule_execution - First observed
validate_country_compliance - First observed
validate_effective_dating - First observed
validate_import_template - First observed
validate_migration_file - First observed
validate_rule_fields
TDQS
Scored across 52 tools
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.
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.
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.
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
Related MCP Connectors
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
isolved and ApplicantPro jobs, tenant discovery, and change detection as an MCP server.
One connector URL giving any MCP client live access to 21 services and 51 tools.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables 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.2911MIT
- AlicenseNot gradedqualityAmaintenanceA metadata-driven MCP server that auto-generates 480+ tools across 160+ ServiceNow tables, with multi-instance support, natural language search, and local script development.1,291 npm53Apache 2.0
- AlicenseNot gradedqualityCmaintenanceMCP server for SAP Cloud ALM, providing 54 tools across 9 services to manage features, tasks, test cases, documents, projects, and more via natural language.20 npm5MIT
- FlicenseNot gradedqualityDmaintenanceA 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.-