Token导航 LogoToken导航

MCP Server · 运维云端

Typespec MCP Openapi Dual Output Demo

一个基于TypeSpec的统一购物车服务,提供用户和订单管理功能,支持MCP服务器和REST API的双重输出。

stdio官方级别未说明来源级核验工具 4swagger-ui-express
TypeScriptAPI集成云端部署

快速开始

作者 / 组织
anfibiacreativa
提供方
anfibiacreativa
运行时
Node.js

工具数量

4

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Typespec MCP Openapi Dual Output Demo 属于运维云端类 MCP Server,公开资料标注 4 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

运维云端

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

npx swagger-ui-express tsp-output/openapi/openapi.yaml

客户端配置示例

{
  "mcpServers": {
    "typespec-mcp-openapi-dual-output-demo": {
      "command": "npx",
      "args": [
        "swagger-ui-express",
        "tsp-output/openapi/openapi.yaml"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 4 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

TypeSpec MCP 示例:购物车服务

双输出 | 要求 | 安装 | 构建

这个项目展示了建筑(的过程/方法/成果等,具体根据上下文确定) 两者都 一个模型上下文协议(MCP)服务器 并且 一个来自单一TypeSpec定义的REST API。它提供了一个统一的购物车服务,具备用户和订单管理功能。

✨ 主要特点:双输出

使用TypeSpec与HTTP装饰器,此项目生成:

  • 🤖 机器人 MCP 服务器 - 用于AI代理工具调用
  • 🌐 表示“互联网”或“世界万维网”。 OpenAPI 3.0 规范 - 用于REST API文档和客户端生成

一个定义 → 两个输出! 见 \DUAL_OUTPUT_GUIDE.md\ 翻译为中文是:“双输出指南.md” 详情见下。

📦 要求

  • Node.js 版本 >= 20
  • npm 版本 >= 9
  • TypeScript

🏗️ 安装

mkdir api-dual-demo
cd api-dual-demo
git clone https://github.com/anfibiacreativa/typespec-mcp-openapi-dual-output-demo

安装所有依赖项:

npm install --legacy-peer-deps

⚠️ 安装问题注意事项:

  • 使用 --legacy-peer-deps 以避免严格的npm 7+版本中的同级依赖冲突
  • 在Apple Silicon上,一些较旧的包(@alloy-js/core)可能需要 --legacy-peer-deps

建筑

APISummit/
 ├─ main.tsp                    # Unified TypeSpec definitions (with HTTP decorators)
 ├─ tspconfig.yml               # TypeSpec configuration (dual emitters)
 ├─ src/
 │   ├─ http-server.ts          # Express HTTP bridge
 │   └─ mcp-server.ts           # MCP server implementation
 └─ tsp-output/
     ├─ typespec-mcp-server-js/ # Generated MCP TypeScript server
     │   ├─ index.ts            # MCP server
     │   ├─ tools.ts            # Tool interfaces
     │   └─ schemas/            # Zod and JSON schemas
     └─ openapi/                # Generated OpenAPI spec
         └─ openapi.yaml        # OpenAPI 3.0 specification

🔨 构建

构建过程会编译TypeSpec和TypeScript:

npm run build

这运行的是:

  1. npm run build:tsp - 将TypeSpec编译以生成:

- MCP服务器代码在 tsp-output/typespec-mcp-server-js/ - OpenAPI规范在 tsp-output/openapi/openapi.yaml

  1. npm run build:ts - 将TypeScript编译为JavaScript

生成的输出:

  • ✅ MCP 服务器(TypeScript)
  • ✅ OpenAPI 3.0 规范(YAML 格式)
  • ✅ 类型定义和验证模式

🚀 运行HTTP桥接器

这个(或:该) http-server.ts 设置 Express 以将 MCP 操作作为 HTTP 端点公开。

npm start

服务器监听于 http://localhost:3000 翻译为中文是:“本地主机的3000端口”。不过,通常我们不会直接翻译网址,而是会说“访问本地主机的3000端口”或者“打开http://localhost:3000”。这里的“localhost”指的是本地计算机,“3000”是端口号

可用路线:

GET  /users/:id     -> userOperations.getUser
POST /users         -> userOperations.createUser
GET  /orders/:id    -> orderOperations.getOrder
POST /orders        -> orderOperations.createOrder

⚡ 测试API

用户运营

创建用户:

curl -X POST http://localhost:3000/users \
  -H "Content-Type: application/json" \
  -d '{"id":"u-1001","name":"Ada Lovelace","email":"ada@example.com"}'

获取一个用户:

curl http://localhost:3000/users/u-1001

预期响应:

{
  "id": "u-1001",
  "name": "Alice Example",
  "email": "alice@example.com"
}

订单操作

创建一个订单:

curl -X POST http://localhost:3000/orders \
  -H "Content-Type: application/json" \
  -d '{"id":"o-5001","userId":"u-1001","total":149.99}'

接到一个订单:

curl http://localhost:3000/orders/o-5001

预期响应:

{
  "id": "o-5001",
  "userId": "u-1001",
  "total": 42.99
}

📋 MCP 工具

TypeSpec 定义生成以下 MCP 工具:

  • user_operations_get_user - 通过ID检索用户
  • user_operations_create_user - 创建一个新用户
  • order_operations_get_order - 通过ID检索订单
  • order_operations_create_order - 创建一个新订单

开放API规范

该项目还生成了一份完整的OpenAPI 3.0规范 tsp-output/openapi/openapi.yaml。

你可以用它来做什么:

  1. 查看文档
   # Serve with Swagger UI (install globally if needed)
   npx swagger-ui-express tsp-output/openapi/openapi.yaml
  1. 生成客户端SDK(软件开发工具包)
   # TypeScript client
   npx @openapitools/openapi-generator-cli generate \
     -i tsp-output/openapi/openapi.yaml \
     -g typescript-fetch \
     -o ./generated-client

   # Python client
   npx @openapitools/openapi-generator-cli generate \
     -i tsp-output/openapi/openapi.yaml \
     -g python \
     -o ./generated-client-python
  1. 导入到API工具

- Postman: 文件 → 导入 → tsp-output/openapi/openapi.yaml - 失眠(此处可能指软件或功能名,直译为“失眠”可能不贴切,但按原文结构翻译): 创建 → 导入 → 选择文件 - 布鲁诺:导入集合 → OpenAPI

  1. 模拟API
   # Use Prism to create a mock server
   npx @stoplight/prism-cli mock tsp-output/openapi/openapi.yaml

见 \DUAL_OUTPUT_GUIDE.md\ 翻译为中文是:“双输出指南.md” 如需更多关于使用OpenAPI规范的详细信息,请参阅。

🎯 预期行为

  • MCP服务器返回用户和订单的JSON对象
  • HTTP桥为MCP操作提供了一个REST API封装
  • 所有操作都通过TypeSpec生成的MCP层进行
  • 输入和输出验证是通过Zod模式来处理的
  • OpenAPI规范提供了完整的REST API文档

📝 数据模型

用户

{
  id: string;      // Unique user identifier
  name: string;    // User's full name
  email: string;   // User's email address
}

订单

{
  id: string;      // Unique order identifier
  userId: string;  // Reference to user ID
  total: number;   // Order total amount (float32)
}

🛠 故障排除

构建失败,存在类型错误:

  • 构建脚本会自动添加 @ts-nocheck 生成的文件
  • 如果问题仍然存在,请尝试: npm run build:tsp && npm run build:ts

端口3000已被占用:

  • 改变 PORT (在……中)恒定的 src/http-server.ts
  • 或者使用端口3000终止进程: lsof -ti:3000 | xargs kill

在Apple Silicon上的安装问题:

  • 使用 npm install --legacy-peer-deps
  • 确保你使用的是 Node.js 20 或更高版本

工具与能力

工具数量

4

资源数量

0

提示词数量

0

能力标签

TypeSpecTypeScript本地部署购物车服务MCP服务器RESTAPI双重输出

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 4 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Typespec MCP Openapi Dual Output Demo

MCP World · 本页

4stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Typespec MCP Openapi Dual Output Demo 怎么安装?

公开资料给出的安装命令是 npx swagger-ui-express tsp-output/openapi/openapi.yaml,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Typespec MCP Openapi Dual Output Demo 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

Typespec MCP Openapi Dual Output Demo 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Typespec MCP Openapi Dual Output Demo 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Typespec MCP Openapi Dual Output Demo 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP