ML Engine Updates: - Updated BTCUSD with Polygon API data (2024-2025): 215,699 new records - Re-trained all ML models: Attention (R²: 0.223), Base, Metamodel (87.3% confidence) - Backtest results: +176.71R profit with aggressive_filter strategy Documentation Consolidation: - Created docs/99-analisis/_MAP.md index with 13 new analysis documents - Consolidated inventories: removed duplicates from orchestration/inventarios/ - Updated ML_INVENTORY.yml with BTCUSD metrics and training results - Added execution reports: FASE11-BTCUSD, correction issues, alignment validation Architecture & Integration: - Updated all module documentation with NEXUS v3.4 frontmatter - Fixed _MAP.md indexes across all folders - Updated orchestration plans and traces Files: 229 changed, 5064 insertions(+), 1872 deletions(-) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
289 lines
7.8 KiB
TypeScript
289 lines
7.8 KiB
TypeScript
/**
|
|
* MCP Tools Index
|
|
*
|
|
* Exports all Binance MCP tools and their schemas for registration
|
|
*
|
|
* @version 1.0.0
|
|
* @author Trading Platform Trading Platform
|
|
*/
|
|
|
|
// Import handlers for use in toolHandlers map
|
|
import { handleBinanceGetTicker, handleBinanceGetOrderbook, handleBinanceGetKlines } from './market';
|
|
import { handleBinanceGetAccount, handleBinanceGetOpenOrders } from './account';
|
|
import { handleBinanceCreateOrder, handleBinanceCancelOrder } from './orders';
|
|
|
|
// ==========================================
|
|
// Market Tools Exports
|
|
// ==========================================
|
|
|
|
export {
|
|
binanceGetTickerSchema,
|
|
binance_get_ticker,
|
|
handleBinanceGetTicker,
|
|
BinanceGetTickerInputSchema,
|
|
type BinanceGetTickerInput,
|
|
type BinanceGetTickerResult,
|
|
binanceGetOrderbookSchema,
|
|
binance_get_orderbook,
|
|
handleBinanceGetOrderbook,
|
|
BinanceGetOrderbookInputSchema,
|
|
type BinanceGetOrderbookInput,
|
|
type BinanceGetOrderbookResult,
|
|
binanceGetKlinesSchema,
|
|
binance_get_klines,
|
|
handleBinanceGetKlines,
|
|
BinanceGetKlinesInputSchema,
|
|
type BinanceGetKlinesInput,
|
|
type BinanceGetKlinesResult,
|
|
} from './market';
|
|
|
|
// ==========================================
|
|
// Account Tools Exports
|
|
// ==========================================
|
|
|
|
export {
|
|
binanceGetAccountSchema,
|
|
binance_get_account,
|
|
handleBinanceGetAccount,
|
|
BinanceGetAccountInputSchema,
|
|
type BinanceGetAccountInput,
|
|
type BinanceGetAccountResult,
|
|
binanceGetOpenOrdersSchema,
|
|
binance_get_open_orders,
|
|
handleBinanceGetOpenOrders,
|
|
BinanceGetOpenOrdersInputSchema,
|
|
type BinanceGetOpenOrdersInput,
|
|
type BinanceGetOpenOrdersResult,
|
|
} from './account';
|
|
|
|
// ==========================================
|
|
// Order Tools Exports
|
|
// ==========================================
|
|
|
|
export {
|
|
binanceCreateOrderSchema,
|
|
binance_create_order,
|
|
handleBinanceCreateOrder,
|
|
BinanceCreateOrderInputSchema,
|
|
type BinanceCreateOrderInput,
|
|
type BinanceCreateOrderResult,
|
|
binanceCancelOrderSchema,
|
|
binance_cancel_order,
|
|
handleBinanceCancelOrder,
|
|
BinanceCancelOrderInputSchema,
|
|
type BinanceCancelOrderInput,
|
|
type BinanceCancelOrderResult,
|
|
} from './orders';
|
|
|
|
// ==========================================
|
|
// Tool Registry
|
|
// ==========================================
|
|
|
|
/**
|
|
* All available MCP tools with their schemas
|
|
* Follows MCP protocol format
|
|
*/
|
|
export const mcpToolSchemas = [
|
|
// Market Data Tools (Low Risk)
|
|
{
|
|
name: 'binance_get_ticker',
|
|
description: 'Get the current price and 24-hour statistics for a Binance trading pair',
|
|
inputSchema: {
|
|
type: 'object' as const,
|
|
properties: {
|
|
symbol: {
|
|
type: 'string',
|
|
description: 'Trading pair symbol (e.g., BTCUSDT, ETHUSDT, BNBUSDT)',
|
|
},
|
|
},
|
|
required: ['symbol'] as string[],
|
|
},
|
|
riskLevel: 'LOW',
|
|
},
|
|
{
|
|
name: 'binance_get_orderbook',
|
|
description: 'Get the order book (bids and asks) with the specified depth for a trading pair',
|
|
inputSchema: {
|
|
type: 'object' as const,
|
|
properties: {
|
|
symbol: {
|
|
type: 'string',
|
|
description: 'Trading pair symbol (e.g., BTCUSDT)',
|
|
},
|
|
limit: {
|
|
type: 'number',
|
|
description: 'Order book depth (5, 10, 20, 50, or 100). Default: 20',
|
|
},
|
|
},
|
|
required: ['symbol'] as string[],
|
|
},
|
|
riskLevel: 'LOW',
|
|
},
|
|
{
|
|
name: 'binance_get_klines',
|
|
description: 'Get historical candlestick (OHLCV) data for technical analysis',
|
|
inputSchema: {
|
|
type: 'object' as const,
|
|
properties: {
|
|
symbol: {
|
|
type: 'string',
|
|
description: 'Trading pair symbol (e.g., BTCUSDT)',
|
|
},
|
|
interval: {
|
|
type: 'string',
|
|
description: 'Candle interval: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w. Default: 5m',
|
|
enum: ['1m', '5m', '15m', '30m', '1h', '4h', '1d', '1w'],
|
|
},
|
|
limit: {
|
|
type: 'number',
|
|
description: 'Number of candles to retrieve (max 500). Default: 100',
|
|
},
|
|
},
|
|
required: ['symbol'] as string[],
|
|
},
|
|
riskLevel: 'LOW',
|
|
},
|
|
|
|
// Account Tools (Medium Risk)
|
|
{
|
|
name: 'binance_get_account',
|
|
description: 'Get Binance account balance and status. Shows all assets with non-zero balance.',
|
|
inputSchema: {
|
|
type: 'object' as const,
|
|
properties: {},
|
|
required: [] as string[],
|
|
},
|
|
riskLevel: 'MEDIUM',
|
|
},
|
|
{
|
|
name: 'binance_get_open_orders',
|
|
description: 'Get all open (pending) orders. Optionally filter by symbol.',
|
|
inputSchema: {
|
|
type: 'object' as const,
|
|
properties: {
|
|
symbol: {
|
|
type: 'string',
|
|
description: 'Optional: Filter by trading pair symbol (e.g., BTCUSDT)',
|
|
},
|
|
},
|
|
required: [] as string[],
|
|
},
|
|
riskLevel: 'MEDIUM',
|
|
},
|
|
|
|
// Order Tools (High Risk)
|
|
{
|
|
name: 'binance_create_order',
|
|
description: 'Create a new buy or sell order on Binance. HIGH RISK - Ensure you validate with the user before executing.',
|
|
inputSchema: {
|
|
type: 'object' as const,
|
|
properties: {
|
|
symbol: {
|
|
type: 'string',
|
|
description: 'Trading pair symbol (e.g., BTCUSDT, ETHUSDT)',
|
|
},
|
|
side: {
|
|
type: 'string',
|
|
enum: ['buy', 'sell'],
|
|
description: 'Order direction: buy or sell',
|
|
},
|
|
type: {
|
|
type: 'string',
|
|
enum: ['market', 'limit', 'stop_loss', 'take_profit'],
|
|
description: 'Order type. Default: market',
|
|
},
|
|
amount: {
|
|
type: 'number',
|
|
description: 'Amount of the base asset to buy/sell',
|
|
},
|
|
price: {
|
|
type: 'number',
|
|
description: 'Price per unit (required for limit orders)',
|
|
},
|
|
stopPrice: {
|
|
type: 'number',
|
|
description: 'Stop price (required for stop_loss and take_profit orders)',
|
|
},
|
|
},
|
|
required: ['symbol', 'side', 'amount'] as string[],
|
|
},
|
|
riskLevel: 'HIGH',
|
|
requiresConfirmation: true,
|
|
},
|
|
{
|
|
name: 'binance_cancel_order',
|
|
description: 'Cancel a pending order by order ID and symbol',
|
|
inputSchema: {
|
|
type: 'object' as const,
|
|
properties: {
|
|
symbol: {
|
|
type: 'string',
|
|
description: 'Trading pair symbol (e.g., BTCUSDT)',
|
|
},
|
|
orderId: {
|
|
type: 'string',
|
|
description: 'Order ID to cancel',
|
|
},
|
|
},
|
|
required: ['symbol', 'orderId'] as string[],
|
|
},
|
|
riskLevel: 'MEDIUM',
|
|
},
|
|
];
|
|
|
|
/**
|
|
* Tool handler routing map
|
|
* Maps tool names to their handler functions
|
|
*/
|
|
export const toolHandlers: Record<
|
|
string,
|
|
(params: unknown) => Promise<{ content: Array<{ type: string; text: string }> }>
|
|
> = {
|
|
// Market tools
|
|
binance_get_ticker: handleBinanceGetTicker,
|
|
binance_get_orderbook: handleBinanceGetOrderbook,
|
|
binance_get_klines: handleBinanceGetKlines,
|
|
|
|
// Account tools
|
|
binance_get_account: handleBinanceGetAccount,
|
|
binance_get_open_orders: handleBinanceGetOpenOrders,
|
|
|
|
// Order tools
|
|
binance_create_order: handleBinanceCreateOrder,
|
|
binance_cancel_order: handleBinanceCancelOrder,
|
|
};
|
|
|
|
/**
|
|
* Get all tool definitions for MCP protocol
|
|
*/
|
|
export function getAllToolDefinitions() {
|
|
return mcpToolSchemas.map((tool) => ({
|
|
name: tool.name,
|
|
description: tool.description,
|
|
inputSchema: tool.inputSchema,
|
|
}));
|
|
}
|
|
|
|
/**
|
|
* Get tool by name
|
|
*/
|
|
export function getToolByName(name: string) {
|
|
return mcpToolSchemas.find((tool) => tool.name === name);
|
|
}
|
|
|
|
/**
|
|
* Check if a tool requires confirmation
|
|
*/
|
|
export function toolRequiresConfirmation(name: string): boolean {
|
|
const tool = mcpToolSchemas.find((t) => t.name === name);
|
|
return (tool as { requiresConfirmation?: boolean })?.requiresConfirmation === true;
|
|
}
|
|
|
|
/**
|
|
* Get tool risk level
|
|
*/
|
|
export function getToolRiskLevel(name: string): string {
|
|
const tool = mcpToolSchemas.find((t) => t.name === name);
|
|
return (tool as { riskLevel?: string })?.riskLevel ?? 'UNKNOWN';
|
|
}
|