diff --git a/.changeset/lovely-lands-clap.md b/.changeset/lovely-lands-clap.md index 949161943b..61715c1cc5 100644 --- a/.changeset/lovely-lands-clap.md +++ b/.changeset/lovely-lands-clap.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-mcp-backend': minor +'@backstage/plugin-mcp-actions-backend': minor --- Initial implementation of an `mcp` backend diff --git a/packages/backend/package.json b/packages/backend/package.json index 9471b9f012..af0382116b 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -47,7 +47,7 @@ "@backstage/plugin-events-backend": "workspace:^", "@backstage/plugin-events-backend-module-google-pubsub": "workspace:^", "@backstage/plugin-kubernetes-backend": "workspace:^", - "@backstage/plugin-mcp-backend": "workspace:^", + "@backstage/plugin-mcp-actions-backend": "workspace:^", "@backstage/plugin-notifications-backend": "workspace:^", "@backstage/plugin-permission-backend": "workspace:^", "@backstage/plugin-permission-backend-module-allow-all-policy": "workspace:^", diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index b068ad2711..f46e947b0d 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -62,5 +62,5 @@ backend.add(import('@backstage/plugin-notifications-backend')); backend.add(import('./instanceMetadata')); backend.add(import('@backstage/plugin-events-backend-module-google-pubsub')); -backend.add(import('@backstage/plugin-mcp-backend')); +backend.add(import('@backstage/plugin-mcp-actions-backend')); backend.start(); diff --git a/plugins/mcp-backend/.eslintrc.js b/plugins/mcp-actions-backend/.eslintrc.js similarity index 100% rename from plugins/mcp-backend/.eslintrc.js rename to plugins/mcp-actions-backend/.eslintrc.js diff --git a/plugins/mcp-backend/README.md b/plugins/mcp-actions-backend/README.md similarity index 69% rename from plugins/mcp-backend/README.md rename to plugins/mcp-actions-backend/README.md index 03d2c24449..5e1ab57904 100644 --- a/plugins/mcp-backend/README.md +++ b/plugins/mcp-actions-backend/README.md @@ -4,11 +4,11 @@ This plugin backend was templated using the Backstage CLI. You should replace th ## Installation -This plugin is installed via the `@backstage/plugin-mcp-backend` package. To install it to your backend package, run the following command: +This plugin is installed via the `@backstage/plugin-mcp-actions-backend` package. To install it to your backend package, run the following command: ```bash # From your root directory -yarn --cwd packages/backend add @backstage/plugin-mcp-backend +yarn --cwd packages/backend add @backstage/plugin-mcp-actions-backend ``` Then add the plugin to your backend in `packages/backend/src/index.ts`: @@ -16,7 +16,7 @@ Then add the plugin to your backend in `packages/backend/src/index.ts`: ```ts const backend = createBackend(); // ... -backend.add(import('@backstage/plugin-mcp-backend')); +backend.add(import('@backstage/plugin-mcp-actions-backend')); ``` ## Development diff --git a/plugins/mcp-backend/catalog-info.yaml b/plugins/mcp-actions-backend/catalog-info.yaml similarity index 60% rename from plugins/mcp-backend/catalog-info.yaml rename to plugins/mcp-actions-backend/catalog-info.yaml index 37251f25cd..1a0199210e 100644 --- a/plugins/mcp-backend/catalog-info.yaml +++ b/plugins/mcp-actions-backend/catalog-info.yaml @@ -1,8 +1,8 @@ apiVersion: backstage.io/v1alpha1 kind: Component metadata: - name: backstage-plugin-mcp-backend - title: '@backstage/plugin-mcp-backend' + name: backstage-plugin-mcp-actions-backend + title: '@backstage/plugin-mcp-actions-backend' spec: lifecycle: experimental type: backstage-backend-plugin diff --git a/plugins/mcp-backend/dev/index.ts b/plugins/mcp-actions-backend/dev/index.ts similarity index 100% rename from plugins/mcp-backend/dev/index.ts rename to plugins/mcp-actions-backend/dev/index.ts diff --git a/plugins/mcp-backend/package.json b/plugins/mcp-actions-backend/package.json similarity index 90% rename from plugins/mcp-backend/package.json rename to plugins/mcp-actions-backend/package.json index 2fe1705db4..cd6dfccc82 100644 --- a/plugins/mcp-backend/package.json +++ b/plugins/mcp-actions-backend/package.json @@ -1,11 +1,11 @@ { - "name": "@backstage/plugin-mcp-backend", + "name": "@backstage/plugin-mcp-actions-backend", "version": "0.0.0", "backstage": { "role": "backend-plugin", "pluginId": "mcp", "pluginPackages": [ - "@backstage/plugin-mcp-backend" + "@backstage/plugin-mcp-actions-backend" ] }, "publishConfig": { @@ -16,7 +16,7 @@ "repository": { "type": "git", "url": "https://github.com/backstage/backstage", - "directory": "plugins/mcp-backend" + "directory": "plugins/mcp-actions-backend" }, "license": "Apache-2.0", "main": "src/index.ts", diff --git a/plugins/mcp-backend/report.api.md b/plugins/mcp-actions-backend/report.api.md similarity index 82% rename from plugins/mcp-backend/report.api.md rename to plugins/mcp-actions-backend/report.api.md index 5df9a077c6..2f1b9fcbf0 100644 --- a/plugins/mcp-backend/report.api.md +++ b/plugins/mcp-actions-backend/report.api.md @@ -1,4 +1,4 @@ -## API Report File for "@backstage/plugin-mcp-backend" +## API Report File for "@backstage/plugin-mcp-actions-backend" > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). diff --git a/plugins/mcp-backend/src/index.ts b/plugins/mcp-actions-backend/src/index.ts similarity index 100% rename from plugins/mcp-backend/src/index.ts rename to plugins/mcp-actions-backend/src/index.ts diff --git a/plugins/mcp-backend/src/plugin.test.ts b/plugins/mcp-actions-backend/src/plugin.test.ts similarity index 97% rename from plugins/mcp-backend/src/plugin.test.ts rename to plugins/mcp-actions-backend/src/plugin.test.ts index 14d4aa8bf2..9ff6aa5085 100644 --- a/plugins/mcp-backend/src/plugin.test.ts +++ b/plugins/mcp-actions-backend/src/plugin.test.ts @@ -82,7 +82,7 @@ describe('Mcp Backend', () => { it('should support streamable spec', async () => { const { client, serverAddress } = await getContext(); const transport = new StreamableHTTPClientTransport( - new URL(`${serverAddress}/api/mcp`), + new URL(`${serverAddress}/api/mcp-actions/v1`), ); await client.connect(transport); @@ -134,7 +134,7 @@ describe('Mcp Backend', () => { it('should support sse spec', async () => { const { client, serverAddress } = await getContext(); const transport = new SSEClientTransport( - new URL(`${serverAddress}/api/mcp/sse`), + new URL(`${serverAddress}/api/mcp-actions/v1/sse`), ); await client.connect(transport); diff --git a/plugins/mcp-backend/src/plugin.ts b/plugins/mcp-actions-backend/src/plugin.ts similarity index 94% rename from plugins/mcp-backend/src/plugin.ts rename to plugins/mcp-actions-backend/src/plugin.ts index 7fdfb42550..f1e89417e9 100644 --- a/plugins/mcp-backend/src/plugin.ts +++ b/plugins/mcp-actions-backend/src/plugin.ts @@ -32,7 +32,7 @@ import { * @public */ export const mcpPlugin = createBackendPlugin({ - pluginId: 'mcp', + pluginId: 'mcp-actions', register(env) { env.registerInit({ deps: { @@ -62,8 +62,8 @@ export const mcpPlugin = createBackendPlugin({ const router = Router(); router.use(json()); - router.use('/sse', sseRouter); - router.use('/', streamableRouter); + router.use('/v1/sse', sseRouter); + router.use('/v1', streamableRouter); httpRouter.use(router); }, diff --git a/plugins/mcp-backend/src/routers/createSseRouter.ts b/plugins/mcp-actions-backend/src/routers/createSseRouter.ts similarity index 100% rename from plugins/mcp-backend/src/routers/createSseRouter.ts rename to plugins/mcp-actions-backend/src/routers/createSseRouter.ts diff --git a/plugins/mcp-backend/src/routers/createStreamableRouter.ts b/plugins/mcp-actions-backend/src/routers/createStreamableRouter.ts similarity index 100% rename from plugins/mcp-backend/src/routers/createStreamableRouter.ts rename to plugins/mcp-actions-backend/src/routers/createStreamableRouter.ts diff --git a/plugins/mcp-backend/src/services/McpService.test.ts b/plugins/mcp-actions-backend/src/services/McpService.test.ts similarity index 100% rename from plugins/mcp-backend/src/services/McpService.test.ts rename to plugins/mcp-actions-backend/src/services/McpService.test.ts diff --git a/plugins/mcp-backend/src/services/McpService.ts b/plugins/mcp-actions-backend/src/services/McpService.ts similarity index 97% rename from plugins/mcp-backend/src/services/McpService.ts rename to plugins/mcp-actions-backend/src/services/McpService.ts index 5b50f0707f..a99842fe3a 100644 --- a/plugins/mcp-backend/src/services/McpService.ts +++ b/plugins/mcp-actions-backend/src/services/McpService.ts @@ -21,7 +21,7 @@ import { } from '@modelcontextprotocol/sdk/types.js'; import { JsonObject } from '@backstage/types'; import { ActionsService } from '@backstage/backend-plugin-api/alpha'; -import { version } from '@backstage/plugin-mcp-backend/package.json'; +import { version } from '@backstage/plugin-mcp-actions-backend/package.json'; export class McpService { constructor(private readonly actions: ActionsService) {} diff --git a/yarn.lock b/yarn.lock index 6bb3e487a5..1acc719959 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7099,9 +7099,9 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-mcp-backend@workspace:^, @backstage/plugin-mcp-backend@workspace:plugins/mcp-backend": +"@backstage/plugin-mcp-actions-backend@workspace:^, @backstage/plugin-mcp-actions-backend@workspace:plugins/mcp-actions-backend": version: 0.0.0-use.local - resolution: "@backstage/plugin-mcp-backend@workspace:plugins/mcp-backend" + resolution: "@backstage/plugin-mcp-actions-backend@workspace:plugins/mcp-actions-backend" dependencies: "@backstage/backend-defaults": "workspace:^" "@backstage/backend-plugin-api": "workspace:^" @@ -31365,7 +31365,7 @@ __metadata: "@backstage/plugin-events-backend": "workspace:^" "@backstage/plugin-events-backend-module-google-pubsub": "workspace:^" "@backstage/plugin-kubernetes-backend": "workspace:^" - "@backstage/plugin-mcp-backend": "workspace:^" + "@backstage/plugin-mcp-actions-backend": "workspace:^" "@backstage/plugin-notifications-backend": "workspace:^" "@backstage/plugin-permission-backend": "workspace:^" "@backstage/plugin-permission-backend-module-allow-all-policy": "workspace:^"