UNPKG

artillery-performance-mcp-server

Version:

MCP server for performance testing with Artillery.io

2 lines 6.45 kB
#!/usr/bin/env node const a1_0x55249a=a1_0x2680;function a1_0x2680(_0x37cfeb,_0x199a45){const _0x1dee92=a1_0x1dee();return a1_0x2680=function(_0x268063,_0x50d929){_0x268063=_0x268063-0x159;let _0x3f2a7c=_0x1dee92[_0x268063];return _0x3f2a7c;},a1_0x2680(_0x37cfeb,_0x199a45);}(function(_0xbeb34c,_0x3fece8){const _0x30d68d=a1_0x2680,_0x1c1d82=_0xbeb34c();while(!![]){try{const _0x140f80=-parseInt(_0x30d68d(0x17e))/0x1*(-parseInt(_0x30d68d(0x15c))/0x2)+-parseInt(_0x30d68d(0x178))/0x3+parseInt(_0x30d68d(0x16b))/0x4*(parseInt(_0x30d68d(0x182))/0x5)+-parseInt(_0x30d68d(0x159))/0x6+-parseInt(_0x30d68d(0x17c))/0x7+-parseInt(_0x30d68d(0x184))/0x8*(-parseInt(_0x30d68d(0x168))/0x9)+parseInt(_0x30d68d(0x17b))/0xa*(-parseInt(_0x30d68d(0x164))/0xb);if(_0x140f80===_0x3fece8)break;else _0x1c1d82['push'](_0x1c1d82['shift']());}catch(_0x1afec5){_0x1c1d82['push'](_0x1c1d82['shift']());}}}(a1_0x1dee,0xbd24e));import a1_0x21b665 from'express';function a1_0x1dee(){const _0x2901b3=['Cache-Control','status','body','delete','text/event-stream','keep-alive','handlePostMessage','Unhandled\x20error:\x20','3222858NOXHvq','json','headers','2GsYOlz','/sse','Artillery\x20Performance\x20MCP\x20Server\x20listening\x20on\x20port\x20','Invalid\x20request\x20or\x20missing\x20session\x20ID','/mcp','/messages','Session\x20closed:\x20','sessionId','143eFVadb','data:\x20','New\x20session\x20created:\x20','get','27XUnzbt','onclose','Error\x20starting\x20MCP\x20server:\x20','1521336ZIYNOM','Legacy\x20SSE\x20endpoint\x20available\x20at:\x20http://localhost:','post','Connection','/health','handleRequest','error','info','exit','stringify','no-cache','write','connect','2051793robAEK','env','listen','359420HcxPRs','223342DKCgeZ','SSE\x20session\x20closed:\x20','1030429cWdAwr','Starting\x20Artillery\x20Performance\x20MCP\x20Server\x20with\x20HTTP\x20transport','PORT','use','15vnOirD','mcp-session-id','862744hTzsJJ','Invalid\x20or\x20missing\x20session\x20ID','Streamable\x20HTTP\x20endpoint\x20available\x20at:\x20http://localhost:','healthy'];a1_0x1dee=function(){return _0x2901b3;};return a1_0x1dee();}import{randomUUID}from'crypto';import{StreamableHTTPServerTransport}from'@modelcontextprotocol/sdk/server/streamableHttp.js';import{SSEServerTransport}from'@modelcontextprotocol/sdk/server/sse.js';import{createMcpServer,initializeMcpServer}from'./core/server.js';import{isInitializeRequest}from'@modelcontextprotocol/sdk/types.js';import a1_0x76059f from'./utils/logger.js';const PORT=process[a1_0x55249a(0x179)][a1_0x55249a(0x180)]||0xbb8,ENABLE_LEGACY_SSE=!![];async function main(){const _0x65c01=a1_0x55249a;try{a1_0x76059f[_0x65c01(0x172)](_0x65c01(0x17f));const _0x5d9b43=a1_0x21b665();_0x5d9b43[_0x65c01(0x181)](a1_0x21b665[_0x65c01(0x15a)]());const _0x1a3208={},_0x53f0fe={};_0x5d9b43[_0x65c01(0x16d)](_0x65c01(0x160),async(_0x1eb0c7,_0x360c1c)=>{const _0x54b5ed=_0x65c01,_0x122a86=_0x1eb0c7[_0x54b5ed(0x15b)][_0x54b5ed(0x183)];if(_0x122a86&&_0x1a3208[_0x122a86]){const _0x54a6d0=_0x1a3208[_0x122a86];await _0x54a6d0[_0x54b5ed(0x170)](_0x1eb0c7,_0x360c1c,_0x1eb0c7['body']);}else{if(!_0x122a86&&isInitializeRequest(_0x1eb0c7[_0x54b5ed(0x18a)])){const _0x3bdcdc=new StreamableHTTPServerTransport({'sessionIdGenerator':()=>randomUUID(),'onsessioninitialized':_0x573724=>{const _0x3c313c=_0x54b5ed;_0x1a3208[_0x573724]=_0x3bdcdc,a1_0x76059f[_0x3c313c(0x172)](_0x3c313c(0x166)+_0x573724);}});_0x3bdcdc[_0x54b5ed(0x169)]=()=>{const _0x43e312=_0x54b5ed;_0x3bdcdc[_0x43e312(0x163)]&&(delete _0x1a3208[_0x3bdcdc['sessionId']],a1_0x76059f[_0x43e312(0x172)](_0x43e312(0x162)+_0x3bdcdc['sessionId']));};const _0x54a074=createMcpServer();await initializeMcpServer(_0x54a074),await _0x54a074[_0x54b5ed(0x177)](_0x3bdcdc),await _0x3bdcdc[_0x54b5ed(0x170)](_0x1eb0c7,_0x360c1c,_0x1eb0c7['body']);}else _0x360c1c[_0x54b5ed(0x189)](0x190)[_0x54b5ed(0x15a)]({'jsonrpc':'2.0','id':null,'error':{'code':-0x7d00,'message':_0x54b5ed(0x15f)}});}});const _0x30aaca=async(_0x4cee70,_0x418ffd)=>{const _0x351c91=_0x65c01,_0x2236d0=_0x4cee70[_0x351c91(0x15b)][_0x351c91(0x183)];if(!_0x2236d0||!_0x1a3208[_0x2236d0]){_0x418ffd[_0x351c91(0x189)](0x190)['send'](_0x351c91(0x185));return;}const _0x33afce=_0x1a3208[_0x2236d0];await _0x33afce[_0x351c91(0x170)](_0x4cee70,_0x418ffd);};_0x5d9b43['get']('/mcp',_0x30aaca),_0x5d9b43[_0x65c01(0x18b)](_0x65c01(0x160),_0x30aaca);if(ENABLE_LEGACY_SSE){a1_0x76059f[_0x65c01(0x172)]('Legacy\x20SSE\x20transport\x20support\x20is\x20enabled');const _0x49921b=randomUUID();_0x5d9b43[_0x65c01(0x167)](_0x65c01(0x15d),async(_0x3e86b2,_0x40b137)=>{const _0x7ee56e=_0x65c01;_0x40b137['setHeader']('Content-Type',_0x7ee56e(0x18c)),_0x40b137['setHeader'](_0x7ee56e(0x188),_0x7ee56e(0x175)),_0x40b137['setHeader'](_0x7ee56e(0x16e),_0x7ee56e(0x18d));const _0x465322=new SSEServerTransport(_0x7ee56e(0x161),_0x40b137);a1_0x76059f['info']('New\x20SSE\x20session\x20created:\x20'+_0x49921b),_0x53f0fe[_0x49921b]=_0x465322;const _0x2e2625=createMcpServer();await initializeMcpServer(_0x2e2625),await _0x2e2625[_0x7ee56e(0x177)](_0x465322),_0x40b137['on']('close',()=>{const _0x69be90=_0x7ee56e;delete _0x53f0fe[_0x49921b],a1_0x76059f[_0x69be90(0x172)](_0x69be90(0x17d)+_0x49921b),_0x2e2625['close']();}),_0x40b137['write']('data:\x20'+JSON[_0x7ee56e(0x174)]({'message':'SSE\x20session\x20initialized','sessionId':_0x49921b})+'\x0a\x0a'),_0x40b137[_0x7ee56e(0x176)](_0x7ee56e(0x165)+JSON[_0x7ee56e(0x174)]({'sessionId':_0x49921b})+'\x0a\x0a');}),_0x5d9b43[_0x65c01(0x16d)]('/messages',async(_0xb48e3b,_0x4f6457)=>{const _0x5358e0=_0x65c01;if(!_0x49921b||!_0x53f0fe[_0x49921b]){_0x4f6457[_0x5358e0(0x189)](0x190)['json']({'error':_0x5358e0(0x185)});return;}const _0x5b17=_0x53f0fe[_0x49921b];await _0x5b17[_0x5358e0(0x18e)](_0xb48e3b,_0x4f6457,_0xb48e3b['body']);});}_0x5d9b43[_0x65c01(0x167)](_0x65c01(0x16f),(_0x3bb482,_0x222f64)=>{const _0x45861a=_0x65c01;_0x222f64['status'](0xc8)[_0x45861a(0x15a)]({'status':_0x45861a(0x187),'version':'1.0.0'});}),_0x5d9b43[_0x65c01(0x17a)](PORT,()=>{const _0x107130=_0x65c01;a1_0x76059f[_0x107130(0x172)](_0x107130(0x15e)+PORT),a1_0x76059f[_0x107130(0x172)](_0x107130(0x186)+PORT+'/mcp'),ENABLE_LEGACY_SSE&&a1_0x76059f['info'](_0x107130(0x16c)+PORT+_0x107130(0x15d));});}catch(_0x593057){a1_0x76059f[_0x65c01(0x171)](_0x65c01(0x16a)+_0x593057),process[_0x65c01(0x173)](0x1);}}main()['catch'](_0x5139fd=>{const _0x562b9d=a1_0x55249a;a1_0x76059f[_0x562b9d(0x171)](_0x562b9d(0x18f)+_0x5139fd),process[_0x562b9d(0x173)](0x1);});