executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
registry-admin-apiOperate ContextForge registry and Admin/REST APIs for entities, schemas, pagination, catalog, tags, and import/export.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when the task is about ContextForge registry entities, Admin/REST API behavior, entity schemas, service boundaries, catalog/tag workflows, import/export, JSON Schema/OpenAPI tool generation, or safe API smoke checks.
Do not use this sub-skill for MCP transport/session protocol behavior,
RBAC policy interpretation, plugin policy chains, or broad pre-merge validation.
Route those to sibling skills when available:
../mcp-transports-federation/SKILL.md, ../auth-rbac-security/SKILL.md,
../plugins-observability/SKILL.md, and
../development-validation/SKILL.md.
ContextForge is a FastAPI gateway for MCP/A2A/REST/gRPC federation. Registry state is modeled as gateways, tools, resources, prompts, roots, virtual servers, A2A agents, tags, catalog entries, and import/export envelopes. The Admin UI is HTMX/templates-backed; API and service truth lives in routers, Pydantic schemas, SQLAlchemy models, and services.
There are two main HTTP route surfaces:
/v1/... API routes for programmatic clients./tools and /admin/...
when legacy route shims are enabled.Root health endpoints /health and /ready are unversioned. The diagnostics
version endpoint is /v1/version, with a legacy /version alias when legacy
routes are mounted.
Most API calls require:
Authorization: Bearer <jwt-or-session-token>
Content-Type: application/json
Leave token-scoping and RBAC semantics to the auth/security sub-skill; for this
sub-skill it is enough to know that missing or insufficient bearer credentials
usually surface as 401 or 403, and list/create results are visibility/team
filtered by request context.
Use the entity names consistently:
GET /health.tools.create, tools.read,
servers.create, and servers.read.input_schema and output_schema from an OpenAPI spec
with /v1/tools/generate-schemas-from-openapi; see
OpenAPI tool generation.POST /v1/tools with body {"tool": {...}, "team_id": null} for REST
tool creation. Handle 409 by reading existing tools and either reuse/update
the existing tool or choose a new name.POST /v1/servers with body {"server": {"name": ..., "associated_tools": ["<tool-id>"]}}.GET /v1/servers/{server_id}/tools./v1/tools, /v1/servers, /v1/gateways,
/v1/resources, /v1/prompts, and /v1/a2a return plain arrays by default.
Add include_pagination=true to get a cursor response with entity key plus
nextCursor./v1/admin/tools and /admin/tools use
page/per_page and always return data, pagination, and links.nextCursor from an Admin endpoint, change the client to
read pagination.has_next and links.next or call the matching main endpoint.The bundled helper is non-mutating by default and uses only Python stdlib:
cd <registry-admin-api skill directory>
python scripts/contextforge_api_smoke.py \
--base-url http://localhost:4444 \
--token "$MCPGATEWAY_BEARER_TOKEN" \
--check-version
Without a token, it checks only /health. With a token, it can also read
/v1/version and list a read-only endpoint. Use --help for flags.
SKILL.md router-like; put route tables, schemas, long examples,
and troubleshooting matrices in references/.