MCP Servers

Team admins register MCP server configurations centrally, and members install them into their AI tools with one command. No more copy-pasting JSON snippets around Slack — the registry is the source of truth, and installs stay in sync.

Registering a server

Open Dashboard → Team → MCP Servers and register a server. Three transports are supported — one local, two remote:

FlagDescription
stdioA local process (e.g. an npx package): command, arguments, env vars
http / sseA hosted remote server: URL plus headers

Env vars and headers are declared as specs. Each spec is either a fixed value (plain, non-secret config the admin sets once) or member-supplied (each member provides their own value at install time).

Note: Never put secrets in fixed values — they are stored in plain text on the platform. Mark secrets as member-supplied instead; those values are prompted locally and never reach localskills.sh.

Installing

List what your teams offer, then install:

localskills mcp list
localskills mcp install acme/github

By default the CLI installs into every detected tool that supports the server's transport. Narrow it with flags:

FlagDescription
-t, --target <platforms>Comma-separated targets, e.g. claude,cursor
-g, --globalInstall into user-level configs
-p, --project [dir]Install into project configs (default: cwd)
--var NAME=valueProvide a member-supplied value non-interactively (CI)
--forceOverwrite an entry that localskills did not create

Supported tools and the config file each install writes:

FlagDescription
claude.mcp.json (project) / ~/.claude.json (global)
cursor.cursor/mcp.json (project) / ~/.cursor/mcp.json (global)
windsurf~/.codeium/windsurf/mcp_config.json (global only)
copilot.vscode/mcp.json (project only, native inputs for secrets)
cline~/.cline/data/settings/cline_mcp_settings.json (global only)
codex~/.codex/config.toml (global only)
opencodeopencode.json (project) / ~/.config/opencode/opencode.json
Note: aider is not a target — it has no MCP support. Installing an org config means your machine runs a command your team admins defined; it is the same trust model as installing team skills.

Linking servers to skills

A private skill that depends on an MCP server (say, a Linear triage skill that needs the Linear server) can declare it as a required MCP server. Open the skill's Edit page and tick the servers it needs — requirements are shown on the skill page, and localskills install offers to install any that are missing right after the skill itself:

$ localskills install acme/linear-triage
◇ Installed to 1 target(s).
◆ Install required MCP server Linear (acme/linear)?
│ ● Yes / ○ No

Requirements exist only on private team skills, so installers are always members. The prompt appears in interactive terminals; CI and other non-interactive runs get a printed note with the exact localskills mcp install commands instead. Offers are location- and platform-aware: a server in your user-level config counts everywhere for that tool, a project install only counts for that project, and each targeted tool needs its own entry — installing the skill in a new project, or adding a new tool (say Cursor after Claude Code), offers its servers there again, writing only the missing entries. Declining never affects the skill install, and localskills pull lists requirements added after you installed.

Note: Requirements are limited to private skills for now — the MCP registry itself is member-only, so a public installer couldn't fetch the servers anyway. Making a linked skill public or unlisted is rejected until its requirements are removed. Skill pages show only a required server's name, slug, and transport — never its command, URL, env, or headers. Uninstalling a skill never removes MCP servers; other skills or tools may share them.

Requirements are set per skill (not per version) via the edit page or PUT /api/skills/{id} with requiredMcpServerIds, and only servers registered to the skill's own team can be required. Changing them needs skill:update.

Secrets

The platform stores only the names of member-supplied vars. At install the CLI prompts for values (hidden input for secrets) and writes them directly into your tool's own config file — exactly where that tool expects them. The VS Code target goes one step further: it emits native inputs declarations so VS Code prompts you itself and keeps values in its secret storage.

Updating

Every edit to a server bumps its revision. localskills mcp list flags installs that are behind, and:

localskills mcp pull

rewrites drifted entries while preserving the values you supplied at install. If an update added a new required var, the CLI prompts for just that one.

Permissions

Browsing and installing requires the mcpServer:read permission — the built-in member role has it. Registering, editing, and deleting servers requires mcpServer:create/update/delete, held by owners and admins and grantable to custom roles. All changes appear in the team audit log.

MCP Servers — localskills.sh docs