feat: serve and show member-server skills on gateways

Merged
SI
2d ago
+873-26

Requested by Sagar ยท project thread

Linear: AIM-829

Summary

Server

  • Gateway MCP dispatch (serve_meta.go, shared by stored gateways and the organization gateway) now handles skills/list, skills/get and resources/read of skill:// URIs. It also declares the Skills extension on initialize and server/discover while skills-over-mcp is on for the organization.
  • New serve_meta_skills.go builds the gateway's skill scope. The target is the stored gateway (meta_mcp_server) or organization_gateway. MemberMCPServerIDs holds the members the caller is actually served through the gateway: admitted, not hidden, and for a consented connection, approved with a selected tool. Skills requests load the consent catalog so that last filter applies.
  • Caller rules match the hosted surface: only a validated user session or an unstamped dashboard session is a recipient. API keys, assistants and other credentials get an empty listing. Agent gateways serve no skills (out of scope for v1).
  • The hosted list/get/read handlers are split into scope-taking cores (listServedSkills, getServedSkill, readServedSkill) that both surfaces share. Gateway reads are recorded as activations and logged under the gateway, on the meta metric surface.

Dashboard

  • The gateway Skills tab gets a read-only Inherited from servers section below the gateway's own links: one row per skill linked to a member server, with the servers it comes from. Skills are managed on the member server's own Skills tab.

Motivation

The direct-linking design (decided 2026-10-18) has gateways serve their own skill links plus their member servers' links, and the remote server Skills tab already tells users that linked skills reach agents through gateways. The resolver supported this through Scope.MemberMCPServerIDs, but the gateway surface never dispatched the skills methods. So neither direct gateway links nor inherited member links reached agents, and the gateway tab only showed direct links.

Gutternote review steps

  1. Setup: enable skills-over-mcp for the org. Create a gateway with at least one member server, and add a project skill to that member server on its Skills tab.
  2. Sidebar โ†’ MCP โ†’ open the gateway โ†’ Skills tab.
  3. Expect: under the gateway's own Skills list, a new Inherited from servers section lists the skill, with the member server's name in the From column. The skill name links to the skill page.

Also check: the empty state ("No inherited skills") on a gateway whose members have no skills.

๐Ÿค– Generated with Claude Code

https://claude.ai/code/session_011XLiZC2imSKsVczxS9s3AJ


๐Ÿš€ Preview Environment (PR #8268)

Preview URL: https://pr-8268.dev.getgram.ai

ComponentStatusDetailsUpdated (UTC)
โœ… DatabaseReadyExisting database reused2026-10-30 21:32:22.
โœ… ImagesAvailableContainer images ready2026-10-30 21:34:32.

Gram Preview Bot