search_packages
Search for Dart and Flutter packages on pub.dev using filters, sort options, and pagination to discover relevant dependencies.
Instructions
Search for packages on pub.dev with filters
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| sort | No | Sort order for results | |
| page | No | Page number for pagination (default: 1) |
Implementation Reference
- src/pubdev-mcp.ts:493-527 (handler)The main handler function for the search_packages tool. It constructs a search URL for pub.dev API with query, sort, and page parameters, fetches results using cached fetch, processes the packages data, and returns a JSON-formatted response with search results.
private async searchPackages(query: string, sort: string = 'top', page: number = 1) { const params = new URLSearchParams({ q: query, sort: sort, page: page.toString() }); const url = `https://pub.dev/api/search?${params}`; const data = await this.fetchWithCache<any>(url, `search-${query}-${sort}-${page}`); const results = { query, sort, page, totalResults: data.count, packages: data.packages.map((pkg: any) => ({ name: pkg.package, version: pkg.latest.version, description: pkg.latest.pubspec?.description, points: pkg.points, likes: pkg.likes, popularity: pkg.popularity, publishedAt: pkg.latest.published })) }; return { content: [ { type: "text", text: JSON.stringify(results, null, 2) } ] }; } - src/pubdev-mcp.ts:158-180 (schema)Input schema definition for the search_packages tool, specifying required 'query' parameter and optional 'sort' (enum) and 'page' parameters.
{ name: "search_packages", description: "Search for packages on pub.dev with filters", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query" }, sort: { type: "string", enum: ["top", "text", "created", "updated", "popularity", "points", "likes"], description: "Sort order for results" }, page: { type: "number", description: "Page number for pagination (default: 1)" } }, required: ["query"] } } - src/pubdev-mcp.ts:224-229 (registration)Dispatcher registration in the CallToolRequestSchema handler that routes calls to the searchPackages method with parsed arguments.
case "search_packages": return await this.searchPackages( args.query as string, args.sort as string, args.page as number );