Skip to main content
Glama
devqxi

Pub.dev MCP Server

by devqxi
README.md
# Pub.dev MCP Server

A **Model Context Protocol (MCP)** server for [pub.dev](https://pub.dev), the official package repository for Dart and Flutter.  
It allows AI assistants to **search**, **analyze**, and **retrieve** detailed information about Dart/Flutter packages.

<a href="https://glama.ai/mcp/servers/@devqxi/pubdev-mcp-server">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@devqxi/pubdev-mcp-server/badge" alt="Pub.dev Server MCP server" />
</a>

---

## ✨ Features
- 🔍 **Package Search** – Advanced filtering & sorting  
- 📦 **Package Information** – Metadata, dependencies, statistics  
- 🔄 **Version Management** – Check updates, compare versions, track history  
- 📚 **Documentation Access** – README, changelog, examples, API docs  
- ⚡ **Caching** – Built-in 5-minute intelligent cache  
- 🛠 **Dependency Analysis** – Compare dependencies between versions  

---

## 📦 Installation

### NPM (Recommended)
```bash
npm install -g @devqxi/pubdev-mcp-server
```

### From Source
```bash
git clone https://github.com/devqxi/pubdev-mcp-server.git
cd pubdev-mcp-server
npm install
npm run build
npm run start
```

---

## ⚙️ Configuration

### Claude Desktop
1. Locate your configuration file:  
   - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`  
   - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`  
   - **Linux**: `~/.config/Claude/claude_desktop_config.json`

2. Add:
```json
{
  "mcpServers": {
    "pubdev": {
      "command": "npx",
      "args": ["@devqxi/pubdev-mcp-server"]
    }
  }
}
```

3. Restart Claude Desktop.

**Local Build Example**:
```json
{
  "mcpServers": {
    "pubdev": {
      "command": "node",
      "args": ["/path/to/pubdev-mcp-server/dist/pubdev-mcp.js"]
    }
  }
}
```

**Other MCP Clients**:
```bash
npx @devqxi/pubdev-mcp-server
```

---

## 🛠 Available Tools

| Tool | Description | Key Parameters |
|------|-------------|----------------|
| **get_package_info** | Retrieve package metadata, stats, dependencies, publishers | `packageName` |
| **search_packages** | Search with filters and sorting | `query`, `sort`, `page` |
| **check_package_updates** | Check if updates are available | `packageName`, `currentVersion` |
| **get_package_versions** | Get version history | `packageName`, `limit` |
| **get_documentation_changes** | Get README, changelog, examples, API docs | `packageName`, `version`, `docType` |
| **compare_package_versions** | Compare dependencies & changes between versions | `packageName`, `fromVersion`, `toVersion` |

---

## 📖 Example Commands

- **Search Packages**  
  _"Search for state management packages sorted by popularity"_

- **Package Details**  
  _"Get information about the flutter_bloc package"_

- **Check Updates**  
  _"Check if provider has updates from version 6.0.0"_

- **Get Docs**  
  _"Get the changelog for dio version 4.0.0"_

- **Compare Versions**  
  _"Compare dependencies between http 2.0.0 and 3.0.0"_

---

## 💻 Development

```bash
git clone https://github.com/devqxi/pubdev-mcp-server.git
cd pubdev-mcp-server
npm install
npm run build
npm run start
```

**Test with MCP Inspector**:
```bash
npx @modelcontextprotocol/inspector npx @devqxi/pubdev-mcp-server
```

---

## 🌐 API Reference
- `https://pub.dev/api/packages/{package}`
- `https://pub.dev/api/search`
- `https://pub.dev/api/packages/{package}/versions`
- `https://pub.dev/packages/{package}/{version}/{doc-type}`

---

## 🛡 Error Handling
- Graceful handling of network & API failures  
- Clear errors for invalid/non-existent packages  
- Built-in delays for respectful rate limiting  
- Detailed validation messages for malformed requests  

---

## 🤝 Contributing
1. Fork & branch (`git checkout -b feature/amazing-feature`)  
2. Install deps (`npm install`)  
3. Build & test (`npm run build && npm test`)  
4. Commit & push (`git commit -m 'Add feature' && git push`)  
5. Open a Pull Request  

---

## 📜 License
MIT – See [LICENSE](LICENSE)

---

## 📢 Support
- [GitHub Issues](https://github.com/devqxi/pubdev-mcp-server/issues)  
- [Wiki](https://github.com/devqxi/pubdev-mcp-server/wiki)  
- [Discussions](https://github.com/devqxi/pubdev-mcp-server/discussions)  

---

## 🆕 Changelog
**v1.0.0**
- Initial release  
- All major pub.dev API endpoints supported  
- Caching & error handling implemented  
- Full MCP protocol compliance  

TDQS

A3.5/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: checking updates, comparing versions, getting documentation changes, retrieving package info, listing versions, and searching packages. The descriptions make it easy to differentiate between tools like 'check_package_updates' (for update status) and 'compare_package_versions' (for version differences).

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case, such as 'check_package_updates', 'get_package_info', and 'search_packages'. This uniformity makes the tool set predictable and easy to navigate without any deviations in naming conventions.

Tool Count5/5

With 6 tools, the server is well-scoped for its purpose of interacting with pub.dev packages. Each tool serves a specific function in package management, from discovery to version analysis, without feeling too sparse or overloaded. This count aligns with typical MCP server ranges for focused domains.

Completeness4/5

The tool set covers core workflows for package discovery, information retrieval, and version analysis effectively. Minor gaps exist, such as the lack of tools for publishing packages or managing dependencies, but agents can still perform essential tasks like searching, comparing, and monitoring updates without significant hindrance.

Maintenance

ActivityInactive
ResponsivenessNo issues