Skip to content

Commit e75a8ff

Browse files
Register MCP tools via dynamic imports
Co-authored-by: Kent C. Dodds <me+github@kentcdodds.com>
1 parent 3515c43 commit e75a8ff

3 files changed

Lines changed: 8 additions & 6 deletions

File tree

docs/mcp-server-patterns.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ tool module and registers them.
283283

284284
```typescript
285285
// mcp/tools/do-math.ts
286-
export async function registerDoMathTool(agent: MCP) {
286+
export async function registerTool(agent: MCP) {
287287
agent.server.registerTool(
288288
'do_math',
289289
{
@@ -296,9 +296,10 @@ export async function registerDoMathTool(agent: MCP) {
296296
}
297297

298298
// mcp/register-tools.ts
299-
import { registerDoMathTool } from './tools/do-math.ts'
300299
export async function registerTools(agent: MCP) {
301-
await registerDoMathTool(agent)
300+
await import('./tools/do-math.ts').then(({ registerTool }) =>
301+
registerTool(agent),
302+
)
302303
}
303304
```
304305

mcp/register-tools.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { type MCP } from './index.ts'
2-
import { registerDoMathTool } from './tools/do-math.ts'
32

43
export async function registerTools(agent: MCP) {
5-
await registerDoMathTool(agent)
4+
await import('./tools/do-math.ts').then(({ registerTool }) =>
5+
registerTool(agent),
6+
)
67
}

mcp/tools/do-math.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ function formatNumberForMarkdown(value: number, precision: number) {
4141
return rounded.includes('.') ? rounded.replace(/\.?0+$/, '') : rounded
4242
}
4343

44-
export async function registerDoMathTool(agent: MCP) {
44+
export async function registerTool(agent: MCP) {
4545
agent.server.registerTool(
4646
doMathTool.name,
4747
{

0 commit comments

Comments
 (0)