import { DataiClient } from '../utils/api-client.js';
// Import all tool creators
import { createGetAllUserDeFiPositionsTool } from './get-all-user-defi-positions.js';
import { createGetUserDeFiPositionsByChainTool } from './get-user-defi-positions-by-chain.js';
import { createGetUserDeFiPositionsByMultipleChainsTool } from './get-user-defi-positions-by-multiple-chains.js';
import { createGetUserDeFiPositionsByProtocolTool } from './get-user-defi-positions-by-protocol.js';
import { createGetUserDeFiProtocolBalancesByChainTool } from './get-user-defi-protocol-balances-by-chain.js';
import { createGetUserOverallBalanceAllChainsTool } from './get-user-overall-balance-all-chains.js';
import { createGetUserOverallBalanceByChainTool } from './get-user-overall-balance-by-chain.js';
import { createGetWalletBalancesByChainTool } from './get-wallet-balances-by-chain.js';
/**
* Register all DataAI tools with the FastMCP server
* @param server - FastMCP server instance
* @param client - DataAI API client instance
*/
export function registerAllTools(server: any, client: DataiClient): void {
// NOTE: Absolutely NO console.* logging here. Any stdout/stderr output
// will corrupt the MCP JSON-RPC stream. If you need to debug this
// function, write to a temporary file or use a debugger instead.
// ALL TOOLS RE-ENABLED - Constants.ts and validation fixed
const enabledTools = [
createGetAllUserDeFiPositionsTool(client),
createGetUserDeFiPositionsByChainTool(client),
createGetUserDeFiPositionsByMultipleChainsTool(client),
createGetUserDeFiPositionsByProtocolTool(client),
createGetUserDeFiProtocolBalancesByChainTool(client),
createGetUserOverallBalanceAllChainsTool(client),
createGetUserOverallBalanceByChainTool(client),
createGetWalletBalancesByChainTool(client)
];
// Register each tool with the server
enabledTools.forEach((tool, index) => {
try {
server.addTool(tool);
// Tool registration success - no console output needed for MCP
} catch (error) {
const err = error as Error;
// Re-throw so that the caller (server startup code) can handle it.
throw error;
}
});
// All tools registered successfully - no console output needed for MCP
}
// Export individual tool creators for testing
export {
createGetAllUserDeFiPositionsTool,
createGetUserDeFiPositionsByChainTool,
createGetUserDeFiPositionsByMultipleChainsTool,
createGetUserDeFiPositionsByProtocolTool,
createGetUserDeFiProtocolBalancesByChainTool,
createGetUserOverallBalanceAllChainsTool,
createGetUserOverallBalanceByChainTool,
createGetWalletBalancesByChainTool
};