项目简介

HausPet是一个全栈宠物管理系统,包含用户认证、宠物种类管理、宠物赞助系统和异步审计日志等功能。其MCP服务器扩展旨在于将HausPet的REST API接口转化为LLM可调用的标准化工具,从而让LLM能够直接与系统后端进行上下文交互和功能调用,例如管理宠物种类信息。

主要功能点

  • 查询宠物种类: LLM可以列出所有宠物种类,或根据“猫”、“狗”、“鸟”等类型筛选查询。
  • 获取随机种类: LLM可以获取一个随机的宠物种类,也可指定动物类型。
  • 添加宠物种类: LLM可以将新的宠物种类添加到HausPet数据库中(需要认证)。
  • 搜索动物: LLM可以按名称搜索动物并获取其赞助信息(支持部分匹配和不区分大小写)。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/samuelvi/Haus-Pet.git
    cd Haus-Pet
  2. 设置环境变量: 创建一个 '.env' 文件在项目根目录 ('Haus-Pet/.env'),并添加以下变量。'MCP_API_TOKEN' 是MCP服务器调用HausPet API时的认证令牌,请务必设置为一个强密码:
    # 其他HausPet环境变量...
    # 例如:
    DATABASE_URL="postgresql://user:password@localhost:5432/hauspet_dev?schema=public"
    REDIS_HOST="localhost"
    REDIS_PORT=6379
    AUDIT_DB_URI="mongodb://localhost:27017/audit_log_db"
    JWT_SECRET="your_jwt_secret"
    JWT_REFRESH_SECRET="your_jwt_refresh_secret"
    
    # MCP服务器配置
    HAUSPET_API_URL="http://localhost:3000" # HausPet REST API的地址
    MCP_API_TOKEN="your_mcp_api_token_here" # 为MCP服务器访问HausPet API设置的静态令牌
  3. 启动所有服务: 确保您的机器上已安装Docker和Docker Compose。运行以下命令启动整个HausPet生态系统(包括数据库、API、Worker等):
    make up
    这将启动包括API服务器在内的所有必要服务,API服务器将监听在 'http://localhost:3000'。
  4. 初始化数据库并填充数据: 首次启动或需要重置数据库时,运行以下命令。这将创建数据库模式并填充初始数据(包括一个默认的管理员用户和一些宠物种类):
    make prune      # 停止并清理开发环境的Docker卷
    make reset-db   # 重置开发数据库
    make seed       # 应用迁移并填充初始数据
    make up         # 重新启动所有服务
  5. (可选)填充更多宠物数据: 如果您需要为宠物赞助系统填充更多示例宠物数据,可以在Docker容器内执行以下命令:
    docker exec hauspet_api npx ts-node prisma/seed-pets.ts

服务器配置 (供MCP客户端使用)

MCP服务器通过标准输入/输出 (stdio) 传输协议与客户端通信。您需要为您的MCP客户端(例如Claude Desktop)配置以下启动命令:

{
  "server_name": "HausPet MCP 服务器",
  "command": "node",
  "args": ["app/api/mcp-server.js"],
  "env": {
    "HAUSPET_API_URL": "http://localhost:3000",
    "MCP_API_TOKEN": "YOUR_SUPER_SECRET_TOKEN_HERE"
  },
  "description": "通过MCP协议与HausPet宠物管理系统后端交互。支持查询和添加宠物种类。"
}
  • 'server_name': 在MCP客户端界面中显示的MCP服务器名称。
  • 'command': 启动MCP服务器可执行文件的命令,此处为'node'。
  • 'args': 传递给'command'的参数列表。'app/api/mcp-server.js' 是已编译的MCP服务器脚本路径。请确保您的Node.js环境能够找到并执行此文件。
  • 'env': 环境变量对象,用于为MCP服务器进程设置自定义环境变量。
    • 'HAUSPET_API_URL': HausPet REST API的基准URL。MCP服务器将向此URL发送请求以执行工具操作。在Docker Compose环境中,默认是 'http://localhost:3000'。
    • 'MCP_API_TOKEN': 这是用于MCP服务器向HausPet REST API进行认证的静态API令牌。请将此值替换为您在 '.env' 文件中设置的 'MCP_API_TOKEN' 的实际值,以确保MCP服务器能正常访问受保护的API端点。
  • 'description': 在MCP客户端中显示的服务器功能简要描述。

基本使用方法

  1. 确保MCP服务器已启动并正确配置: 参照“安装步骤”和“服务器配置”确保HausPet系统运行正常,且MCP客户端已加载并连接到MCP服务器。
  2. 在LLM客户端中调用工具:
    • 查询狗的种类: 您可以向LLM提出请求,例如:“帮我列出所有狗的种类。” LLM将调用 'list_breeds_by_type' 工具。
    • 获取随机宠物种类: 尝试说:“给我一个随机的鸟的种类。” LLM将调用 'get_random_breed' 工具。
    • 添加新的宠物种类: 如果您想添加一个名为“哈士奇”的狗种类,可以说:“请添加一种新的狗的种类,名字叫‘哈士奇’。” LLM将调用 'add_breed' 工具。请注意,'add_breed' 是一个受保护的操作,需要'MCP_API_TOKEN'正确配置才能成功执行。
    • 搜索动物: 例如:“帮我查找名叫Luna的动物。” LLM将调用 'search_animal_by_name' 工具并返回匹配的动物及其赞助信息。

信息

分类

网页与API