Skip to content

Releases: context-hub/generator

1.34.0-beta5

11 Mar 19:54
c8984ee

Choose a tag to compare

1.34.0-beta5 Pre-release
Pre-release

What's Changed

  • Improve tests: fix deprecations and allow running with enabled zend.assertions by @vjik in #327
  • Keep PHP annotations for correct JSON generation by @vjik in #328

Full Changelog: 1.34.0-beta4...1.34.0-beta5

1.34.0-beta4

06 Mar 13:54
faf9a48

Choose a tag to compare

1.34.0-beta4 Pre-release
Pre-release

What's Changed

  • Update README by @butschster in #323
  • Fix #325: Make ConfigRegistryAccessor::getDocuments() return an empty DocumentRegistry + Add DocumentRegistry::hasItems() by @vjik in #326

New Contributors

  • @vjik made their first contribution in #326

Full Changelog: 1.34.0-beta3...1.34.0-beta4

1.34.0-beta3

08 Feb 09:11
7ce14e4

Choose a tag to compare

1.34.0-beta3 Pre-release
Pre-release

What's Changed

  • feat: add generic request() method to HttpClientInterface by @butschster in #322

Full Changelog: 1.34.0-beta2...1.34.0-beta3

1.34.0-beta2

22 Jan 14:27
920fdbc

Choose a tag to compare

1.34.0-beta2 Pre-release
Pre-release

What's Changed

  • feat(mcp-server/filesystem): add exclude pattern support across all filesystem tools by @cto-new[bot] in #317
  • Configurable RAG Knowledge Stores with Custom Tools by @butschster in #319

New Contributors

Full Changelog: 1.34.0-beta1...1.34.0-beta2

1.34.0-beta1

19 Jan 14:34
c70d2cd

Choose a tag to compare

1.34.0-beta1 Pre-release
Pre-release

What's Changed

Full Changelog: 1.33.0...1.34.0-beta1

1.33.0

18 Jan 07:55
aaee172

Choose a tag to compare

Release 1.33

This release brings significant enhancements to MCP tools, including new PHP code analysis capabilities, powerful file search functionality, multi-project support, and improved cross-platform compatibility.

✨ New Features

New php-structure MCP Tool for PHP Code Analysis

A powerful new tool that analyzes PHP files and outputs interface-style signatures with relationship links. This provides a compact, scannable view of class hierarchies without reading entire source files.

Key capabilities:

  • Reduces context size by ~70-80% compared to full file content
  • Shows relationships with inline path comments (// → path)
  • Supports depth traversal (0-3 levels) to follow extends, implements, and use statements
  • Distinguishes vendor from local code at a glance
  • PSR-4 namespace resolution using composer.json autoload mappings
  • Optional visibility filtering for private/protected members
# Basic usage
php-structure path=src/MyService.php

# With depth traversal
php-structure path=src/MyService.php depth=2

# Include private members
php-structure path=src/MyService.php showPrivate=true

Example output:

// src/Service/UserService.php
namespace App\Service;

use App\Repository\UserRepository;  // → src/Repository/UserRepository.php
use Psr\Log\LoggerInterface;         // → (vendor)

final class UserService extends AbstractService  // → src/Service/AbstractService.php
    implements UserServiceInterface  // → src/Contract/UserServiceInterface.php
{
    public function __construct(private UserRepository $repository) {}
    public function find(int $id) : ?User {}
    public function save(User $user) : void {}
}

New file-search MCP Tool

Search for text or regex patterns across files with configurable context lines - perfect for finding code patterns, function definitions, or specific content across your codebase.

Features:

  • Plain text and regex pattern support
  • Configurable context lines (0-10) around matches
  • Case-sensitive/insensitive search
  • File glob patterns (e.g., *.php)
  • Per-file and total match limits
  • Shows file size and modification time in results
  • Respects exclude configuration
  • Auto-skips binary files and common non-code directories (vendor, node_modules, .git)

Example usage:

{
  "query": "implements Repository",
  "path": "src",
  "pattern": "*.php",
  "contextLines": 3
}

Multi-Project Support for MCP Tools

MCP tools can now work with multiple projects without switching context. Configure whitelisted projects in context.yaml and use the project parameter to target specific projects.

Configuration:

projects:
  - name: frontend
    description: Frontend application
  - name: backend
    description: Backend API

Affected tools: directory-list, file-read, file-write, file-replace-content, file-search, php-structure, git-status, git-add, git-commit

A new projects-list tool returns available projects for AI discovery.

Flexible Arguments with Blocked Properties Validation

Custom tools now support flexible argument handling through a container argument, with the ability to block sensitive argument names for security.

tools:
  - id: bash
    schema:
      flexibleArg: args
      blockedProperties:
        - password
        - secret
        - token
      properties:
        args:
          type: object
          description: 'Command object: {"cmd": "ls -la"}'
    commands:
      - cmd: bash
        args: ["-c", "{{cmd}}"]

Auto-Switch Option for project:add Command

New --switch (or -s) flag automatically switches to a newly added project after registration, eliminating the need for a separate command.

# Add and switch in one command
ctx project:add . --name=my-backend --switch

# Short form
ctx project:add . --name=my-backend -s

🔧 Improvements

Line Range Support for file-read Tool

Read specific portions of files without loading entire content - ideal for examining specific code sections.

New parameters:

  • startLine - First line to read (1-based, inclusive)
  • endLine - Last line to read (1-based, inclusive)
{
  "path": "src/Service/UserService.php",
  "startLine": 100,
  "endLine": 150
}

Example output:

=== src/Service/UserService.php (lines 100-150 of 423) ===

100 |     public function createUser(array $data): User
101 |     {
...

Multi-File Read Support for file-read Tool

Read multiple files in a single request via the paths parameter, reducing round-trips for batch operations.

{
  "paths": ["src/Entity/User.php", "src/Entity/Post.php", "src/Repository/UserRepository.php"]
}

Features:

  • Backward compatible (path parameter still works)
  • Graceful partial failure - continues reading if some files fail
  • Automatic path deduplication
  • Configurable limits (max files, max file size)

Cross-Platform Line Ending Normalization for file-replace-content

The file-replace-content tool now automatically handles line ending differences between platforms, fixing silent failures when files have CRLF line endings but MCP requests contain LF patterns.

Features:

  • Automatic line ending detection (CRLF/LF/CR)
  • Normalizes search/replace patterns to match file's line ending style
  • Preserves original file's line ending convention

Exclude Configuration Integration

The directory-list and file-search tools now respect exclude patterns/paths defined in context.yaml, automatically filtering out files and directories matching exclude rules.

Configuration example:

exclude:
  # File patterns to exclude (glob patterns)
  patterns:
    - "**/.env*"
    - "**/config/secrets.yaml"
    - "**/*.pem"
    - "**/*.key"
  
  # Paths to exclude (exact directories or files)
  paths:
    - ".secrets/"
    - "config/credentials/"
    - "node_modules"
    - "vendor"

Now when using directory-list or file-search, files matching these patterns will be automatically excluded from results - protecting sensitive files from being exposed through MCP tools.


🧪 Testing Infrastructure

MCP Inspector Integration Tests

Introduced comprehensive integration tests for MCP tools using the @modelcontextprotocol/inspector CLI.

New test infrastructure:

  • McpInspectorClient - Wrapper for MCP Inspector CLI with methods for listing tools, calling tools, and managing resources/prompts
  • McpInspectorResult - Value object for parsing CLI responses with JSON parsing, content extraction, and error detection
  • McpInspectorTestCase - Base PHPUnit test case with temporary directory management, file creation helpers, and custom assertions

📦 Dependencies

  • Updated ctx/mcp-server library

🔗 Related Issues

  • #278 - Add Auto-Switch Option to project:add Command
  • #292 - Multi-Project Support for MCP Tools
  • #293 - Tool Interceptor Pipeline
  • #294 - Add line ending normalization to file-replace-content tool
  • #295 - Add multi-file read support to file-read tool
  • #301 - Add flexible arguments support with blocked properties validation

Full Changelog: 1.32...1.33

1.33.0-beta1

15 Jan 15:25
909af19

Choose a tag to compare

1.33.0-beta1 Pre-release
Pre-release

What's Changed

Full Changelog: 1.33.0-beta...1.33.0-beta1

v1.33.0-beta

13 Jan 18:25

Choose a tag to compare

v1.33.0-beta Pre-release
Pre-release

What's Changed

Full Changelog: 1.32.3-beta...1.33.0-beta

v1.32.3-beta

09 Jan 08:40
efd0359

Choose a tag to compare

v1.32.3-beta Pre-release
Pre-release

What's Changed

  • Add --switch flag to project:add command for automatic project switching by @butschster in #286

Full Changelog: 1.32.1...1.32.3-beta

v1.32.1

06 Oct 12:56
5eb201d

Choose a tag to compare

What's Changed

Full Changelog: 1.32.0...1.32.1