Skip to content

Release v2.3.0 - #3

Merged
zackkatz merged 5 commits into
mainfrom
develop
Mar 11, 2026
Merged

Release v2.3.0#3
zackkatz merged 5 commits into
mainfrom
develop

Conversation

@zackkatz

@zackkatz zackkatz commented Mar 11, 2026

Copy link
Copy Markdown
Member

Summary

  • Consolidate MCP tools and reduce protocol overhead
  • Add compatibility coverage for merged Docs and Reports tools
  • Refresh README guidance and add Claude Code setup option
  • Fix double-compacting of Docs and Reports tool descriptions

Summary by CodeRabbit

  • New Features

    • Added ability to create internal notes on conversations.
    • Unified report retrieval with dynamic type-based endpoint.
    • Enhanced documentation tools with consolidated entity operations.
  • Removed/Deprecated

    • Removed listAllInboxes tool; use searchInboxes instead.
  • Documentation

    • Updated setup guidance with expanded configuration options and examples.
    • Added operational guidelines documentation.

Merge duplicate Docs and Reports tools into shared entrypoints, keep legacy aliases working in dispatch, remove apiGuidance injection from tool responses, and stop advertising per-tool verbose schema flags. Also update server instructions, manifests, and tool metadata to match the smaller public tool surface.
Extend tool tests to cover the new getReport entrypoint and legacy report aliases, and add a dedicated docs-tools test file covering listDocsArticles, getDocsEntity, updateDocsEntity, and their legacy Docs aliases through the top-level ToolHandler.
Update the main README to reflect the merged tool surface, documented response behavior, and current examples, add an AGENTS.md file with repo-specific maintenance guidance, and delete the orphaned README_REPORTS_FEATURE.md implementation note.
Docs and reports tools were already compacted by their own handlers
(docs-tools.ts, reports-tools.ts), but listTools() re-applied compactTool
with CONVERSATION_TOOL_DESCRIPTIONS — which had no entries for those tools,
causing redundant compaction passes.

- Only apply CONVERSATION_TOOL_DESCRIPTIONS to conversation tools
- Pass docs and reports tools through as-is since they're pre-compacted
Claude Code can install the MCP server with a single command, making it
the fastest onboarding path for developers already using it.

- Add Option 1: Claude Code with `claude mcp add` instructions
- Renumber existing options (MCPB → 2, Manual → 3, CLI → 4)
- Update prerequisites to mention Claude Code
@zackkatz
zackkatz merged commit 3441e81 into main Mar 11, 2026
5 checks passed
@coderabbitai

coderabbitai Bot commented Mar 11, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7e5a921d-e17c-4409-b195-325b786b7110

📥 Commits

Reviewing files that changed from the base of the PR and between d4fa5fb and 3e40cdf.

📒 Files selected for processing (16)
  • AGENTS.md
  • README.md
  • README_REPORTS_FEATURE.md
  • helpscout-mcp-extension/manifest.json
  • mcp.json
  • src/__tests__/docs-tools.test.ts
  • src/__tests__/mcpb-validation.test.ts
  • src/__tests__/tools.test.ts
  • src/index.ts
  • src/prompts/index.ts
  • src/schema/types.ts
  • src/tools/docs-tools.ts
  • src/tools/index.ts
  • src/tools/reports-tools.ts
  • src/tools/tool-utils.ts
  • src/utils/api-constraints.ts

Walkthrough

Consolidates the Help Scout MCP server's tool surface by unifying multiple Docs API endpoints into entity-type-aware handlers, merging Reports tools into a single getReport endpoint with type parameters, removing listAllInboxes in favor of searchInboxes, adding new conversation tools (createNote, conversation operations), and introducing schema compacting mechanisms to reduce verbosity. Updates tests, configurations, and documentation accordingly.

Changes

Cohort / File(s) Summary
Documentation
AGENTS.md, README.md
Added operational guidelines for the MCP server in AGENTS.md. Expanded README with new Quick Start options, consolidated tool listings reflecting API surface changes, updated tool names and capabilities (e.g., listDocsCollections, getReport unified endpoint), removed deprecated entries, and adjusted configuration examples.
Deprecated Documentation
README_REPORTS_FEATURE.md
Removed file documenting Reports API feature, consolidating its content into unified tool documentation.
Configuration & Manifests
helpscout-mcp-extension/manifest.json, mcp.json
Updated tool definitions: removed listAllInboxes, added createNote, reordered and added new conversation tools (createReply, getConversation, createConversation, updateConversation).
Core Tool Implementations
src/tools/index.ts
Replaced listAllInboxes with searchInboxes, added createNote tool and execution handler, introduced CONVERSATION_TOOL_DESCRIPTIONS mapping, removed universal verbose parameter augmentation, integrated tool compacting via descriptions, and added legacy tool name detection for Docs/Reports routing.
Docs Tools Consolidation
src/tools/docs-tools.ts
Refactored to unified, entity-type-aware handlers: merged listDocsArticles/listDocsArticlesByCategory, consolidated getDocsEntity replacing getDocsSite/getDocsCollection/getDocsCategory, unified updateDocsEntity for collections and categories with dynamic endpoint resolution, and centralized DOCS_TOOL_DESCRIPTIONS.
Reports Tools Consolidation
src/tools/reports-tools.ts
Unified multiple report endpoints into single getReport handler with type-based dispatching, added helper utilities (withReportType, buildBaseParams, addCsvParam), introduced REPORT_TOOL_DESCRIPTIONS mapping, and refactored to support flexible report type handling.
Tool Utilities
src/tools/tool-utils.ts
New utility module introducing compactTool() function to reduce schema and description verbosity, with recursive schema compaction and boilerplate phrase removal.
Schemas
src/schema/types.ts
Added CreateNoteInputSchema and CreateNoteInput type, made SearchInboxesInputSchema.query optional with empty string default, changed ListDocsArticlesInputSchema.pageSize default from 50 to 100.
Configuration & Guidance
src/index.ts, src/prompts/index.ts, src/utils/api-constraints.ts
Updated tool references from listAllInboxes to searchInboxes, replaced report tool names (getConversationReport/getHappinessReportgetReport/getHappinessRatings), and updated validation guidance for inbox ID discovery.
Tests - Tool Definitions
src/__tests__/mcpb-validation.test.ts, src/__tests__/tools.test.ts
Updated core tool expectations: removed listAllInboxes, added createNote; refactored listAllInboxes behavior into legacy alias suite routing through searchInboxes; added verbose schema validation; introduced merged reports tools tests for getReport and getCompanyReport.
Tests - Docs Tools
src/__tests__/docs-tools.test.ts
New comprehensive test suite validating unified Docs tools: listDocsArticles, getDocsEntity, updateDocsEntity with both current and legacy alias behaviors, mocking HTTP interactions and verifying response transformations.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

Comment @coderabbitai help to get the list of available commands and usage tips.

jgalea pushed a commit to jgalea/help-scout-mcp that referenced this pull request Apr 25, 2026
@coderabbitai coderabbitai Bot mentioned this pull request Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant