Understanding MCP Server Support for PeopleTools Metadata
PeopleSoft provides Model Context Protocol (MCP) server support as a standardized mechanism for external AI systems to access PeopleTools metadata and managed objects in a structured format using the signed-in user's permissions.
The following diagram illustrates MCP client connection to PeopleTools metadata through MCP Server.

The MCP server enables LLM clients to retrieve PeopleTools metadata, such as Records, Pages, Components, PeopleCode, and other application definitions, in a textual format. A Dynamic Link Library (DLL) named PSAIAPI is delivered in PS_HOME\bin\client\winx86. A Python-based MCP server loads the DLL, wraps the metadata APIs, and publishes them as MCP tools. This allows AI systems to use PeopleTools metadata as context for development and analysis tasks, including code analysis, code generation, debugging, documentation, and functional understanding.
PeopleTools Metadata Access APIs
PeopleSoft delivers the PSAIAPI DLL in PS_HOME\bin\client\winx86 for MCP server support. The DLL exposes PeopleTools metadata APIs used to query PeopleSoft definitions. Each metadata API returns a textual representation that an LLM can consume and process.
The APIs exposed in PSAIAPI DLL are:
| API | Description |
|---|---|
|
SignOnDatabase() |
Signs on to a PeopleSoft database using the configured connection information and user credentials. |
|
SignOffDatabase() |
Signs off from the active PeopleSoft database session. |
|
GetFieldData() |
Retrieves Field definition metadata as textual output. |
|
GetRecordData() |
Retrieves Record definition metadata as textual output. |
|
GetPageData() |
Retrieves Page definition metadata as textual output. |
|
GetComponentData() |
Retrieves Component definition metadata as textual output. |
|
GetAppPackageData() |
Retrieves an Application Package definition and its associated class structure. |
|
GetAppEngineData() |
Retrieves an Application Engine definition and program structure. |
|
GetProjectData() |
Retrieves the definitions that belong to the specified Project. |
|
GetPeopleCodeData() |
Retrieves PeopleCode source as textual output. |
|
CompilePeopleCodeObject() |
Compiles a PeopleCode object from supplied source without saving it to the database. |
|
UpdateMultiPeopleCodeData() |
Compiles and saves staged PeopleCode changes to the database in a single bulk operation. |