The single MCP front door to a shared skill + lingua
collaboration repository. Gitea is the storage and PR engine, but it sits behind this
layer (the facade principle): general users never touch Gitea — everything goes through MCP.
Auth mode on this instance: OIDC (Keycloak)
Add this server as an HTTP MCP endpoint:
claude mcp add --transport http skills https://skills.corp.carbonactive.ch/mcp
Under OIDC you also pass a bearer token
(--header "Authorization: Bearer <token>"). The MCP endpoint is
/mcp — it speaks Streamable HTTP and is not browsable in a browser.
| Browse | list_skills, read_skill, search_skills |
|---|---|
| Use | use_skill (prompt), invoke_skill (run server-side / brokered),
resolve_skill (dependency resolution), service_status |
| Contribute | propose_edit (server opens a Gitea PR for you), publish_private
(owner-only skill, no review), rate_skill, check_skill_draft,
report_usage |
| Operate (maintainer capability) | update_skill, delete_skill, deprecate_skill,
merge_proposal |
Every listing and read is filtered by the caller's entitlement; the operate tools
require the skill.maintain capability.
| DEV-OPEN | Local only, no authentication; every caller is internal-full. Must be
explicitly opted in (ALLOW_DEV_OPEN) — never in a shared deployment. |
|---|---|
| OIDC | Bearer identity via Keycloak. Roles map to capabilities:
internal (full catalogue) · external (only externally-shareable
skills) · maintainer (the operate tools). |
/mcp — the MCP endpoint (Streamable HTTP; not browsable)