@likec4/mcp 1.37.0 → 1.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@likec4/mcp",
3
3
  "description": "Model Context Protocol server for LikeC4",
4
4
  "license": "MIT",
5
- "version": "1.37.0",
5
+ "version": "1.38.0",
6
6
  "bugs": "https://github.com/likec4/likec4/issues",
7
7
  "homepage": "https://likec4.dev",
8
8
  "author": "Denis Davydkov <denis@davydkov.com>",
@@ -27,10 +27,7 @@
27
27
  ],
28
28
  "wireit": {
29
29
  "build": {
30
- "command": "unbuild",
31
- "files": [
32
- "src/**/*"
33
- ]
30
+ "command": "unbuild"
34
31
  },
35
32
  "inspector": {
36
33
  "dependencies": [
@@ -38,7 +35,8 @@
38
35
  ],
39
36
  "command": "pnpx @modelcontextprotocol/inspector node dist/index.mjs",
40
37
  "env": {
41
- "LIKEC4_WORKSPACE": "../../examples/"
38
+ "DANGEROUSLY_OMIT_AUTH": "true",
39
+ "LIKEC4_WORKSPACE": "../../examples"
42
40
  },
43
41
  "service": {
44
42
  "readyWhen": {
@@ -47,11 +45,9 @@
47
45
  }
48
46
  }
49
47
  },
50
- "dependencies": {
51
- "likec4": "1.37.0"
52
- },
48
+ "dependencies": {},
53
49
  "devDependencies": {
54
- "@modelcontextprotocol/sdk": "^1.13.2",
50
+ "@modelcontextprotocol/sdk": "^1.17.2",
55
51
  "@types/node": "~20.19.2",
56
52
  "remeda": "^2.23.1",
57
53
  "tsx": "4.20.3",
@@ -59,10 +55,13 @@
59
55
  "typescript": "5.9.2",
60
56
  "unbuild": "3.5.0",
61
57
  "vitest": "3.2.4",
58
+ "vscode-uri": "3.1.0",
62
59
  "zod": "3.25.67",
63
60
  "wireit": "0.14.12",
64
- "@likec4/core": "1.37.0",
65
- "@likec4/tsconfig": "1.37.0"
61
+ "@likec4/log": "1.38.0",
62
+ "@likec4/core": "1.38.0",
63
+ "@likec4/tsconfig": "1.38.0",
64
+ "@likec4/language-server": "1.38.0"
66
65
  },
67
66
  "scripts": {
68
67
  "typecheck": "tsc -b --verbose",
package/src/empty.ts ADDED
@@ -0,0 +1,2 @@
1
+ // Just an empty placeholder to reduce bundle size (see build.config.ts)
2
+ export default {}
package/src/index.ts CHANGED
@@ -1,40 +1,40 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
4
- import { LikeC4 } from 'likec4'
3
+ import { createLanguageServices, LikeC4FileSystem, WithMCPServer } from '@likec4/language-server'
4
+ import {
5
+ configureLogger,
6
+ getConsoleStderrSink,
7
+ logger,
8
+ } from '@likec4/log'
5
9
  import { resolve } from 'node:path'
10
+ import { URI } from 'vscode-uri'
6
11
 
7
- const LIKEC4_WORKSPACE = resolve(process.env['LIKEC4_WORKSPACE'] || '.')
12
+ const LIKEC4_WORKSPACE = URI.file(resolve(process.env['LIKEC4_WORKSPACE'] || '.')).toString()
13
+
14
+ configureLogger({
15
+ sinks: {
16
+ // Name it as console to override internal logger
17
+ console: getConsoleStderrSink(),
18
+ },
19
+ })
8
20
 
9
21
  async function main() {
10
- console.error(`Loading LikeC4 from workspace ${LIKEC4_WORKSPACE}`)
11
- const likec4 = await LikeC4.fromWorkspace(LIKEC4_WORKSPACE, {
12
- logger: false,
13
- })
22
+ logger.info`Loading LikeC4 from workspace: ${LIKEC4_WORKSPACE}`
14
23
 
15
- const mcp = likec4.langium.mcp.ServerFactory.create({
16
- capabilities: {
17
- tools: {},
18
- logging: {},
19
- },
24
+ const langium = await createLanguageServices({
25
+ ...LikeC4FileSystem(true),
26
+ ...WithMCPServer('stdio'),
20
27
  })
21
- mcp.server.oninitialized = () => {
22
- mcp.server.sendLoggingMessage({
23
- level: 'info',
24
- data: {
25
- message: 'Server initialized',
26
- workspace: likec4.workspace,
27
- },
28
- })
29
- }
30
-
31
- const transport = new StdioServerTransport()
32
- console.error('Connecting server to transport...')
33
- await mcp.connect(transport)
34
- console.error('LikeC4 MCP Server running on stdio')
28
+
29
+ await langium.shared.workspace.WorkspaceManager.initializeWorkspace([{
30
+ uri: LIKEC4_WORKSPACE,
31
+ name: 'workspace',
32
+ }])
33
+
34
+ await langium.likec4.mcp.Server.start()
35
35
  }
36
36
 
37
37
  main().catch(err => {
38
- console.error(err)
38
+ logger.error(err)
39
39
  process.exit(1)
40
40
  })