list_funds
List and filter investment funds in Turkey by type, risk level, management company, and other criteria to find suitable investment options.
Instructions
Yatırım fonlarını listeler ve filtreleme imkanı sunar
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Sayfa numarası (varsayılan: 1) | |
| limit | No | Sayfa başına kayıt sayısı (varsayılan: 20, maksimum: 100) | |
| type | No | Fon tipi | |
| search | No | Fon adı, kodu, şirket adı ile arama | |
| code | No | Fon kodu veya kodları (virgülle ayrılmış) | |
| management_company | No | Portföy yönetim şirketi kodu | |
| tefas | No | TEFAS'ta işlem görme durumu | |
| min_risk_value | No | Minimum risk seviyesi (1-7) | |
| max_risk_value | No | Maksimum risk seviyesi (1-7) | |
| sort | No | Sıralama alanı (code, title, yield_1y, vb.) | |
| order | No | Sıralama yönü |
Implementation Reference
- src/tools.ts:478-480 (handler)MCP tool handler for 'list_funds': validates input parameters using Zod schema and calls apiClient.listFunds to fetch the list of funds.case 'list_funds': const fundsParams = ListFundsSchema.parse(args); return await this.apiClient.listFunds(fundsParams);
- src/tools.ts:6-18 (schema)Zod schema for validating input parameters of the list_funds tool.const ListFundsSchema = z.object({ page: z.number().min(1).optional(), limit: z.number().min(1).max(100).optional(), type: z.nativeEnum(FundTypeEnum).optional(), search: z.string().optional(), code: z.string().optional(), management_company: z.string().optional(), tefas: z.boolean().optional(), min_risk_value: z.number().min(1).max(7).optional(), max_risk_value: z.number().min(1).max(7).optional(), sort: z.string().optional(), order: z.enum(['ASC', 'DESC']).optional() });
- src/tools.ts:89-150 (registration)Tool registration in getTools(): defines name 'list_funds', description, and JSON inputSchema for MCP protocol.{ name: 'list_funds', description: 'Yatırım fonlarını listeler ve filtreleme imkanı sunar', inputSchema: { type: 'object', properties: { page: { type: 'number', description: 'Sayfa numarası (varsayılan: 1)', minimum: 1 }, limit: { type: 'number', description: 'Sayfa başına kayıt sayısı (varsayılan: 20, maksimum: 100)', minimum: 1, maximum: 100 }, type: { type: 'string', description: 'Fon tipi', enum: Object.values(FundTypeEnum) }, search: { type: 'string', description: 'Fon adı, kodu, şirket adı ile arama' }, code: { type: 'string', description: 'Fon kodu veya kodları (virgülle ayrılmış)' }, management_company: { type: 'string', description: 'Portföy yönetim şirketi kodu' }, tefas: { type: 'boolean', description: 'TEFAS\'ta işlem görme durumu' }, min_risk_value: { type: 'number', description: 'Minimum risk seviyesi (1-7)', minimum: 1, maximum: 7 }, max_risk_value: { type: 'number', description: 'Maksimum risk seviyesi (1-7)', minimum: 1, maximum: 7 }, sort: { type: 'string', description: 'Sıralama alanı (code, title, yield_1y, vb.)' }, order: { type: 'string', description: 'Sıralama yönü', enum: ['ASC', 'DESC'] } } } },
- src/api-client.ts:56-59 (helper)Core implementation in ApiClient: makes HTTP GET request to '/funds' endpoint with query parameters to retrieve paginated list of funds.async listFunds(params: ListFundsParams = {}): Promise<PaginatedResponse<Fund>> { const response: AxiosResponse<PaginatedResponse<Fund>> = await this.client.get('/funds', { params }); return response.data; }
- src/types.ts:205-217 (schema)TypeScript interface defining the structure and types for ListFundsParams used in apiClient.listFunds.export interface ListFundsParams { page?: number; limit?: number; type?: FundTypeEnum; search?: string; code?: string; management_company?: string; tefas?: boolean; min_risk_value?: number; max_risk_value?: number; sort?: string; order?: 'ASC' | 'DESC'; }