{
  "$comment": "Wave-3 (Platform+) — starter list of blessed MCP servers an org might bless. Edit per-org via `fastpace mcp registry add`. Schema is intentionally tiny: id, name, url, scope, description, install (the JSON snippet that gets merged into .claude/settings.json on install). Org overrides live at .fastpace/mcp-registry.json — when present, that file takes precedence over this bundled list.",
  "schema_version": 1,
  "servers": [
    {
      "id": "filesystem",
      "name": "Filesystem",
      "url": "https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem",
      "scope": "read_only",
      "description": "Local-filesystem read/write inside a single sandboxed root. Most common starter MCP. Bless with scope=read_only for code-search-only use cases.",
      "install": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-filesystem", "${WORKSPACE}"]
      }
    },
    {
      "id": "git",
      "name": "Git",
      "url": "https://github.com/modelcontextprotocol/servers/tree/main/src/git",
      "scope": "read_only",
      "description": "Read-only git operations (log, blame, show, diff). Bless org-wide so agents can answer 'who last touched X' without shelling out.",
      "install": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "${WORKSPACE}"]
      }
    },
    {
      "id": "github",
      "name": "GitHub",
      "url": "https://github.com/github/github-mcp-server",
      "scope": "read_write",
      "description": "GitHub API access — issues, PRs, code search. Bless with allowed_repos scope so agents can't touch repos outside the org.",
      "install": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-github"],
        "env": { "GITHUB_TOKEN": "${env:GITHUB_TOKEN}" }
      }
    },
    {
      "id": "postgres",
      "name": "PostgreSQL",
      "url": "https://github.com/modelcontextprotocol/servers/tree/main/src/postgres",
      "scope": "read_only",
      "description": "Read-only Postgres query access. Bless with a dedicated read-only role and a connection string scoped to non-PII schemas.",
      "install": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-postgres", "${env:POSTGRES_RO_URL}"]
      }
    },
    {
      "id": "slack",
      "name": "Slack",
      "url": "https://github.com/modelcontextprotocol/servers/tree/main/src/slack",
      "scope": "read_write",
      "description": "Slack channel/DM access. Bless with allowed_channels scope — never grant org-wide channel access by default.",
      "install": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-slack"],
        "env": { "SLACK_BOT_TOKEN": "${env:SLACK_BOT_TOKEN}", "SLACK_TEAM_ID": "${env:SLACK_TEAM_ID}" }
      }
    },
    {
      "id": "linear",
      "name": "Linear",
      "url": "https://github.com/linear/linear-mcp",
      "scope": "read_write",
      "description": "Linear issue tracker — list, create, comment, transition. Bless with allowed_teams scope so agents can't escalate across teams.",
      "install": {
        "command": "npx",
        "args": ["-y", "@linear/linear-mcp"],
        "env": { "LINEAR_API_KEY": "${env:LINEAR_API_KEY}" }
      }
    },
    {
      "id": "sentry",
      "name": "Sentry",
      "url": "https://github.com/getsentry/sentry-mcp",
      "scope": "read_only",
      "description": "Sentry error/issue read access — pair with incident replay for postmortems. Bless with allowed_projects scope.",
      "install": {
        "command": "npx",
        "args": ["-y", "@sentry/mcp-server"],
        "env": { "SENTRY_AUTH_TOKEN": "${env:SENTRY_AUTH_TOKEN}", "SENTRY_ORG": "${env:SENTRY_ORG}" }
      }
    },
    {
      "id": "jira",
      "name": "Jira",
      "url": "https://github.com/atlassian/jira-mcp",
      "scope": "read_write",
      "description": "Jira issue tracker. Bless with allowed_projects scope.",
      "install": {
        "command": "npx",
        "args": ["-y", "@atlassian/jira-mcp"],
        "env": { "JIRA_URL": "${env:JIRA_URL}", "JIRA_EMAIL": "${env:JIRA_EMAIL}", "JIRA_API_TOKEN": "${env:JIRA_API_TOKEN}" }
      }
    },
    {
      "id": "confluence",
      "name": "Confluence",
      "url": "https://github.com/atlassian/confluence-mcp",
      "scope": "read_only",
      "description": "Confluence page read access. Useful for grounding agents in your design docs without giving them write access.",
      "install": {
        "command": "npx",
        "args": ["-y", "@atlassian/confluence-mcp"],
        "env": { "CONFLUENCE_URL": "${env:CONFLUENCE_URL}", "CONFLUENCE_EMAIL": "${env:CONFLUENCE_EMAIL}", "CONFLUENCE_API_TOKEN": "${env:CONFLUENCE_API_TOKEN}" }
      }
    },
    {
      "id": "fetch",
      "name": "Fetch (HTTP)",
      "url": "https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",
      "scope": "read_only",
      "description": "Generic HTTP GET. Often blessed alongside an allowlist of allowed domains so agents can read API docs / RFCs without scraping the open web.",
      "install": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-fetch"]
      }
    }
  ]
}
