@@ -10,6 +10,7 @@ import { SessionManager } from "./session/manager.js";
1010import { Logger } from "./utils/logger.js" ;
1111
1212const logger = new Logger ( "agw-mcp" ) ;
13+ const ZEROEX_API_KEY_ENV = "AGW_MCP_ZEROEX_API_KEY" ;
1314
1415function resolveCliVersion ( ) : string {
1516 try {
@@ -25,6 +26,18 @@ function resolveCliVersion(): string {
2526 return "0.1.0" ;
2627}
2728
29+ function applyZeroExApiKeyOverride ( apiKeyValue : unknown ) : void {
30+ if ( apiKeyValue === undefined ) {
31+ return ;
32+ }
33+
34+ if ( typeof apiKeyValue !== "string" || apiKeyValue . trim ( ) === "" ) {
35+ throw new Error ( "--zeroex-api-key must be a non-empty string" ) ;
36+ }
37+
38+ process . env [ ZEROEX_API_KEY_ENV ] = apiKeyValue . trim ( ) ;
39+ }
40+
2841const program = new Command ( ) ;
2942program . name ( "agw-mcp" ) . description ( "Local MCP server for AGW session-key workflows" ) . version ( resolveCliVersion ( ) ) ;
3043
@@ -77,8 +90,11 @@ program
7790 . description ( "Run the local stdio MCP server" )
7891 . option ( "--chain-id <chainId>" , "EVM chain id (env: AGW_MCP_CHAIN_ID)" )
7992 . option ( "--rpc-url <rpcUrl>" , "RPC URL override (env: AGW_MCP_RPC_URL)" )
93+ . option ( "--zeroex-api-key <apiKey>" , "0x API key override (env: AGW_MCP_ZEROEX_API_KEY)" )
8094 . option ( "--storage-dir <dir>" , "Session storage directory" )
8195 . action ( async options => {
96+ applyZeroExApiKeyOverride ( options . zeroexApiKey ) ;
97+
8298 const networkConfig = resolveNetworkConfig ( {
8399 chainId : options . chainId ,
84100 rpcUrl : options . rpcUrl ,
0 commit comments