v0.3.0 — Table datasets with aliases, DELETE /mcp, SSE hardening
Added
- Table datasets with aliases (
database.datasets): the AgentPress > API Keys screen now has a searchable table picker (every table in the database). Each selected table gets an alias — the AI agent only ever sees and uses that alias, never the real table name. DELETE /mcpendpoint for explicit session termination (Streamable HTTP, per the MCP spec).Mcp-Session-Idheader returned on theinitializeresponse.- Configurable SSE ping interval (
agentpress_sse_ping_interval, default 15s) in Settings.
Changed
db_list_tables/db_describeno longer expose the real table name for keys on the older format (database.tables) — thewp_prefix is stripped from the name shown to the agent. Permission logic and executed SQL are unchanged for existing keys.- SSE keepalive loop now runs at 1-second granularity — ping cadence and idle-timeout checks are more precise and configurable.
Fixed
Auth::can()was incorrectly denying thedatabasepermission group intools/list/tools/callfor any admin-configured key —db_query/db_insert/db_update/db_list_tablesnow work correctly.- SSE connection slot release now uses
register_shutdown_function()— verified against a real instance (Docker + WordPress + MySQL) that without this, the slot was only released after the 10-minute safety-net TTL, even for connections that had been dead for a long time.
Compatibility: API keys created on previous versions keep working with no configuration changes required.
Full changelog: https://github.com/multideskio/agentpress/blob/main/CHANGELOG.md