Skip to main content
Glama
kinmeic

Stock MCP Server

by kinmeic

position_remove

Remove a stock position from your portfolio by specifying the stock code and market, helping you manage your investment holdings.

Instructions

删除持仓记录

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码
marketYes市场

Implementation Reference

  • The handler function that processes position_remove tool calls. It validates input using RemovePositionSchema, calls position.removePosition(), and returns a success/error response.
    if (name === 'position_remove') {
      const params = RemovePositionSchema.parse(args);
      const success = position.removePosition(params.code, params.market as Market);
      if (!success) {
        throw new Error('Position not found');
      }
      return {
        content: [
          {
            type: 'text',
            text: JSON.stringify({ success: true }, null, 2),
          },
        ],
      };
    }
  • Core implementation of removePosition function. Loads positions from JSON file, finds the position by code and market, removes it using splice(), saves changes, and returns success status.
    export function removePosition(code: string, market: Market): boolean {
      const positions = loadPositions();
      const index = positions.findIndex(p => p.code === code && p.market === market);
    
      if (index === -1) {
        return false;
      }
    
      positions.splice(index, 1);
      savePositions(positions);
      return true;
    }
  • Zod schema definition for position_remove tool input validation, requiring 'code' (string) and 'market' (enum: sh/sz/hk/us) parameters.
    const RemovePositionSchema = z.object({
      code: z.string().describe('股票代码'),
      market: z.enum(['sh', 'sz', 'hk', 'us']).describe('市场'),
    });
  • src/index.ts:172-183 (registration)
    Tool registration in ListToolsRequestSchema handler that exposes position_remove to MCP clients with description and input schema.
    {
      name: 'position_remove',
      description: '删除持仓记录',
      inputSchema: {
        type: 'object',
        properties: {
          code: { type: 'string', description: '股票代码' },
          market: { type: 'string', enum: ['sh', 'sz', 'hk', 'us'], description: '市场' },
        },
        required: ['code', 'market'],
      },
    },
  • Helper functions loadPositions() and savePositions() used by removePosition to read/write position data from positions.json file.
    function loadPositions(): Position[] {
      try {
        if (fs.existsSync(DATA_FILE)) {
          const data = fs.readFileSync(DATA_FILE, 'utf-8');
          return JSON.parse(data);
        }
      } catch (error) {
        console.error('Failed to load positions:', error);
      }
      return [];
    }
    
    // 保存持仓数据
    function savePositions(positions: Position[]): void {
      fs.writeFileSync(DATA_FILE, JSON.stringify(positions, null, 2));
    }

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/kinmeic/stock-mcp'

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