Releases: Dhi13man/oorep-mcp
Release list
v1.2.3
Fixed
- MCP Registry namespace: Corrected the case-sensitive GitHub OIDC namespace to
io.github.Dhi13man/oorep-mcp, enabling publication to the official MCP Registry.
Security
- Release validation: Reject MCP namespace drift between the canonical GitHub repository owner,
package.json, andserver.jsonbefore publishing.
Full Changelog: v1.2.2...v1.2.3
oorep-mcp v1.2.2
Added
- Open-source maintenance: Added community issue and pull request templates, a Code of Conduct, private vulnerability-reporting guidance, and OpenSSF Scorecard reporting.
- MCP Registry publishing: Added current registry metadata and automated publication of
io.github.dhi13man/oorep-mcpafter npm releases. - Project metadata: Added citation metadata, GitHub funding configuration, and provenance context for the repertory structure analysis.
Changed
- Supported runtime: Raised the minimum Node.js version from 18 to 20 to use patched Hono dependencies.
- Build and test gates: Clean stale build output, run formatting as a non-mutating check, and count live end-to-end assertion failures instead of reporting false passes.
- Release authentication: Replaced long-lived npm tokens with short-lived GitHub OIDC credentials; npm trusted publishing now emits provenance automatically.
- Repository access: Changed the OOREP submodule URL from SSH to HTTPS so anonymous clones can initialize it.
Fixed
- Live repertory search: Support the current grouped OOREP response shape while retaining compatibility with legacy flat results.
- Metadata validation: Omit unavailable repertory and materia medica author/language fields instead of returning invalid
nullvalues. - CodeQL findings: Removed unused bindings and scoped SARIF upload permissions to the analysis job.
- Package surface: Removed a duplicate interface barrel and corrected the public SDK interface/export checks.
Security
- Updated direct and transitive dependencies to remove all 18 reported npm audit findings, including two critical findings.
- Pinned third-party GitHub Actions to immutable commit SHAs and disabled persisted checkout credentials.
- Made CodeQL and OpenSSF failures visible, and removed the inactive Codecov upload path while retaining enforced coverage thresholds in CI.
Dependencies
- Core:
@modelcontextprotocol/sdk1.25.1 → 1.30.0,zod4.2.1 → 4.3.5. - Toolchain: TypeScript 5.8 → 6.0.3, ESLint 9 → 10, Node.js types 25 → 26, Vitest 4.0 → 4.1, and compatible TypeScript-ESLint, Prettier, and transitive security updates.
v1.2.1: Search Guide Optimization & Dependency Updates
What's Changed
Search Guide Rewrite
Complete rewrite of oorep://help/search-syntax resource for AI agents:
- Leaner: ~200 → ~100 lines (removed noise)
- Universal: Works across all repertories (Kent, Murphy, Synthesis, BG3.100)
- Accurate: Emphasized
agg/amelover "worse"/"better" (42,437 vs 544 occurrences) - Actionable: Added vocabulary mapping and recovery strategies
New Documentation
docs/REPERTORY_STRUCTURES.md: Analysis of 451,918 symptoms across 4 repertories
Dependency Updates
- Core:
@modelcontextprotocol/sdk1.24.3 → 1.25.1,zod4.1.13 → 4.2.1 - Dev:
@types/node24 → 25,eslint9.17 → 9.39,typescript-eslint8.49 → 8.50
Stats
- ✅ 1102 tests passing
- ✅ 94.81% coverage
- ✅ 0 vulnerabilities
Full Changelog: v1.2.0...v1.2.1
v1.2.0 - Remote User Header & SDK Improvements
Highlights
This release adds support for authenticated OOREP sessions via the X-Remote-User header and fixes a critical bug where the maxResults SDK config was being ignored.
Breaking Changes
- Class Renamed:
OOREPSDKClient→OOREPClient- Update imports accordingly - Config Property Renamed:
client→httpClientinOOREPSDKConfigfor custom HTTP client injection - Method Renamed:
getClient()→getHttpClient()on SDK client for accessing underlying HTTP client - Interface Renamed:
IOOREPSDKClient→IOOREPClient
Added
OOREP_MCP_REMOTE_USERenvironment variable to sendX-Remote-Userheader (numeric member ID) on all upstream requestsremoteUserSDK config option for programmatic X-Remote-User header configurationmaxResultsSDK config option to set default maximum results for searches (default: 100, max: 500)
Fixed
- maxResults Config: SDK config
maxResultsis now correctly applied (was being ignored due to Zod schema defaults) - Documentation: Updated test count and coverage badges in README
Changed
- Test Coverage: Increased from 93% to 95% with 1100+ tests
Installation
# MCP Server
npx oorep-mcp
# SDK
npm install oorep-mcpFull Changelog
See CHANGELOG.md for complete details.
v1.1.3
Fixed
- Tool Descriptions: Removed hardcoded repertory/materia medica abbreviation examples to prevent AI model bias
search_repertory:repertoryparameter now referenceslist_available_repertoriesfor dynamic discoverysearch_materia_medica:materiamedicaparameter now referenceslist_available_materia_medicasfor dynamic discovery- Fixes incorrect suggestion of "kent" as a materia medica (it's a repertory)
- Updated across all SDK locations:
src/sdk/tools.ts,src/utils/schemas.ts,src/tools/search-repertory.ts,src/tools/search-materia-medica.ts,src/sdk/adapters/vercel-ai.ts - Aligns with MCP best practices for cross-tool referencing (used by Salesforce, Gong MCP servers)
Full Changelog: v1.1.2...v1.1.3
v1.1.2: Documentation Import Path Fixes
Fixed
README.md Documentation
- Changed
oorep-mcp/sdk/clienttooorep-mcpforcreateOOREPClientimports - Consolidated type imports into single
from 'oorep-mcp'block
Source Code JSDoc Examples
Fixed 14 outdated import paths across 6 files:
src/interfaces/IOOREPSDKClient.ts: Updated path referencessrc/sdk/resources.ts: FixedlistResources,getResource,getSearchSyntaxHelpexamplessrc/sdk/prompts.ts: FixedlistPrompts,getPromptexamplessrc/sdk/adapters/openai.ts: Fixed 6 JSDoc examplessrc/sdk/adapters/langchain.ts: Fixed 3 JSDoc examplessrc/sdk/adapters/google-genai.ts: FixedOOREPSDKClientimport example
Installation
npm install oorep-mcp@1.1.2Import Paths
// Main package - all exports
import { createOOREPClient, getResource, getPrompt } from 'oorep-mcp';
// Adapter subpaths
import { openAITools } from 'oorep-mcp/sdk/openai';
import { createOOREPTools } from 'oorep-mcp/sdk/vercel-ai';
import { createLangChainTools } from 'oorep-mcp/sdk/langchain';
import { geminiTools } from 'oorep-mcp/sdk/google-genai';Full Changelog: v1.1.1...v1.1.2
v1.1.1: Package Export Fixes
Summary
Fixes package export issues in v1.1.0. This is the recommended version.
Fixed
-
Package Exports: Simplified to 6 clean entry points
- Root
'oorep-mcp'exports everything (client, types, schemas, constants, resources, prompts) - Adapter subpaths:
'oorep-mcp/sdk/openai','oorep-mcp/sdk/vercel-ai','oorep-mcp/sdk/langchain','oorep-mcp/sdk/google-genai' - Convenience:
'oorep-mcp/sdk/adapters'for all adapters
- Root
-
SDK.md Documentation: Corrected function naming inconsistencies
- Fixed camelCase for adapter functions (
openAIFormatResourceAsSystemMessage, notopenaiFormat...) - Fixed type import paths to use correct entry points
- Consolidated duplicate imports in code examples
- Fixed camelCase for adapter functions (
Usage
// Everything from main entry
import {
createOOREPClient,
TOOL_NAMES,
getResource,
getPrompt,
SearchRepertoryArgsSchema,
} from 'oorep-mcp';
// Framework-specific adapters
import { openAITools } from 'oorep-mcp/sdk/openai';
import { createOOREPTools } from 'oorep-mcp/sdk/vercel-ai';
import { createLangChainTools } from 'oorep-mcp/sdk/langchain';
import { geminiTools } from 'oorep-mcp/sdk/google-genai';Full Changelog
See CHANGELOG.md for complete details.
v1.1.0: SDK as Single Source of Truth
Highlights
This release establishes the SDK as the single source of truth for all MCP primitives, with comprehensive new APIs for programmatic access to resources and prompts.
New Features
Standalone Resource Functions
getResource(uri, client?)- Fetch any resource by URIlistResources()- List all available resources with metadatagetSearchSyntaxHelp()- Get search syntax guide as markdown
Standalone Prompt Functions
getPrompt(name, args?)- Get prompt workflows with type-safe overloadslistPrompts()- List all available prompts with metadata
Centralized Constants
TOOL_NAMES,RESOURCE_URIS,PROMPT_NAMES,DEFAULTS,MIME_TYPES- Type exports:
ToolName,ResourceUri,PromptName
Adapter Enhancements
All SDK adapters (OpenAI, Vercel AI, LangChain, Google Gemini) now support resource and prompt formatting.
Other Changes
- NotFoundError Class: Specific error type for missing resources/tools/prompts
- Modular Architecture: Resources and prompts split into individual files
- Enhanced Search Syntax Help: CLAMS method integration, query optimization tips
- Security Policy: Added
SECURITY.mdwith vulnerability reporting guidelines
Note
Full Changelog
See CHANGELOG.md for complete details.
v1.0.3 - Relaxed Symptom Validation
What's Changed
Relaxed Symptom Validation
Removed overly restrictive input validation that was causing errors when LLMs (especially Google Gemini) send symptom queries with non-ASCII characters.
Changes:
- Removed regex validation
/^[a-zA-Z0-9\s\-*"'.,;:()/&]+$/that was rejecting Unicode characters, accented letters, and special formatting - Removed wildcard-in-middle-of-word validation that was causing false positives
- The OOREP API now handles input sanitization server-side
Impact:
- LLM-generated queries with Unicode characters (e.g.,
héadàche,頭痛症) now work correctly - Special characters and formatting from various LLMs are accepted
- No more
ValidationErrorresponses for legitimate symptom queries
Other Changes
- Updated dependencies to latest versions
- Updated README security documentation to reflect new validation behavior
Full Changelog: v1.0.2...v1.0.3
v1.0.2 - Dependency Updates
What's Changed
Dependencies
- @modelcontextprotocol/sdk: 1.22.0 → 1.24.3
Development Dependencies
@types/node: 24.10.1 → 24.10.2@typescript-eslint/eslint-plugin: 8.18.2 → 8.49.0@typescript-eslint/parser: 8.18.2 → 8.49.0@vitest/coverage-v8: 4.0.13 → 4.0.15prettier: 3.0.0 → 3.7.4tsx: 4.7.0 → 4.21.0typescript-eslint: 8.18.2 → 8.49.0
Full Changelog: v1.0.1...v1.0.2