PowerShell module for integrating with OpenAI APIs, providing tools for AI agents, assistants, and chat completions with support for tool registration and execution
PSAI is a PowerShell utility library for OpenAI integration, not an MCP server. It provides 8 helper functions for tool registration and OpenAI API interaction. Tool definitions lack critical MCP structure: no explicit tool registration visible, no input schemas in MCP format, descriptions are present but generic (avg 120 chars, below 194-char baseline), and no output schemas documented. Tools appear designed for internal use within PowerShell scripts rather than as MCP-exposed endpoints. The codebase shows no evidence of MCP protocol implementation, no transport layer, no request/response handling, no tool registration against an MCP server interface.
Adds tools and functions to a list for use with OpenAI Assistants. Constructs a list of tools and functions based on provided parameters and updates the 'tools' property of the body hashtable.
Converts an array of functions into a tool format. Transforms each function in the array into a hashtable with a 'type' key set to 'function' and a 'function' key set to the original function.
Enables the file search tool. Returns a hashtable with the 'type' property set to 'file_search'.
Enables the retrieval tool. Returns a hashtable with the 'type' property set to 'retrieval'.
Retrieves the properties of a specified tool. Gets the type from the parameter and returns a tool property object with type information and optional enum/description fields.
Creates a new chat request tool message with the specified parameters including tool call ID, function name, and content.
Registers a tool by name. Retrieves the command specification for the specified function and registers it as a tool with optional strict mode for server-side OpenAPI validation.
Not an MCP server, no MCP protocol implementation detected. PSAI is a PowerShell utility library for OpenAI integration, not an MCP server exposing tools via the Model Context Protocol. No transport layer, request/response handling, or tool registration against MCP interfaces.
Input schemas missing or incomplete. Tools lack formal JSON Schema definitions with type and description for all parameters. Get-ToolProperty has only 1 param with no type; Enable-OAIFileSearchTool and Enable-OAIRetrievalTool have empty input schemas.
Output schemas not documented. No tool specifies what it returns or the structure of return values. LLMs cannot plan downstream calls or extract required fields without documented output schemas.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 26 | 2026-07-28+ | v2 |
Submits tool outputs for a specific thread and run. Sends a POST request to the OpenAI API with the provided tool outputs.
Descriptions are generic and lack LLM-optimization. Average description length ~120 chars (below 194-char baseline). Many descriptions state WHAT without explaining WHEN to use or dependencies. E.g., 'Enables the file search tool' does not explain when an agent should call it.
No error handling or recovery guidance. Tools do not document error conditions, retryability, or what the LLM should do if a call fails. No actionable error messages or categorization (retryable vs user-fixable vs fatal).