Skip to content

Commit a7041a4

Browse files
Merge pull request #23 from sveltejs/setup-cli-project
2 parents 7a6cba8 + 023bea3 commit a7041a4

File tree

7 files changed

+755
-102
lines changed

7 files changed

+755
-102
lines changed

packages/mcp-stdio/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# @sveltejs/mcp
2+
3+
The CLI version of the Svelte MCP.
4+
5+
You can run it directly with
6+
7+
```bash
8+
npx @sveltejs/mcp
9+
```
10+
11+
or install it and then run it
12+
13+
```bash
14+
pnpm i @sveltejs/mcp
15+
pnpm svelte-mcp
16+
```

packages/mcp-stdio/package.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"name": "@sveltejs/mcp",
3+
"version": "0.0.1",
4+
"type": "module",
5+
"license": "MIT",
6+
"homepage": "https://github.com/sveltejs/mcp#readme",
7+
"bugs": {
8+
"url": "https://github.com/sveltejs/mcp/issues"
9+
},
10+
"bin": {
11+
"svelte-mcp": "./dist/index.js"
12+
},
13+
"repository": {
14+
"type": "git",
15+
"url": "git+https://github.com/sveltejs/mcp.git",
16+
"path": "packages/mcp-stdio"
17+
},
18+
"files": [
19+
"dist"
20+
],
21+
"publishConfig": {
22+
"access": "public"
23+
},
24+
"scripts": {
25+
"build": "tsdown",
26+
"dev": "tsdown --watch",
27+
"test": "vitest",
28+
"check": "tsc --noEmit"
29+
},
30+
"devDependencies": {
31+
"@sveltejs/mcp-server": "workspace:^",
32+
"@tmcp/transport-stdio": "^0.3.0",
33+
"@types/node": "^22.15.17",
34+
"publint": "^0.3.13",
35+
"tsdown": "^0.11.9",
36+
"typescript": "^5.8.3",
37+
"vitest": "^3.1.3"
38+
},
39+
"dependencies": {
40+
"eslint": "^9.36.0"
41+
}
42+
}

packages/mcp-stdio/src/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#! /usr/bin/env node
2+
import { server } from '@sveltejs/mcp-server';
3+
import { StdioTransport } from '@tmcp/transport-stdio';
4+
5+
const transport = new StdioTransport(server);
6+
7+
transport.listen();

packages/mcp-stdio/tsconfig.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"extends": "../../tsconfig.json",
3+
"include": ["src"],
4+
"exclude": ["node_modules", "dist"]
5+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { defineConfig } from 'tsdown';
2+
3+
export default defineConfig([
4+
{
5+
entry: ['./src/index.ts'],
6+
platform: 'node',
7+
define: {
8+
// some eslint-plugin-svelte code expects __filename to exists but in an ESM environment it does not.
9+
__filename: 'import.meta.filename',
10+
},
11+
// we need eslint at runtime but the bundler doesn't bundle `require`'s which `eslint-plugin-svelte` uses to require
12+
// `eslint/use-at-your-own-risk`. If we didn't have `eslint` as an actual dependency and didn't externalize it
13+
// the require would fail once executed in a project without eslint installed.
14+
external: ['eslint'],
15+
publint: true,
16+
dts: false,
17+
treeshake: true,
18+
clean: true,
19+
target: 'esnext',
20+
},
21+
]);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { defineConfig } from 'vitest/config';
2+
3+
export default defineConfig({});

0 commit comments

Comments
 (0)