@@ -10,11 +10,6 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
1010import { createMcpExpressApp } from "@modelcontextprotocol/sdk/server/express.js" ;
1111import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js" ;
1212import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js" ;
13- import type {
14- Transport ,
15- TransportSendOptions ,
16- } from "@modelcontextprotocol/sdk/shared/transport.js" ;
17- import type { JSONRPCMessage } from "@modelcontextprotocol/sdk/types.js" ;
1813import cors from "cors" ;
1914import type { Request , Response } from "express" ;
2015import {
@@ -29,56 +24,6 @@ import {
2924 allowedLocalDirs ,
3025} from "./server.js" ;
3126
32- // =============================================================================
33- // JSONL Interaction Logger
34- // =============================================================================
35-
36- const LOG_PATH = path . join ( import . meta. dirname , "interactions.jsonl" ) ;
37-
38- /** Append a JSONL line to the log file. */
39- function logInteraction ( entry : Record < string , unknown > ) : void {
40- const line = JSON . stringify ( {
41- timestamp : new Date ( ) . toISOString ( ) ,
42- ...entry ,
43- } ) ;
44- fs . appendFile ( LOG_PATH , line + "\n" , ( err ) => {
45- if ( err ) console . error ( "[pdf-server] Failed to write log:" , err . message ) ;
46- } ) ;
47- }
48-
49- /**
50- * Wraps an MCP transport to log every incoming and outgoing JSON-RPC message
51- * to a JSONL file at `interactions.jsonl` next to this script.
52- */
53- function withLogging < T extends Transport > ( transport : T ) : T {
54- const originalSend = transport . send . bind ( transport ) ;
55-
56- transport . send = async (
57- message : JSONRPCMessage ,
58- options ?: TransportSendOptions ,
59- ) : Promise < void > => {
60- logInteraction ( { direction : "server→client" , message } ) ;
61- return originalSend ( message , options ) ;
62- } ;
63-
64- // Intercept the onmessage setter so we can log before the real handler runs
65- let realOnMessage = transport . onmessage ;
66- Object . defineProperty ( transport , "onmessage" , {
67- get : ( ) => realOnMessage ,
68- set : ( handler : typeof transport . onmessage ) => {
69- realOnMessage = handler
70- ? ( message , extra ) => {
71- logInteraction ( { direction : "client→server" , message } ) ;
72- handler ( message , extra ) ;
73- }
74- : handler ;
75- } ,
76- configurable : true ,
77- } ) ;
78-
79- return transport ;
80- }
81-
8227/**
8328 * Starts an MCP server with Streamable HTTP transport in stateless mode.
8429 */
@@ -92,11 +37,9 @@ export async function startStreamableHTTPServer(
9237
9338 app . all ( "/mcp" , async ( req : Request , res : Response ) => {
9439 const server = createServer ( ) ;
95- const transport = withLogging (
96- new StreamableHTTPServerTransport ( {
97- sessionIdGenerator : undefined ,
98- } ) ,
99- ) ;
40+ const transport = new StreamableHTTPServerTransport ( {
41+ sessionIdGenerator : undefined ,
42+ } ) ;
10043
10144 res . on ( "close" , ( ) => {
10245 transport . close ( ) . catch ( ( ) => { } ) ;
@@ -143,7 +86,7 @@ export async function startStreamableHTTPServer(
14386export async function startStdioServer (
14487 createServer : ( ) => McpServer ,
14588) : Promise < void > {
146- await createServer ( ) . connect ( withLogging ( new StdioServerTransport ( ) ) ) ;
89+ await createServer ( ) . connect ( new StdioServerTransport ( ) ) ;
14790}
14891
14992function parseArgs ( ) : { urls : string [ ] ; stdio : boolean } {
@@ -195,15 +138,12 @@ async function main() {
195138 }
196139 }
197140
198- console . error (
199- `[pdf-server] Ready (${ urls . length } URL(s) configured, logging to ${ LOG_PATH } )` ,
200- ) ;
141+ console . error ( `[pdf-server] Ready (${ urls . length } URL(s) configured)` ) ;
201142
202- const factory = ( ) => createServer ( logInteraction ) ;
203143 if ( stdio ) {
204- await startStdioServer ( factory ) ;
144+ await startStdioServer ( createServer ) ;
205145 } else {
206- await startStreamableHTTPServer ( factory ) ;
146+ await startStreamableHTTPServer ( createServer ) ;
207147 }
208148}
209149
0 commit comments