mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-11 03:40:05 +00:00
Implement the server-managed MCP server catalog HTTP API on top of the OpenAPI spec and the `fabro-mcp-store` foundation, mirroring the automations feature end to end. - fabro-api: reuse the domain model as the wire contract via `with_replacement` instead of parallel DTOs — `McpServer` → `McpServerDefinition`, `CreateMcpServerRequest` → `McpServerDraft`, `ReplaceMcpServerRequest` → `McpServerReplace`. The transport types (`McpTransport`, `McpHttpProtocol`) are already mapped to the domain `u64`/`u16` widths, so the spec's signed integer formats never leak. Add identity + JSON-parity tests. - fabro-types: derive serde on `McpServerDefinition` so it can serve as the public response type. - fabro-server: wire the `McpServerStore` into `AppState` (load from the active config's `mcps/` directory) and add the `list/create/get/replace/delete` handlers with ETag-on-201, required `If-Match` on PUT/DELETE, and the same store-error → status mapping automations uses (404/409/422/500). Register the routes. - Regenerate the TypeScript Axios client against the merged spec. Credential-literal validation (warn vs hard-reject for credential-looking literal env/header values) is left intentionally unenforced behind a TODO; that decision is still open. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| scripts | ||
| src | ||
| tests | ||
| openapitools.json | ||
| package.json | ||
| tsconfig.json | ||