项目简介
HausPet是一个全栈宠物管理系统,包含用户认证、宠物种类管理、宠物赞助系统和异步审计日志等功能。其MCP服务器扩展旨在于将HausPet的REST API接口转化为LLM可调用的标准化工具,从而让LLM能够直接与系统后端进行上下文交互和功能调用,例如管理宠物种类信息。
主要功能点
- 查询宠物种类: LLM可以列出所有宠物种类,或根据“猫”、“狗”、“鸟”等类型筛选查询。
- 获取随机种类: LLM可以获取一个随机的宠物种类,也可指定动物类型。
- 添加宠物种类: LLM可以将新的宠物种类添加到HausPet数据库中(需要认证)。
- 搜索动物: LLM可以按名称搜索动物并获取其赞助信息(支持部分匹配和不区分大小写)。
安装步骤
- 克隆仓库:
git clone https://github.com/samuelvi/Haus-Pet.git cd Haus-Pet - 设置环境变量:
创建一个 '.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设置的静态令牌 - 启动所有服务: 确保您的机器上已安装Docker和Docker Compose。运行以下命令启动整个HausPet生态系统(包括数据库、API、Worker等):
这将启动包括API服务器在内的所有必要服务,API服务器将监听在 'http://localhost:3000'。make up - 初始化数据库并填充数据:
首次启动或需要重置数据库时,运行以下命令。这将创建数据库模式并填充初始数据(包括一个默认的管理员用户和一些宠物种类):
make prune # 停止并清理开发环境的Docker卷 make reset-db # 重置开发数据库 make seed # 应用迁移并填充初始数据 make up # 重新启动所有服务 - (可选)填充更多宠物数据:
如果您需要为宠物赞助系统填充更多示例宠物数据,可以在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客户端中显示的服务器功能简要描述。
基本使用方法
- 确保MCP服务器已启动并正确配置: 参照“安装步骤”和“服务器配置”确保HausPet系统运行正常,且MCP客户端已加载并连接到MCP服务器。
- 在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