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:
| Flag | Description |
|---|---|
stdio | A local process (e.g. an npx package): command, arguments, env vars |
http / sse | A 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).
Installing
List what your teams offer, then install:
localskills mcp list
localskills mcp install acme/githubBy default the CLI installs into every detected tool that supports the server's transport. Narrow it with flags:
| Flag | Description |
|---|---|
-t, --target <platforms> | Comma-separated targets, e.g. claude,cursor |
-g, --global | Install into user-level configs |
-p, --project [dir] | Install into project configs (default: cwd) |
--var NAME=value | Provide a member-supplied value non-interactively (CI) |
--force | Overwrite an entry that localskills did not create |
Supported tools and the config file each install writes:
| Flag | Description |
|---|---|
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) |
opencode | opencode.json (project) / ~/.config/opencode/opencode.json |
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 / ○ NoRequirements 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.
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 pullrewrites 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.