Dart包元数据协议服务

一个提供Dart/Flutter包元数据、发布说明、文档资源和源文件访问的协议服务,支持从pub.dev公共注册表和本地pub缓存获取数据。

  • by evaisse
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 evaisse/dart-pub-mcp

使用说明

飞镖酒吧mcp

模型上下文协议(MCP)服务器,向公众公开元数据、发行说明、文档资产和源文件 pub.dev 注册表以及本地Dart/Flutter发布缓存。

特性

  • 镜像官方pub.dev API端点,记录在 pub.dev/help/api 用于包元数据、分数和发布者信息。
  • 从pub.dev流式传输包存档,以公开README、更改日志和任意源文件。
  • 读取已下载到本地发布缓存中的文件(默认为 ~/.pub-cache,用以下命令覆盖 PUB_CACHE).
  • 为包、版本和文件列表提供发现帮助程序,以指导MCP客户端。

支持的资源

远程资源(pub.dev:// URI):

  • pub.dev://package/{package} –包摘要(JSON来自 /api/packages/{package}).
  • pub.dev://package/{package}/score –评分元数据(/api/packages/{package}/score).
  • pub.dev://package/{package}/publisher –出版商信息(/api/packages/{package}/publisher).
  • pub.dev://package/{package}/version/{version} –版本元数据(/api/packages/{package}/versions/{version}).使用 latest 最新版本。
  • pub.dev://package/{package}/version/{version}/files –已发布存档中包含的JSON文件列表。
  • pub.dev://package/{package}/version/{version}/file/{+filePath} –档案中的原始文件内容(例如。 .../file/README.md 或 .../file/lib/src/foo.dart).

本地缓存资源(pubcache:// URI):

  • pubcache://package/{package}/versions –本地可用的版本,按托管源分组。
  • pubcache://package/{package}/version/{version}/files –缓存版本的磁盘上的JSON文件列表。
  • pubcache://package/{package}/version/{version}/file/{+filePath} –本地发布缓存中的原始文件。

安装

npm install

运行服务器

npm start

服务器通过stdio进行通信,因此您可以连接任何兼容MCP的客户端(Claude Desktop、Claude Code、Cursor、MCP Inspector等)。连接后,使用上述资源URI请求数据。

客户端配置示例

以下是通过调用服务器的示例配置 npx (一旦包发布到npm就很有用)。替换 X.Y.Z 使用所需版本或省略它以始终获取最新版本。

克劳德代码/克劳德桌面(克劳德CLI)

claude mcp add dart-pub-mcp \
  --transport stdio \
  --command npx \
  --arg dart-pub-mcp@latest \
  --arg start

Gemini代码辅助(VS代码 google-gemini.json)

{
  "mcpServers": [
    {
      "name": "dart-pub-mcp",
      "type": "stdio",
      "command": "npx",
      "args": ["dart-pub-mcp@latest", "start"]
    }
  ]
}

OpenAI Codex/o1编码器(VS代码 openai.json)

{
  "mcpServers": {
    "dart-pub-mcp": {
      "command": "npx",
      "args": ["dart-pub-mcp@latest", "start"],
      "transport": "stdio"
    }
  }
}

环境变量

  • PUB_CACHE –酒吧缓存的自定义位置。如果未设置,服务器将回退到 ~/.pub-cache.

发展

# Type checks & build artefacts
npm run build

# Run automated tests
npm test

# Verify publishable package contents (dry run)
npm run pack:test

# Watch mode for local iteration
npm run dev

存储库使用TypeScript tsx 为了地方发展。生成输出被发送到 dist/.

看 贡献.md 供款指南和 代理商.md 了解MCP客户端集成的详细信息。

出版发行

此存储库通过GitHub Actions使用自动NPM发布。有关设置版本和配置NPM_TOKEN密钥的信息,请参阅 .github/NPM_RELEASE_SETUP.md.

关于pub.dev API的说明

实施遵循公开记录的端点 pub.dev/help/api:

  • /api/package-name-completion-data –用于MCP资源模板内的轻量级包发现。
  • /api/packages/<package>/score 和 /api/packages/<package>/publisher –公开分数和发布者元数据。
  • /api/package-names –可用于详尽的包列表(目前没有自动公开以避免大的有效载荷,但实现了辅助程序)。

对于包版本元数据和存档,我们依赖 托管发布库规范v2 那个 pub CLI使用。这提供了 /api/packages/<package> 和 /api/packages/<package>/versions/<version>,以及 archive_url 服务器流式传输到表面文件的指针,例如 README.md 和 CHANGELOG.md.

许可证

根据ISC许可证发布。看 许可证.