Skip to main content
Glama

search_packages

Discover Dart and Flutter packages on pub.dev by searching with queries, applying filters, and sorting results. Supports pagination for efficient package discovery and analysis.

Instructions

Search for packages on pub.dev with filters

Input Schema

NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1)
queryYesSearch query
sortNoSort order for results

Input Schema (JSON Schema)

{ "properties": { "page": { "description": "Page number for pagination (default: 1)", "type": "number" }, "query": { "description": "Search query", "type": "string" }, "sort": { "description": "Sort order for results", "enum": [ "top", "text", "created", "updated", "popularity", "points", "likes" ], "type": "string" } }, "required": [ "query" ], "type": "object" }

Implementation Reference

  • The core handler function implementing the search_packages tool logic: constructs pub.dev search URL, fetches and caches results, formats package information, and returns standardized MCP response.
    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) } ] }; }
  • Input schema defining parameters for the search_packages tool: query (required), sort (enum options), and page (optional).
    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"] }
  • Registration in the tool dispatch switch statement: maps tool call to the searchPackages handler method.
    case "search_packages": return await this.searchPackages( args.query as string, args.sort as string, args.page as number );
  • Tool registration object including name, description, and schema, added to the tools list for MCP tools/list endpoint.
    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"] } }

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/devqxi/pubdev-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server