项目简介
AppDog 是一个强大的工具,旨在简化 Model Context Protocol (MCP) 服务器的构建过程。它允许开发者通过提供标准的 OpenAPI 规范,自动生成可供大型语言模型 (LLM) 客户端调用的 MCP 服务器。AppDog 将您的 RESTful API 转化为 LLM 可以理解和交互的“资源”和“工具”,从而为 LLM 应用程序提供标准化、可扩展的上下文服务框架。
主要功能点
- 从 OpenAPI 生成: 轻松将任何 OpenAPI (Swagger) 规范转换为可用的 MCP 服务器代码。
- 快速部署: 通过简单的命令即可快速设置和启动 MCP 服务器。
- 异步支持: 生成的服务器具备异步处理能力,高效应对并发请求。
- Python 生态: 基于 Python 构建,方便与现有 Python 项目集成。
- MCP 集成: 深度整合 Model Context Protocol,提供资源托管、工具注册等核心功能。
安装步骤
- 克隆仓库:
git clone https://github.com/Arya711139/appdog.git cd appdog - 安装依赖:
确保您的系统已安装 Python 3.7 或更高版本以及 pip。
pip install -r requirements.txt - 运行 AppDog:
或者,如果已通过 'pip install .' 安装,可以直接使用 'appdog' 命令。python appdog.py
MCP 服务器配置
MCP 客户端需要知道如何启动和连接到 AppDog 生成的 MCP 服务器。以下是 MCP 客户端配置 AppDog 服务器的示例(JSON 格式):
{ "server name": "您的服务器名称", "command": "appdog", "args": [ "mcp", "run", "--name", "您的服务器名称", "--transport", "stdio" ], "description": "一个由 AppDog 基于 OpenAPI 规范生成的 MCP 服务器。", "capabilities": { "resources": true, "tools": true, "prompts": false } }
- server name: 您为 MCP 服务器定义的唯一名称,例如 "PetStoreAPI"。
- command: 启动 AppDog 的主命令,通常是 'appdog'。
- args: 传递给 'appdog' 命令的参数列表。
- 'mcp run': 告诉 AppDog 以生产模式运行 MCP 服务器。
- '--name 您的服务器名称': 指定 MCP 服务器在运行时显示的名称。请替换为实际的服务器名称。
- '--transport stdio': 指定服务器使用标准输入/输出 (stdio) 进行通信,这是 MCP 客户端通常的默认方式。
- description: 服务器的功能描述。
- capabilities: 服务器支持的能力声明。'resources' 和 'tools' 通常为 'true',因为 AppDog 会将 OpenAPI 定义的 HTTP GET 请求转化为资源,非 GET 请求转化为工具。'prompts' 如果您的 OpenAPI 规范没有提供相关的 Prompt 模板功能,则可以设为 'false'。
基本使用方法
- 初始化项目:
在您的工作目录中运行以下命令,初始化 AppDog 项目配置(会创建 'apps.yaml' 和 'apps.lock' 文件):
appdog init - 添加 API 规范:
添加一个基于 OpenAPI 规范的应用程序。例如,如果您有一个 'sample_api.yaml' 文件:
其中 'my-api' 是您给这个应用程序的名称,'--uri' 指向您的 OpenAPI 规范文件或 URL,'--base-url' 是您的实际 API 服务地址。AppDog 会根据该规范在本地生成相应的 Python 客户端代码,并记录在项目配置中。appdog add my-api --uri sample_api.yaml --base-url http://localhost:8000 - 运行 MCP 服务器:
现在,您可以使用 'mcp run' 命令启动 AppDog 生成的 MCP 服务器,该服务器将托管 'my-api' 中定义的资源和工具。
这将启动一个后台进程,MCP 客户端可以通过标准 I/O 与其通信。如果您想在开发模式下运行并开启调试功能,可以使用 'appdog mcp dev --name MyAPIServer'。appdog mcp run --name MyAPIServer --transport stdio
信息
分类
开发者工具