Improve redMCP server operations
This commit is contained in:
@@ -32,7 +32,7 @@ environment. Before risky edits, archive the current plugin directories in
|
||||
- Run `validate_helpdesk_outbox_worker.py` after outbox or worker changes,
|
||||
then choose the external index target.
|
||||
|
||||
## 2026-04-25 - redMCP Native Search And Filtering
|
||||
## 2026-04-25 - redMCP Native Search, Filtering, And MCP Operations
|
||||
|
||||
- Touched areas:
|
||||
- `redMCP`
|
||||
@@ -40,22 +40,30 @@ environment. Before risky edits, archive the current plugin directories in
|
||||
- Make Redmine's existing issue filtering and built-in text search explicit
|
||||
before adding external search infrastructure.
|
||||
- Make redMCP runnable as an MCP server for live client testing.
|
||||
- Make the network MCP server easier to debug and restart during local tests.
|
||||
- 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 `projects()`, `listProjects()`, and `project()` for Redmine's
|
||||
`/projects.json` APIs.
|
||||
- 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,
|
||||
- Added PID/status/stop handling to the HTTP server.
|
||||
- Added optional full-argument JSONL debug logging via `--debug-log` or
|
||||
`MCP_DEBUG_LOG`.
|
||||
- Added `redMCP/bin/generate-bearer-token.php`.
|
||||
- Both transports expose Redmine project reads, filtering/search, issue CRUD,
|
||||
Helpdesk-aware reads, and explicit Helpdesk response tools.
|
||||
- Registered both MCP server commands as Composer `bin` entries.
|
||||
- Registered all MCP helper 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.
|
||||
- `php -l redMCP/bin/generate-bearer-token.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
|
||||
@@ -64,6 +72,14 @@ environment. Before risky edits, archive the current plugin directories in
|
||||
`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`.
|
||||
- HTTP PID helpers reported stopped/running states, rejected a duplicate
|
||||
start, stopped the live process, detected a stale PID file, and started
|
||||
with `--force`.
|
||||
- Debug logging wrote JSONL records with full project-tool arguments and did
|
||||
not include the bearer token, `Authorization`, or Redmine API key.
|
||||
- Token generation passed default, `--bytes 48`, and `--env-line` modes.
|
||||
- `redmine_list_projects` returned three projects from 117 total.
|
||||
- `redmine_get_project` returned `fud-helpdesk` by identifier and by id 117.
|
||||
- The live MCP tool calls returned issue search results from seven total for
|
||||
`redMCP-smoke`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user