A skill is the higher-level unit. Most skills are backed by an MCP server, but not all — a skill that needs no external tool executes through the model directly.
The catalog
Your workspace has a catalog of available skills and MCP servers. Browse and search it:jstm skills check <name> answers the practical question: can this skill actually run here? It reports whether the skill needs an MCP server, which one it resolved to, and the resolver’s verdict.
Where catalog entries come from
Three sources feed the catalog, in increasing specificity. Repositories. Point JoyStream at a GitHub repository of skills or MCP servers and sync it. Private repositories work using your own connected GitHub credential.Scope and resolution
Every repository and endpoint is added at a scope:personal, workspace, or org-wide. When the same name exists at more than one scope, the most specific one wins.
jstm registry resolve <kind> <name> shows the winning entry and why it won — which tier it came from and what it beat. jstm registry list --kind mcp --workspace <id> shows the whole resolved view for a workspace.
This matters because a team can override a shared server with their own version without affecting anyone else, and you can always find out which one an agent will actually get.
Credentials
Skills declare the services they require. When an agent runs, JoyStream resolves a credential for each required service from your vault hierarchy and hands it to the MCP server in the environment variable that server expects. If a required credential is missing, the run doesn’t guess — it stops and tells you which provider to connect. See Credentials and vaults.Next
Add your own MCP server
Register an endpoint and connect its key.
Add repositories
Sync skills and servers from GitHub.