Skip to main content
Glama

MCP Bitget Trading Server

by gagarinyury

getPositions

Retrieve current futures positions on Bitget exchange to track and manage open trades. Filter results by symbol for precise monitoring of active market positions.

Instructions

Get current futures positions

Input Schema

NameRequiredDescriptionDefault
symbolNoFilter by symbol

Input Schema (JSON Schema)

{ "properties": { "symbol": { "description": "Filter by symbol", "type": "string" } }, "required": [], "type": "object" }

Implementation Reference

  • MCP tool handler that validates input using GetPositionsSchema, calls BitgetRestClient.getFuturesPositions(symbol), and returns formatted JSON response.
    case 'getPositions': { const { symbol } = GetPositionsSchema.parse(args); const positions = await this.bitgetClient.getFuturesPositions(symbol); return { content: [ { type: 'text', text: JSON.stringify(positions, null, 2), }, ], } as CallToolResult; }
  • Core implementation fetching futures positions from Bitget API endpoint '/api/v2/mix/position/all-position', handles symbol formatting, and maps API response to standardized Position objects.
    async getFuturesPositions(symbol?: string): Promise<Position[]> { const params: any = { productType: 'USDT-FUTURES' }; if (symbol) { // Add _UMCBL suffix for futures if not present params.symbol = symbol.includes('_') ? symbol : `${symbol}_UMCBL`; } const response = await this.request<any>('GET', '/api/v2/mix/position/all-position', params, true); const positions = response.data || []; return positions.map((position: any) => ({ symbol: position.symbol, side: position.holdSide || (parseFloat(position.size || '0') > 0 ? 'long' : 'short'), size: Math.abs(parseFloat(position.size || position.total || '0')).toString(), entryPrice: position.averageOpenPrice || position.openPriceAvg, markPrice: position.markPrice, pnl: position.unrealizedPL || position.achievedProfits, pnlPercent: position.unrealizedPLR || '0', margin: position.margin || position.marginSize, leverage: position.leverage, timestamp: parseInt(position.cTime || Date.now().toString()) })); }
  • Zod schema for input validation of getPositions tool parameters.
    export const GetPositionsSchema = z.object({ symbol: z.string().optional().describe('Filter by symbol') });
  • src/server.ts:205-215 (registration)
    Tool registration entry in the ListTools response, defining name, description, and JSON input schema.
    { name: 'getPositions', description: 'Get current futures positions', inputSchema: { type: 'object', properties: { symbol: { type: 'string', description: 'Filter by symbol' } }, required: [] }, },

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gagarinyury/MCP-bitget-trading'

If you have feedback or need assistance with the MCP directory API, please join our Discord server