|
1 | 1 | #!/usr/bin/env node |
2 | 2 |
|
3 | | -import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; |
4 | | -import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; |
5 | | -import * as Sentry from '@sentry/node'; |
6 | | -import { |
7 | | - createNewBladeProjectToolName, |
8 | | - createNewBladeProjectToolDescription, |
9 | | - createNewBladeProjectToolSchema, |
10 | | - createNewBladeProjectToolCallback, |
11 | | -} from './tools/createNewBladeProject.js'; |
12 | | -import { |
13 | | - createBladeCursorRulesToolName, |
14 | | - createBladeCursorRulesToolDescription, |
15 | | - createBladeCursorRulesToolSchema, |
16 | | - createBladeCursorRulesToolCallback, |
17 | | -} from './tools/createBladeCursorRules.js'; |
18 | | -import { |
19 | | - getBladeComponentDocsToolName, |
20 | | - getBladeComponentDocsToolDescription, |
21 | | - getBladeComponentDocsToolSchema, |
22 | | - getBladeComponentDocsToolCallback, |
23 | | -} from './tools/getBladeComponentDocs.js'; |
24 | | -import { |
25 | | - hiBladeToolName, |
26 | | - hiBladeToolDescription, |
27 | | - hiBladeToolSchema, |
28 | | - hiBladeToolCallback, |
29 | | -} from './tools/hiBlade.js'; |
30 | | -import { getPackageJSONVersion } from './utils/generalUtils.js'; |
31 | | -import { |
32 | | - getBladePatternDocsToolName, |
33 | | - getBladePatternDocsToolDescription, |
34 | | - getBladePatternDocsToolSchema, |
35 | | - getBladePatternDocsToolCallback, |
36 | | -} from './tools/getBladePatternDocs.js'; |
37 | | -import { |
38 | | - getBladeGeneralDocsToolName, |
39 | | - getBladeGeneralDocsToolDescription, |
40 | | - getBladeGeneralDocsToolSchema, |
41 | | - getBladeGeneralDocsToolCallback, |
42 | | -} from './tools/getBladeGeneralDocs.js'; |
43 | | -import { |
44 | | - getFigmaToCodeToolName, |
45 | | - getFigmaToCodeToolDescription, |
46 | | - getFigmaToCodeToolSchema, |
47 | | - getFigmaToCodeToolCallback, |
48 | | -} from './tools/getFigmaToCode.js'; |
49 | | -import { |
50 | | - getChangelogToolName, |
51 | | - getChangelogToolDescription, |
52 | | - getChangelogToolSchema, |
53 | | - getChangelogToolCallback, |
54 | | -} from './tools/getChangelog.js'; |
55 | | -import { |
56 | | - publishLinesOfCodeMetricToolName, |
57 | | - publishLinesOfCodeMetricToolDescription, |
58 | | - publishLinesOfCodeMetricToolSchema, |
59 | | - publishLinesOfCodeMetricToolCallback, |
60 | | -} from './tools/publishLinesOfCodeMetric.js'; |
| 3 | +import { createServer } from './createServer.js'; |
| 4 | +import { createStdioTransport } from './createTransport.js'; |
| 5 | +import { captureException, initSentry } from './utils/sentryUtils.js'; |
61 | 6 |
|
62 | | -Sentry.init({ |
63 | | - dsn: process.env.BLADE_MCP_SENTRY_DSN, |
64 | | - environment: process.env.NODE_ENV ?? 'development', |
65 | | - release: getPackageJSONVersion(), |
66 | | - sendDefaultPii: false, |
67 | | -}); |
| 7 | +initSentry(); |
68 | 8 |
|
69 | 9 | try { |
70 | | - const server = new McpServer({ |
71 | | - name: 'Blade MCP', |
72 | | - version: getPackageJSONVersion(), |
73 | | - }); |
74 | | - |
75 | | - server.tool(hiBladeToolName, hiBladeToolDescription, hiBladeToolSchema, hiBladeToolCallback); |
76 | | - |
77 | | - server.tool( |
78 | | - createNewBladeProjectToolName, |
79 | | - createNewBladeProjectToolDescription, |
80 | | - createNewBladeProjectToolSchema, |
81 | | - createNewBladeProjectToolCallback, |
82 | | - ); |
83 | | - |
84 | | - server.tool( |
85 | | - createBladeCursorRulesToolName, |
86 | | - createBladeCursorRulesToolDescription, |
87 | | - createBladeCursorRulesToolSchema, |
88 | | - createBladeCursorRulesToolCallback, |
89 | | - ); |
90 | | - |
91 | | - server.tool( |
92 | | - getBladeComponentDocsToolName, |
93 | | - getBladeComponentDocsToolDescription, |
94 | | - getBladeComponentDocsToolSchema, |
95 | | - getBladeComponentDocsToolCallback, |
96 | | - ); |
97 | | - |
98 | | - server.tool( |
99 | | - getBladePatternDocsToolName, |
100 | | - getBladePatternDocsToolDescription, |
101 | | - getBladePatternDocsToolSchema, |
102 | | - getBladePatternDocsToolCallback, |
103 | | - ); |
104 | | - |
105 | | - server.tool( |
106 | | - getBladeGeneralDocsToolName, |
107 | | - getBladeGeneralDocsToolDescription, |
108 | | - getBladeGeneralDocsToolSchema, |
109 | | - getBladeGeneralDocsToolCallback, |
110 | | - ); |
111 | | - |
112 | | - server.tool( |
113 | | - getFigmaToCodeToolName, |
114 | | - getFigmaToCodeToolDescription, |
115 | | - getFigmaToCodeToolSchema, |
116 | | - getFigmaToCodeToolCallback, |
117 | | - ); |
118 | | - |
119 | | - server.tool( |
120 | | - getChangelogToolName, |
121 | | - getChangelogToolDescription, |
122 | | - getChangelogToolSchema, |
123 | | - getChangelogToolCallback, |
124 | | - ); |
125 | | - |
126 | | - server.tool( |
127 | | - publishLinesOfCodeMetricToolName, |
128 | | - publishLinesOfCodeMetricToolDescription, |
129 | | - publishLinesOfCodeMetricToolSchema, |
130 | | - publishLinesOfCodeMetricToolCallback, |
131 | | - ); |
132 | | - |
133 | | - // Start receiving messages on stdin and sending messages on stdout |
134 | | - const transport = new StdioServerTransport(); |
135 | | - |
136 | | - // Use Promise handling for async operations |
| 10 | + const server = createServer(); |
| 11 | + const transport = createStdioTransport(); |
137 | 12 | await server.connect(transport); |
138 | | - |
139 | 13 | // Why console.error? Checkout https://modelcontextprotocol.io/quickstart/server#logging-in-mcp-servers-2 |
140 | 14 | console.error('Blade MCP connected successfully.'); |
141 | 15 | } catch (error: unknown) { |
142 | | - Sentry.captureException(error); |
| 16 | + captureException(error); |
143 | 17 | console.error('Blade MCP Error', error); |
144 | 18 | process.exit(1); |
145 | 19 | } |
0 commit comments