Skip to content

Commit 23a038e

Browse files
feat: Add CHANGELOG and workflow to automatically update it
[skip ci]
1 parent ac4940f commit 23a038e

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed

.github/workflows/changelog.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: "Update Changelog"
2+
3+
on:
4+
release:
5+
types: [released]
6+
7+
permissions:
8+
contents: write
9+
10+
jobs:
11+
update:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
with:
18+
ref: main
19+
20+
- name: Update Changelog
21+
uses: stefanzweifel/changelog-updater-action@v1
22+
with:
23+
latest-version: ${{ github.event.release.name }}
24+
release-notes: ${{ github.event.release.body }}
25+
26+
- name: Commit updated CHANGELOG
27+
uses: stefanzweifel/git-auto-commit-action@v5
28+
with:
29+
branch: main
30+
commit_message: Update CHANGELOG
31+
file_pattern: CHANGELOG.md

CHANGELOG.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Changelog
2+
3+
All notable changes to `php-mcp/server` will be documented in this file.
4+
5+
## Release v1.0.0 - Initial Release
6+
7+
🚀 **Initial release of PHP MCP SERVER!**
8+
9+
This release introduces the core implementation of the Model Context Protocol (MCP) server for PHP applications. The goal is to provide a robust, flexible, and developer-friendly way to expose parts of your PHP application as MCP Tools, Resources, and Prompts, enabling standardized communication with AI assistants like Claude, Cursor, and others.
10+
11+
### ✨ Key Features:
12+
13+
* **Attribute-Based Definitions:** Easily define MCP Tools (`#[McpTool]`), Resources (`#[McpResource]`, `#[McpResourceTemplate]`), and Prompts (`#[McpPrompt]`) using PHP 8 attributes directly on your methods.
14+
* **Automatic Metadata Inference:** Leverages method signatures (parameters, type hints) and DocBlocks (`@param`, `@return`, summaries) to automatically generate MCP schemas and descriptions, minimizing boilerplate.
15+
* **PSR Compliance:** Integrates seamlessly with standard PHP interfaces:
16+
* `PSR-3` (LoggerInterface) for flexible logging.
17+
* `PSR-11` (ContainerInterface) for dependency injection and class resolution.
18+
* `PSR-16` (SimpleCacheInterface) for caching discovered elements and transport state.
19+
* **Automatic Discovery:** Scans configured directories to find and register your annotated MCP elements.
20+
* **Flexible Configuration:** Uses a configuration repository (`ConfigurationRepositoryInterface`) for fine-grained control over server behaviour, capabilities, and caching.
21+
* **Multiple Transports:**
22+
* Built-in support for the `stdio` transport, ideal for command-line driven clients.
23+
* Includes `HttpTransportHandler` components for building standard `http` (HTTP+SSE) transports (requires integration into an HTTP server).
24+
* Provides `ReactPhpHttpTransportHandler` for seamless integration with asynchronous ReactPHP applications.
25+
* **Protocol Support:** Implements the `2024-11-05` version of the Model Context Protocol.
26+
* **Framework Agnostic:** Designed to work in vanilla PHP projects or integrated into any framework.
27+
28+
### 🚀 Getting Started
29+
30+
Please refer to the [README.md](README.md) for detailed installation instructions, usage examples, and core concepts. Sample implementations for `stdio` and `reactphp` are available in the `samples/` directory.
31+
32+
### ⚠️ Important Notes
33+
34+
* When implementing the `http` transport using `HttpTransportHandler`, be aware of the critical server environment requirements detailed in the README regarding concurrent request handling for SSE. Standard synchronous PHP servers (like `php artisan serve` or basic Apache/Nginx setups) are generally **not suitable** without proper configuration for concurrency (e.g., PHP-FPM with multiple workers, Octane, Swoole, ReactPHP, RoadRunner, FrankenPHP).
35+
36+
### Future Plans
37+
38+
While this package focuses on the server implementation, future projects within the `php-mcp` organization may include client libraries and other utilities related to MCP in PHP.

0 commit comments

Comments
 (0)