Releases: context-hub/generator
1.34.0-beta5
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
What's Changed
- Update README by @butschster in #323
- Fix #325: Make
ConfigRegistryAccessor::getDocuments()return an emptyDocumentRegistry+ AddDocumentRegistry::hasItems()by @vjik in #326
New Contributors
Full Changelog: 1.34.0-beta3...1.34.0-beta4
1.34.0-beta3
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
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
What's Changed
- feat: add FileInsertContent and FileDeleteContent MCP tools for line-based file operations by @butschster in #311
- feat: add project:remove command and modernize project UX by @butschster in #309
- RAG-Based Knowledge Store by @butschster in #305
- Fix composer by @butschster in #312
- Fix build binary by @butschster in #313
- Add path-based project resolution in YAML context by @butschster in #315
Full Changelog: 1.33.0...1.34.0-beta1
1.33.0
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=trueExample 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 APIAffected 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 (
pathparameter 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-serverlibrary
🔗 Related Issues
- #278 - Add Auto-Switch Option to
project:addCommand - #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
What's Changed
- Refactor filesystem tools by @butschster in #291
- Add File Search Tool & Line Range Support for File Read by @butschster in #297
- Add php-structure MCP Tool for PHP Code Analysis by @butschster in #298
Full Changelog: 1.33.0-beta...1.33.0-beta1
v1.33.0-beta
What's Changed
- update mcp-server version by @butschster in #290
Full Changelog: 1.32.3-beta...1.33.0-beta
v1.32.3-beta
What's Changed
- Add
--switchflag to project:add command for automatic project switching by @butschster in #286
Full Changelog: 1.32.1...1.32.3-beta