get_lobbying_meetings
Retrieve EU lobbying meetings data to analyze corporate influence, with optional filtering by specific companies for targeted research.
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 EU lobbying meetings from the API, optionally filters by company name, and returns the results.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:268-284 (registration)Tool registration including name, description, and input schema definition.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 request handler switch case that dispatches the tool call to the database method.case 'get_lobbying_meetings': result = await this.db.getLobbyingMeetings((args as any)?.companyId, (args as any)?.limit || 20); break;
- src/index.ts:271-284 (schema)Input schema for the get_lobbying_meetings tool, defining parameters companyId and limit.type: 'object', properties: { companyId: { type: 'string', description: 'Optional: Company ID to filter by', }, limit: { type: 'number', description: 'Maximum number of meetings', default: 20, }, }, }, },