Skip to main content
Glama
wudaoyou

successfactors-mcp

by wudaoyou

ce_query

Query SAP SuccessFactors Compound Employee data via SOAP API and save each page as an XML file. Supports filters, delta pulls, and returns file paths and counts.

Instructions

Query the EC Compound Employee (SOAP) API and save the payload to disk.

person_id_external / user_id are comma-separated and take precedence over every other filter when set. last_modified_on is an ISO datetime for a delta pull (SAP allows at most 3 months of look-back). With no filter at all this is a full extract, capped by max_pages.

select_segments defaults to the widely supported COMMON_SEGMENTS. If SF answers INVALID_SFQL naming a segment, that module is not enabled on the tenant — pass a narrower list.

Each queryMore page is written as its own XML file. The tool returns counts and paths only: one employee's payload is ~80 KB of HR data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
user_idNo
max_rowsNo
max_pagesNo
company_idNo
select_segmentsNo
last_modified_onNo
person_id_externalNo
include_contingent_workersNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well: it discloses that each queryMore page is written as its own XML file, that the tool returns only counts and paths, that payloads are ~80 KB per employee, and that max_pages caps the full extract. It also explains the INVALID_SFQL behavior. The only minor gap is that it doesn't explicitly state whether the tool is read-only or mutating, but the described behavior (querying and saving to disk) makes that reasonably clear.

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

Conciseness5/5

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

The description is four short paragraphs, each earning its place: purpose, filter semantics, segment handling, and output behavior. It front-loads the core purpose and side effect, then layers in usage details. There is no fluff or repetition of schema field names without added meaning. Every sentence adds operational value.

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

Completeness4/5

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

Given the tool's complexity (8 parameters, 0% schema coverage, no annotations), the description is remarkably complete. It covers the main query modes, the error-handling pattern, the output format, and the size implications. The gaps are minor: max_rows, company_id, and include_contingent_workers are not explained, and the output schema exists but the description already covers return values (counts and paths). An agent could call this tool correctly for the common cases, though it might need to infer the meaning of the three undocumented parameters.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. It does: it explains person_id_external/user_id (comma-separated, precedence), last_modified_on (ISO datetime, 3-month look-back), select_segments (defaults to COMMON_SEGMENTS, narrowing on INVALID_SFQL), and max_pages (caps full extract). However, it doesn't mention max_rows, company_id, or include_contingent_workers, so those parameters remain undocumented. Still, the description covers the most important parameters and adds meaning well beyond the bare schema.

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

Purpose5/5

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

The description states a specific verb ('Query'), a specific resource ('EC Compound Employee (SOAP) API'), and a concrete side effect ('save the payload to disk'). It also distinguishes itself from sibling tools by naming the SOAP API and the disk-saving behavior, which none of the siblings (list_tenants, odata_metadata, compare_metadata, odata_query) imply. This is a clear, specific purpose statement.

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

Usage Guidelines5/5

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

The description gives explicit guidance on when to use this tool: for delta pulls with last_modified_on, for full extracts with no filter, and for handling INVALID_SFQL errors by narrowing select_segments. It also explains precedence rules (person_id_external/user_id take precedence over every other filter) and the 3-month look-back limit. This is rich, actionable usage guidance that an agent can act on without further inference.

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