get_board_interlocks
Identify directors serving on multiple IBEX 35 company boards to analyze corporate governance relationships in the Spanish stock exchange.
Instructions
Find directors who serve on multiple IBEX 35 company boards
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/database.ts:88-127 (handler)The primary handler function that executes the tool logic: fetches all companies, extracts directors, groups them by name to identify interlocks (directors on multiple boards), and returns sorted by number of boards.async getBoardInterlocks(): Promise<any[]> { const companies = await this.getAllCompanies(); // Extract all directors from all companies const allDirectors = []; companies.forEach(company => { if (company.directors && Array.isArray(company.directors)) { company.directors.forEach(director => { allDirectors.push({ ...director, company_name: company.name, company_symbol: company.ticker }); }); } }); // Group directors by name and find interlocks const directorMap = new Map(); allDirectors.forEach(director => { if (!directorMap.has(director.name)) { directorMap.set(director.name, []); } directorMap.get(director.name).push(director); }); const interlocks = []; for (const [name, directorList] of directorMap.entries()) { if (directorList.length > 1) { interlocks.push({ director_name: name, companies: directorList.map(d => d.company_name).join(', '), board_count: directorList.length, positions: directorList.map(d => `${d.company_name} (${d.position})`).join('; ') }); } } return interlocks.sort((a, b) => b.board_count - a.board_count); }
- src/index.ts:121-127 (registration)Tool registration in the list returned by ListToolsRequestSchema, including name, description, and input schema (no parameters required).name: 'get_board_interlocks', description: 'Find directors who serve on multiple IBEX 35 company boards', inputSchema: { type: 'object', properties: {}, }, },
- src/index.ts:597-599 (handler)Dispatch in the CallToolRequestSchema handler that routes the tool invocation to the database implementation.case 'get_board_interlocks': result = await this.db.getBoardInterlocks(); break;