Context
Currently the MCP server hand-rolls all LibreGraph API calls using internal
client.GetJSON/client.ListJSON/client.PostJSON helpers with hardcoded
path strings (e.g. fmt.Sprintf("/graph/v1beta1/drives/%s/items/%s/invite", ...)).
This was flagged in #11 by @DeepDiver1975 — the ownCloud org already maintains
a generated Go SDK at https://github.com/owncloud/libre-graph-api-go that covers
the full API surface.
Problem
Hand-rolling paths leads to subtle bugs (wrong API version prefix, wrong response
envelope format, etc.) that are hard to catch without a live instance. PR #11 is
a direct result of this — several endpoints were broken because v1.0 was used
instead of v1beta1.
Proposed Solution
Replace the internal HTTP helpers with the libre-graph-api-go SDK:
- Proper Go types for all requests/responses
- API paths and version prefixes maintained by the SDK
- Future API changes are picked up via dependency update
Acceptance Criteria
Context
Currently the MCP server hand-rolls all LibreGraph API calls using internal
client.GetJSON/client.ListJSON/client.PostJSONhelpers with hardcodedpath strings (e.g.
fmt.Sprintf("/graph/v1beta1/drives/%s/items/%s/invite", ...)).This was flagged in #11 by @DeepDiver1975 — the ownCloud org already maintains
a generated Go SDK at https://github.com/owncloud/libre-graph-api-go that covers
the full API surface.
Problem
Hand-rolling paths leads to subtle bugs (wrong API version prefix, wrong response
envelope format, etc.) that are hard to catch without a live instance. PR #11 is
a direct result of this — several endpoints were broken because
v1.0was usedinstead of
v1beta1.Proposed Solution
Replace the internal HTTP helpers with the
libre-graph-api-goSDK:Acceptance Criteria
libre-graph-api-goadded as a dependencyshares.go,spaces.go,workflows.go,resources.gouse SDK clients instead of raw HTTP helpers
client.ListJSON/client.GetJSON/client.PostJSONhelpersremoved or scoped to endpoints not covered by the SDK