11#!/usr/bin/env node
22
3- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js' ;
4- import { init , selectTools , server } from './server' ;
3+ import { selectTools } from './server' ;
54import { Endpoint , endpoints } from './tools' ;
65import { McpOptions , parseOptions } from './options' ;
6+ import { launchStdioServer } from './stdio' ;
7+ import { launchStreamableHTTPServer } from './http' ;
78
89async function main ( ) {
910 const options = parseOptionsOrError ( ) ;
@@ -13,18 +14,21 @@ async function main() {
1314 return ;
1415 }
1516
16- const includedTools = selectToolsOrError ( endpoints , options ) ;
17+ const selectedTools = selectToolsOrError ( endpoints , options ) ;
1718
1819 console . error (
19- `MCP Server starting with ${ includedTools . length } tools:` ,
20- includedTools . map ( ( e ) => e . tool . name ) ,
20+ `MCP Server starting with ${ selectedTools . length } tools:` ,
21+ selectedTools . map ( ( e ) => e . tool . name ) ,
2122 ) ;
2223
23- init ( { server, endpoints : includedTools } ) ;
24-
25- const transport = new StdioServerTransport ( ) ;
26- await server . connect ( transport ) ;
27- console . error ( 'MCP Server running on stdio' ) ;
24+ switch ( options . transport ) {
25+ case 'stdio' :
26+ await launchStdioServer ( options , selectedTools ) ;
27+ break ;
28+ case 'http' :
29+ await launchStreamableHTTPServer ( options , selectedTools , options . port ) ;
30+ break ;
31+ }
2832}
2933
3034if ( require . main === module ) {
@@ -43,7 +47,7 @@ function parseOptionsOrError() {
4347 }
4448}
4549
46- function selectToolsOrError ( endpoints : Endpoint [ ] , options : McpOptions ) {
50+ function selectToolsOrError ( endpoints : Endpoint [ ] , options : McpOptions ) : Endpoint [ ] {
4751 try {
4852 const includedTools = selectTools ( endpoints , options ) ;
4953 if ( includedTools . length === 0 ) {
0 commit comments