Skip to content

Rewrite manage-apis skill from verified platform behavior, #6 - #13

Open
edipsopa wants to merge 1 commit into
masterfrom
feat/improve-manage-apis-skill
Open

Rewrite manage-apis skill from verified platform behavior, #6#13
edipsopa wants to merge 1 commit into
masterfrom
feat/improve-manage-apis-skill

Conversation

@edipsopa

@edipsopa edipsopa commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

Closes #6

Full rewrite of the manage-apis skill based on the current MCP server implementation in planet9, with every claim verified against the source and live-tested on an internal DXP instance (clearly-named probe artifacts, all deleted afterwards).

Headline changes vs the previous skill:

  • apiType is settable at creation (the old "read-only over MCP" section was stale) and is now documented as never changed after creationsave_api won't stop a flip (verified live: it persists silently and produces an unsupported artifact), so the skill hard-forbids it and gives a recreate-and-migrate path instead.
  • Correct recipe for script-backed APIs, including request/response definitions that survive MCP's silent field stripping: property.reference, parent, isParent, and parameter.type are dropped without any error (verified live) — the root cause of the reported "couldn't fix the request/response types" failure. The skill prescribes the shapes that provably store and export correctly: flat definitions, content-level references, inline nesting only in content[].items.
  • Partial-update semantics (verified live): absent key = preserved, null array = wiped, present array = replaced wholesale — so minimal payloads are the safe default and a get→save round-trip of imported definitions is a destructive operation the skill warns against.
  • Role assignment over MCP is a silent no-op (the save schema accepts role but the entity relation is roles; verified live) — routed to the Cockpit; the previous role: write recipe never worked.
  • Traps documented: upsert-on-unknown-id creates ghost records, duplicate names are allowed, delete_api reports success for nonexistent ids, no endpoint protocol validation, and Script Editor hides MCP-created APIs (enableScriptEditor is not settable over MCP).
  • Corrected runtime semantics: restrictAccess applies only when the role check doesn't run; enableProxy is a consumer-side switch (App Designer / generated-client routing), not a proxy-route gate; table-API runtime access is gated by the table's own roles, not the API artifact's.
  • New "What MCP can NOT do" section and an error/symptom table.

A detailed verification log (each claim mapped to a source location or a live experiment) is available and can be attached as a PR comment on request.

Also noticed while verifying: the 24.15 docs page mcp-server/apis.html still has an intro paragraph saying APIs are exposed read-only over MCP, while the same page documents save_api/delete_api — worth a docs fix.

Updated the skill description and added details about managing Neptune DXP API artifacts, including tools and common patterns.
@edipsopa
edipsopa requested a review from namesweretaken July 17, 2026 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Review and improve manage-apis - Skill

1 participant