项目简介

这是一个实现模型上下文协议(Model Context Protocol - MCP)的服务器项目。它允许大型语言模型(LLM)客户端通过标准的MCP接口与 pub.dev(Dart和Flutter的软件包仓库)进行交互。

主要功能点

  • 搜索软件包: 允许用户(通过LLM客户端)在pub.dev上搜索Dart和Flutter软件包。
  • 获取软件包详情: 提供获取特定软件包详细信息的能力,包括最新版本、描述、项目链接(Homepage, Repository, Issue Tracker)、依赖列表(标准、开发、覆盖)、软件包评分(Likes, Pub Points, Popularity)以及最近的版本历史。

安装步骤

  1. 安装 Dart SDK: 如果您尚未安装 Dart SDK,请按照 Dart 安装指南 进行安装。
  2. 克隆仓库:
    git clone <repository_url>
    cd pub_dev_mcp 
  3. 获取依赖: 运行以下命令下载项目所需的依赖库:
    dart pub get
  4. 运行服务器: 服务器使用 Stdio(标准输入输出)进行通信。运行以下命令启动服务器:
    dart run bin/pub_dev_mcp.dart
    服务器启动后会打印 'Pub.dev MCP Server listening on stdio...' 表示已准备就绪。
  5. (可选)编译为可执行文件: 您可以将服务器编译成独立的二进制文件,方便部署和使用:
    dart compile exe bin/pub_dev_mcp.dart -o pub_dev_mcp_server
    然后运行编译好的可执行文件:
    ./pub_dev_mcp_server 

服务器配置

要让支持MCP协议的客户端(如某些LLM应用程序或开发工具)连接到这个服务器,您需要提供一个JSON格式的配置。这个配置告诉客户端如何启动并与服务器通信。

以下是两种常见的配置示例:

使用 'dart run' 方式启动服务器的配置:

{
  "name": "Pub.dev Server (Dart Run)",
  "transport": {
    "type": "stdio",
    "command": "dart",
    "args": ["run", "bin/pub_dev_mcp.dart"],
    "cwd": "/path/to/your/pub_dev_mcp_project_directory"
  }
}
  • 'name': 服务器在客户端界面显示的名称。
  • 'transport.type': 通信方式,这里是 'stdio'(标准输入输出)。
  • 'transport.command': 启动服务器进程的命令,这里是 'dart' 可执行文件。
  • 'transport.args': 传递给命令的参数,这里是 'run bin/pub_dev_mcp.dart',表示运行项目中的主文件。
  • 'transport.cwd': 启动命令时的工作目录,需要设置为您克隆的 'pub_dev_mcp' 项目的路径。请将 '/path/to/your/pub_dev_mcp_project_directory' 替换为实际路径。

使用编译后的可执行文件启动服务器的配置:

{
  "name": "Pub.dev Server (Executable)",
  "transport": {
    "type": "stdio",
    "command": "/path/to/your/pub_dev_mcp_project_directory/pub_dev_mcp_server",
    "args": [],
    "cwd": "/path/to/your/pub_dev_mcp_project_directory"
  }
}
  • 'name': 服务器在客户端界面显示的名称。
  • 'transport.type': 通信方式,这里是 'stdio'。
  • 'transport.command': 启动服务器进程的命令,这里是编译生成的可执行文件的完整路径。
  • 'transport.args': 传递给命令的参数,这里为空数组,因为可执行文件不需要额外参数。
  • 'transport.cwd': 启动命令时的工作目录,通常设置为可执行文件所在的目录或项目根目录。请将 '/path/to/your/pub_dev_mcp_project_directory' 替换为实际路径。

请确保您在客户端配置中提供的 'command' 和 'cwd' 路径是准确的,指向您本地的服务器文件位置。

基本使用方法

一旦MCP客户端成功连接到 Pub.dev MCP 服务器,LLM或其他客户端组件就可以通过标准的JSON-RPC请求调用服务器提供的工具(Tools)。

目前提供的工具包括:

  • 'searchPubDev': 用于搜索pub.dev上的软件包,需要提供搜索关键词等参数。
  • 'getPackageDetails': 用于获取特定软件包的详细信息,需要提供软件包名称。

具体的调用方式和参数格式由您使用的MCP客户端决定,客户端会根据服务器的能力声明(Capabilities)了解可用的工具及其输入输出规范。

信息

分类

开发者工具