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
TableJSON 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 );