1111
1212import { Logger } from '@aws-lambda-powertools/logger' ;
1313import { McpServer , WebStandardStreamableHTTPServerTransport } from '@modelcontextprotocol/server' ;
14- import { createMcpHonoApp } from '@modelcontextprotocol/hono' ;
14+ import { createMcpHonoApp , CreateMcpHonoAppOptions } from '@modelcontextprotocol/hono' ;
1515import { Context } from 'hono' ;
1616import { BlankEnv , BlankInput } from 'hono/types' ;
1717
@@ -31,32 +31,6 @@ declare module 'hono' {
3131 }
3232}
3333
34- /**
35- * 許可されていないHTTPメソッドに対するハンドラーです。
36- *
37- * @remarks
38- * 405エラーのJSONレスポンスを返します。
39- *
40- * @param c Honoのコンテキスト
41- * @returns 405エラーのJSONレスポンス
42- * @private
43- */
44- const methodNotAllowedHandler = async (
45- c : Context < BlankEnv , '/mcp' , BlankInput > ,
46- ) => {
47- return c . json (
48- {
49- jsonrpc : '2.0' ,
50- error : {
51- code : - 32000 ,
52- message : 'メソッドは許可されていません。' ,
53- } ,
54- id : null ,
55- } ,
56- { status : 405 } ,
57- ) ;
58- } ;
59-
6034/**
6135 * サーバーエラー発生時の共通エラーハンドラーです。
6236 *
@@ -176,21 +150,12 @@ const handleRequest = async (createMcpServer: () => McpServer, c: Context<BlankE
176150 * const app = createHonoApp(createMcpServer);
177151 * ```
178152 */
179- export const createHonoApp = ( createMcpServer : ( ) => McpServer ) => {
180- const app = createMcpHonoApp ( ) ;
153+ export const createHonoApp = ( createMcpServer : ( ) => McpServer , options ?: CreateMcpHonoAppOptions ) => {
154+ const app = createMcpHonoApp ( options ) ;
181155
182- app . post ( '/mcp' , async ( c ) => {
156+ app . all ( '/mcp' , async ( c ) => {
183157 return await handleRequest ( createMcpServer , c ) ;
184158 } ) ;
185159
186- app . get ( '/mcp' , async ( c ) => {
187- return await handleRequest ( createMcpServer , c ) ;
188- } ) ;
189-
190- app . put ( '/mcp' , methodNotAllowedHandler ) ;
191- app . delete ( '/mcp' , methodNotAllowedHandler ) ;
192- app . patch ( '/mcp' , methodNotAllowedHandler ) ;
193- app . options ( '/mcp' , methodNotAllowedHandler ) ;
194-
195160 return app ;
196161} ;
0 commit comments