Skip to content

Publish cesiumjs-mcp to npm to eliminate local clone requirement #37

Description

@MKartaviciute

Context

Depends on #35 (cesiumjs-mcp gateway package). Once the gateway exists as a buildable package, publishing it to npm removes the last remaining friction blocker from #34 -- users no longer need to clone the repo or run a build.

Current state (after #35)

Users still need to:

  1. Clone the repo
  2. Run pnpm install && pnpm run build
  3. Point their config at an absolute local path

Goal

Once published, the entire setup becomes:

{
  "cesium": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "cesiumjs-mcp@latest"]
  }
}

No clone. No build. No absolute paths.

Proposed Implementation

1. Package configuration (servers/gateway/package.json)

  • Set "name": "cesiumjs-mcp" and "version": "1.0.0"
  • Add a "bin" entry pointing at the compiled entry point
  • Add "files" array to include only the build/ output
  • Set "publishConfig": { "access": "public" }

2. GitHub Actions publish workflow (.github/workflows/publish-cesiumjs-mcp.yml)

Trigger: push of a tag matching cesiumjs-mcp@*

Steps:

  • Checkout
  • Setup Node 22 + pnpm
  • pnpm install
  • pnpm run build (shared + gateway only)
  • npm publish --workspace servers/gateway

3. Version strategy

Follow the existing monorepo pattern -- gateway version is independent of domain server versions. Each domain package can still be published or kept private separately.

Acceptance Criteria

  • npx -y cesiumjs-mcp@latest starts the gateway without a local clone
  • Package is listed on npmjs.com as cesiumjs-mcp
  • GitHub Actions workflow publishes automatically on cesiumjs-mcp@x.y.z tag push
  • README.md updated to show the npx one-liner as the primary setup path

Out of Scope

  • Publishing individual domain packages (@cesium-mcp/camera-server, etc.)
  • Semantic release or automated changelog (can be a follow-up)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions