Token导航 LogoToken导航TokenDH.com
Graphql Vs REST MCP logo
运维云端未说明官方级别未说明来源级核验

Graphql Vs REST MCP

MCP Server

一个演示GraphQL和REST API在大型语言模型(LLMs)中使用的差异的工具,重点展示GraphQL在分层数据查询中减少令牌使用和API往返次数的优势。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaudeGraphQLClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Inukares

提供方

Inukares

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

LLMs的GraphQL与REST:比较

该项目展示了GraphQL和REST API在与大型语言模型(LLM)一起使用时的差异,特别是Anthropic的Claude。它展示了GraphQL如何减少令牌的使用以及分层数据查询的API往返。

🎯 项目概述

Demo Screenshot

此演示包括:

  • 单一Elysia服务器 同时为REST和GraphQL端点提供服务
  • 模拟数据 (用户、帖子、评论)没有数据库
  • 两个AI代理:

- REST代理:通过工具调用使用多个REST端点 - GraphQL代理:使用单个GraphQL端点和嵌套查询

  • 比较脚本:运行代理并测量令牌使用情况、API调用和效率

📁 项目结构

src/
├── data/
│   └── mock-data.ts          # Shared mock data
├── rest/
│   └── handlers.ts            # REST endpoint handlers
├── graphql/
│   └── schema.ts              # GraphQL schema and resolvers
├── agents/
│   ├── rest-agent.ts          # Agent using REST API
│   ├── graphql-agent.ts       # Agent using GraphQL API
│   └── comparison.ts          # Comparison script
└── index.ts                   # Main server file

🚀 入门指南

先决条件

  • 包子 运行时已安装
  • 无烟煤API密钥(在https://console.anthropic.com/)

安装

  1. 安装依赖项:
bun install
  1. 通过创建 .env.local 文件:
echo "ANTHROPIC_API_KEY=your_api_key_here" > .env.local

或手动创建 .env.local:

ANTHROPIC_API_KEY=your_api_key_here

注: .env.local 为了安全起见,该文件被标记为无效。

🏃 运行项目

启动服务器

bun run dev
# or
bun run start

服务器将于启动http://localhost:3000与:

  • GraphQL端点:http://localhost:3000/graphql
  • REST端点:http://localhost:3000/rest/\*

运行比较

在单独的终端中(服务器正在运行):

bun run compare

这将使两个代理运行几个测试场景,并显示详细的指标比较:

  • 令牌使用情况(输入、输出、总计)
  • API调用数
  • 提高效率

📊 API终点

GraphQL端点

网址: http://localhost:3000/graphql

示例查询:

query {
  user(id: "1") {
    name
    email
    posts {
      title
      likes
      comments {
        content
        author {
          name
        }
      }
    }
  }
}

REST端点

  • GET /rest/users/:id -按ID获取用户
  • GET /rest/users/:id/posts -获取用户的帖子
  • GET /rest/posts/:id -按ID获取帖子
  • GET /rest/posts/:id/author -获取文章作者
  • GET /rest/posts/:id/comments -获取帖子评论
  • GET /rest/comments/:id -按ID获取评论
  • GET /rest/comments/:id/author -获取评论的作者
  • POST /rest/comments -创建新评论

💡 关键见解

当GraphQL闪耀时

  1. 分层数据查询:获取嵌套关系(例如,用户→ 帖子→ 评论→ 作者)
  2. 减少往返次数:单个查询而不是多个REST调用
  3. 代币效率:由于工具调用和响应减少,令牌使用量减少
  4. 灵活的数据获取:确切地要求你需要什么

何时REST可能足够

  1. 简单、扁平的数据查询
  2. 单资源查找
  3. 非分层操作

LLM的具体考虑因素

  • 架构描述GraphQL的类型系统及其描述有助于LLM理解可用的操作
  • 工具调用效率:与许多特定工具相比,具有灵活参数的工具更少
  • 成本优化:代币节约转化为LLM API的成本节约
  • 延迟:更少的往返意味着更快的响应时间

🧪 测试场景

比较脚本包括三个测试场景:

  1. 简单用户查询:基本单一资源查找
  2. 分层数据查询:多级嵌套数据
  3. 深度嵌套查询:具有多个连接的复杂关系

每个场景都通过REST和GraphQL代理运行,以展示方法和效率的差异。

🛠️ 使用的技术

📝 演示说明

  • 这是一个用于教育目的的演示
  • 使用模拟数据(没有真实数据库)
  • 关注代币效率和API设计模式
  • 展示LLM工具调用策略的实际差异

📄 许可证

这是一个演示项目,用于演示目的。

目录标签

目录标签

TypeScriptClaudeGraphQLAPI比较本地部署LLM优化REST令牌效率

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP