get_lobbying_meetings
Retrieve EU lobbying meetings data, with optional filtering by company, to analyze corporate influence and regulatory interactions.
Instructions
Get EU lobbying meetings, optionally filtered by company
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Optional: Company ID to filter by | |
| limit | No | Maximum number of meetings |
Implementation Reference
- src/database.ts:276-292 (handler)Core handler function that fetches lobbying meetings from the API endpoint '/api/lobbying' and optionally filters by company name.async getLobbyingMeetings(companyId?: string, limit: number = 20): Promise<any[]> { const data = await this.fetchAPI('/api/lobbying', { limit: limit }); const meetings = data.meetings || data.lobbying || []; if (companyId) { const companies = await this.getAllCompanies(); const company = companies.find(c => c.id === companyId); if (!company) return []; return meetings.filter(meeting => meeting.organization_name && meeting.organization_name.toLowerCase().includes(company.name.toLowerCase()) ); } return meetings; }
- src/index.ts:267-284 (registration)Tool registration in the MCP server's listTools handler, including name, description, and input schema.{ name: 'get_lobbying_meetings', description: 'Get EU lobbying meetings, optionally filtered by company', inputSchema: { type: 'object', properties: { companyId: { type: 'string', description: 'Optional: Company ID to filter by', }, limit: { type: 'number', description: 'Maximum number of meetings', default: 20, }, }, }, },
- src/index.ts:633-635 (handler)MCP CallToolRequest handler switch case that invokes the database method with parsed arguments.case 'get_lobbying_meetings': result = await this.db.getLobbyingMeetings((args as any)?.companyId, (args as any)?.limit || 20); break;
- src/index.ts:270-283 (schema)Input schema definition for the tool, specifying companyId and limit parameters.inputSchema: { type: 'object', properties: { companyId: { type: 'string', description: 'Optional: Company ID to filter by', }, limit: { type: 'number', description: 'Maximum number of meetings', default: 20, }, }, },