Add redMCP Streamable HTTP server

This commit is contained in:
Jason Thistlethwaite
2026-04-25 02:23:48 +00:00
parent 3b6b4d6dba
commit 05c1a4bc97
11 changed files with 631 additions and 15 deletions
+15 -7
View File
@@ -39,25 +39,33 @@ environment. Before risky edits, archive the current plugin directories in
- Purpose:
- Make Redmine's existing issue filtering and built-in text search explicit
before adding external search infrastructure.
- Make redMCP runnable as a stdio MCP server for live client testing.
- Make redMCP runnable as an MCP server for live client testing.
- Behavior changed:
- Added `filterIssues()` as a named alias for Redmine's `/issues.json`
filtering.
- Added `search()` for Redmine's built-in `/search.json` endpoint.
- Added `searchIssues()` for issue-only Redmine text search.
- Added `redMCP/bin/redmcp-server.php`, a dependency-light stdio MCP server
that exposes Redmine filtering/search, issue CRUD, Helpdesk-aware reads, and
explicit Helpdesk response tools.
- Registered the MCP server as a Composer `bin` entry.
- Added a shared MCP dispatcher and transport-specific server wrappers.
- Added `redMCP/bin/redmcp-server.php` for stdio MCP clients.
- Added `redMCP/bin/redmcp-http-server.php` for bearer-token-protected
Streamable HTTP network clients on `/mcp`.
- Both transports expose Redmine filtering/search, issue CRUD,
Helpdesk-aware reads, and explicit Helpdesk response tools.
- Registered both MCP server commands as Composer `bin` entries.
- LAN test result:
- `php -l redMCP/app/RedmineClient.php` passed.
- `php -l redMCP/bin/redmcp-server.php` passed.
- `php -l redMCP/bin/redmcp-http-server.php` passed.
- `composer validate --working-dir=redMCP` passed; Composer emitted PHP 8.5
deprecation notices from system Composer dependencies.
- Live stdio MCP framing test passed for `initialize`, `tools/list`, and
`tools/call` using `redmine_search_issues` against `fud-helpdesk`.
- The live MCP tool call returned two issue search results from seven total
for `redMCP-smoke`.
- Live Streamable HTTP test passed for authenticated `initialize`,
`tools/list`, and `tools/call` using `redmine_search_issues`.
- `redmcp-http-server.php` refused to start without `MCP_SERVER_TOKEN`.
- Unauthenticated `/mcp` returned `401`; wrong path returned `404`.
- The live MCP tool calls returned issue search results from seven total for
`redMCP-smoke`.
## 2026-04-25 - Test Helpdesk Credential Sanitization