All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Schema Validation: Patched the Zod schema for
perplexity_searchandperplexity_deep_researchto correctly handlenullvalues for thedatefield in search results returned by the Perplexity API. This resolves a critical validation error that caused tool execution to fail.
- Architectural Refactor: Overhauled the entire server architecture to align with the
mcp-ts-template v1.7.1standard. This enforces a strict "Logic Throws, Handler Catches" pattern, where core logic is pure and error handling is centralized in the registration layer. - Tool Registration: Updated all tools to use the modern
server.registerToolmethod from the MCP SDK, which includes mandatory output schema definitions for improved type safety and LLM interaction. - Error Handling: Replaced all
ErrorHandler.tryCatchwrappers with standardtry...catchblocks in the tool registration handlers, delegating error processing to a centralizedErrorHandler.handleErrorcall. - Response Formatting: Enhanced tool response handlers to intelligently parse
<think>blocks from the model's output and to formatsearchResultsinto clear, user-facing citations. - Server Initialization: Streamlined the main server startup sequence in
src/mcp-server/server.tsfor improved clarity and robustness. - HTTP Transport: Refactored the HTTP transport's port-binding logic (
startHttpServerWithRetry) to be more resilient and avoid race conditions. - Dependencies: Updated all major dependencies to their latest versions, including
@modelcontextprotocol/sdk(v1.16.0),@hono/node-server(v1.17.1), andopenai(v5.10.1).
- Architectural Mandate: Added a new
.clinerulesfile that formally documents the project's architectural standards and developer mandates. - Structured Output: Both
perplexity_searchandperplexity_deep_researchtools now return a structured output object (PerplexitySearchResponseSchema) that includes detailedsearchResultsin addition to the raw text response.
- Type Safety: Improved type safety and code quality across various internal utilities, including the logger, scheduler, and parsers.