Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
ddee325
feat: update GetEntitiesTool and GetEntityByRefTool to support JSON A…
Coderrob Sep 17, 2025
2c84d9b
feat: enhance tool metadata validation and update tools manifest with…
Coderrob Sep 18, 2025
20d2758
style: streamline parameter formatting in tools manifest for consistency
Coderrob Sep 18, 2025
b8ec8b7
feat: add copyright notice and license information to validate-tool-m…
Coderrob Sep 18, 2025
38fdc2f
refactor: update Rollup configuration to improve external dependency …
Coderrob Sep 18, 2025
ce61b2a
feat: enhance CI/CD workflows by adding Corepack setup for Yarn 4 and…
Coderrob Sep 18, 2025
eb182b9
refactor: rename enhanced scripts and update tool metadata for consis…
Coderrob Sep 18, 2025
dd917c7
chore: update project license from MIT to GPLv3 in README and package…
Coderrob Sep 18, 2025
eeb5dae
refactor: streamline response formatting in GetEntityByRefTool and Ge…
Coderrob Sep 18, 2025
2960a53
refactor: update CI workflow to use a single Node.js version (20.x)
Coderrob Sep 18, 2025
2b57029
refactor: simplify CI workflow by removing develop branch and separat…
Coderrob Sep 19, 2025
c3f3202
refactor: streamline CI and release workflows by removing node versio…
Coderrob Sep 19, 2025
7f32aa9
feat: update tool parameters and response handling
Coderrob Sep 19, 2025
efc2a65
refactor: change mockResponse type to Partial<AxiosResponse> for bett…
Coderrob Sep 19, 2025
19ab2b3
refactor: remove yarn cache configuration from CI and release workflows
Coderrob Sep 19, 2025
1c7d96f
fix: correct command for validating build outputs in CI and release w…
Coderrob Sep 19, 2025
a289692
feat: Implement advanced tool management system with execution strate…
Coderrob Sep 19, 2025
012809d
feat: Add enhancement implementation plan for natural language catalo…
Coderrob Sep 19, 2025
8bb7bc6
refactor: remove tool metadata and registrar implementations
Coderrob Sep 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 68 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: CI
name: Build and Test

on:
push:
Expand All @@ -10,17 +10,14 @@ jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]

steps:
- uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
node-version: 20.x
registry-url: "https://registry.npmjs.org"

- name: Enable Corepack
run: corepack enable
Expand All @@ -31,15 +28,76 @@ jobs:
- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Lint
- name: Run linting
run: yarn lint

- name: Test
- name: Run tests
run: yarn test

- name: Upload coverage
- name: Build the project
run: yarn build

- name: Validate build outputs
run: yarn build:validate

- name: Test global installation (CommonJS)
run: |
# Test that the built CJS file can execute
node dist/index.cjs --help || echo "Expected: needs env vars"

- name: Test global installation (ESM)
run: |
# Test that the built ESM file can execute
node dist/index.mjs --help || echo "Expected: needs env vars"

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-node-${{ matrix.node-version }}
path: |
dist/
!dist/**/*.map
retention-days: 7

- name: Upload coverage (if present)
if: success()
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coverage

# Job to test publishing (dry run)
publish-test:
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'pull_request'

steps:
- uses: actions/checkout@v4

- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x

- name: Enable Corepack
run: corepack enable

- name: Setup Yarn 4
run: corepack prepare yarn@4 --activate

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Build the project
run: yarn build

- name: Test npm pack
run: |
npm pack --dry-run
echo "✅ Package can be packed successfully"

- name: Verify package contents
run: |
echo "📦 Package contents that would be published:"
npm pack --dry-run 2>/dev/null | grep -E "^\s*[0-9]+" || true
70 changes: 70 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Release

on:
push:
tags:
- "v*"

jobs:
release:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
registry-url: "https://registry.npmjs.org"

- name: Enable Corepack
run: corepack enable

- name: Setup Yarn 4
run: corepack prepare yarn@4 --activate

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Run tests
run: yarn test

- name: Build the project
run: yarn build

- name: Validate build
run: yarn build:validate

- name: Publish to NPM
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Create GitHub Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body: |
## Changes in this Release

- Built with Rollup for optimized dual-format output
- CommonJS and ESM bundles available
- Global installation support via npm

## Installation

```bash
npm install -g @coderrob/backstage-mcp-server
```

## Usage

```bash
backstage-mcp-server
```
draft: false
prerelease: false
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ dist
.vscode-test

# yarn v2
.yarn/sdks
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
Expand Down
26 changes: 26 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Source files
src/
tsconfig*.json
rollup.config.js
jest.config.mjs
eslint.config.js

# Development files
*.test.ts
*.spec.ts
__mocks__/
coverage/
.vscode/

# Documentation (except main files)
planning.md
TODO.md

# Build artifacts not needed in package
*.tsbuildinfo
*.log
node_modules/

# Git
.git/
.gitignore
12 changes: 12 additions & 0 deletions .vscode/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"servers": {
"backstage": {
"command": "node",
"args": ["dist/index.cjs"],
"env": {
"BACKSTAGE_BASE_URL": "http://localhost:7007",
"BACKSTAGE_TOKEN": "eyJ0eXAiOiJ2bmQuYmFja3N0YWdlLnVzZXIiLCJhbGciOiJFUzI1NiIsImtpZCI6Ijc2MjRjZmQxLWE1ZDgtNGJhNC1hYjFmLWU1M2I2NWRlZTIzNSJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjcwMDcvYXBpL2F1dGgiLCJzdWIiOiJ1c2VyOmRldmVsb3BtZW50L2d1ZXN0IiwiZW50IjpbInVzZXI6ZGV2ZWxvcG1lbnQvZ3Vlc3QiXSwiYXVkIjoiYmFja3N0YWdlIiwiaWF0IjoxNzU4MjkxMjQxLCJleHAiOjE3NTgyOTQ4NDEsInVpcCI6IkJ1aWltMzh0Z1RXWjgzY2JSTUk4UDhZdHEtTUlVdGlOSG0wOVZXR2MzQ2RmR3pCZVVIbDNyUVdWMk93NEhjSm9LSUlfU3dtTG03XzNvUzZGazM1T1lBIn0.i9JPDXMeO-N5O1XeuVjzpexekcU2ryjfdvy56Ur1QExjuk0pat2awyfJ5XPljKJ1sGLKwIy92yE-rvOdB44AxQ"
}
}
}
}
32 changes: 0 additions & 32 deletions .yarn/sdks/eslint/bin/eslint.js

This file was deleted.

32 changes: 0 additions & 32 deletions .yarn/sdks/eslint/lib/api.js

This file was deleted.

32 changes: 0 additions & 32 deletions .yarn/sdks/eslint/lib/unsupported-api.js

This file was deleted.

14 changes: 0 additions & 14 deletions .yarn/sdks/eslint/package.json

This file was deleted.

5 changes: 0 additions & 5 deletions .yarn/sdks/integrations.yml

This file was deleted.

32 changes: 0 additions & 32 deletions .yarn/sdks/prettier/bin/prettier.cjs

This file was deleted.

Loading