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

MCP Apps Kit

MCP Server

@mcp-apps-kit/create-app@latest

MCP AppsKit是一个基于TypeScript的AI应用开发工具包,支持文件化开发、自动化配置和双平台部署,适用于构建交互式AI应用。

工具数

2

提示词数

0

GitHub Stars

16

资源数

0
AI开发TypeScript云端部署

安装说明

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

作者 / 组织

AndurilCode

提供方

AndurilCode

最后核验

2026/5/17 20:19

运行时

Node.js

快速接入

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

命令预览

npx @mcp-apps-kit/create-app@latest my-app

详细介绍

Build interactive AI apps for MCP Apps and ChatGPT. The Modern TypeScript Way.

=18">

Quick Start • Documentation • Examples • Issues

______________________________________________________________________

功能一览

特性描述
基于文件的开发从文件系统中自动发现的工具、小部件和工作流
约定优于配置tools/get-weather.tsgetWeather 工具,自动
托管小部件React用户界面 ui/widgets/ 自动绑定到匹配工具
类型安全端到端从输入到UI道具的完整TypeScript推理
双平台单个代码库部署到MCP应用程序和ChatGPT
热模块重新加载Vite驱动的HMR,支持小部件的React快速刷新
零沸点板没有要维护的清单文件——codegen会处理它

______________________________________________________________________

快速开始

npx @mcp-apps-kit/create-app@latest my-app
cd my-app && npm run dev

或者手动设置基于文件的项目:

npm install @mcp-apps-kit/core @mcp-apps-kit/codegen zod

______________________________________________________________________

运作原理

MCP AppsKit使用 基于文件的约定 以消除样板。将文件放到正确的目录中,所有内容都会自动连接起来。

项目结构

my-app/
├── mcp.config.ts              # App configuration (single source of truth)
├── tools/
│   ├── get-weather.ts         # → getWeather tool
│   └── search-location.ts     # → searchLocation tool
├── workflows/
│   └── daily-briefing.ts      # → dailyBriefing workflow
├── ui/widgets/
│   ├── get-weather.tsx        # → Auto-bound to getWeather tool
│   └── daily-briefing.tsx     # → Auto-bound to dailyBriefing
├── middleware/
│   └── logging.ts             # Runs on every tool call
├── handlers/
│   └── app-lifecycle.ts       # Server events (start, shutdown)
└── __generated__/             # Auto-generated (gitignored)
    └── app-manifest.ts

配置

// mcp.config.ts
import { defineConfig } from "@mcp-apps-kit/codegen";

export default defineConfig({
  name: "weather-app",
  version: "1.0.0",
  directories: {
    tools: "tools",
    workflows: "workflows",
    uiWidgets: "ui/widgets",
    middleware: "middleware",
    handlers: "handlers",
  },
  config: {
    protocol: "mcp", // or "openai" for ChatGPT
    cors: { origin: true },
  },
});

定义工具

// tools/get-weather.ts
import { tool } from "@mcp-apps-kit/core";
import { z } from "zod";

export default tool
  .describe("Get current weather for a location")
  .input({
    location: z.string().describe("City name"),
  })
  .output(
    z.object({
      temperature: z.number(),
      conditions: z.string(),
      humidity: z.number(),
    })
  )
  .handle(async ({ location }) => {
    const data = await fetchWeather(location);
    return {
      temperature: data.temp,
      conditions: data.weather,
      humidity: data.humidity,
    };
  });

创建小部件

小工具在 ui/widgets/ 自动绑定到具有匹配文件名的工具:

// ui/widgets/get-weather.tsx
import { useToolResult, useHostContext } from "@mcp-apps-kit/ui-react";
import type { WidgetMetadata } from "@mcp-apps-kit/core";

export default function WeatherWidget() {
  const result = useToolResult();
  const { theme } = useHostContext();

  if (!result) return 
Loading...
;

  return (
    

      
{result.temperature}°C

      
{result.conditions}

    

  );
}

// Widget metadata (optional)
export const ui: WidgetMetadata = {
  name: "Weather Display",
  prefersBorder: true,
};

运行您的应用程序

npm run dev

编码员观察变化并重新生成清单。您的工具和小部件可以立即使用。Vite的HMR通过React Fast Refresh接收小部件更改,无需完全重新加载。

______________________________________________________________________

命名规范

文件会自动转换为camelCase标识符:

文件工具名称
get-current-weather.tsgetCurrentWeather
search_locations.tssearchLocations
DailyBriefing.tsdailyBriefing
_shared.ts_(忽略--下划线前缀)_

______________________________________________________________________

包裹

包装描述
@mcp-apps-kit/core带有工具/工作流构建器的服务器框架
@mcp-apps-kit/codegen基于文件的发现和清单生成
@mcp-apps-kit/ui客户端SDK(vanilla JS)
@mcp-apps-kit/ui-reactReact绑定和钩子
@mcp-apps-kit/ui-react-builder用于小部件捆绑和HMR的Vite插件
@mcp-apps-kit/create-appCLI脚手架工具
@mcp-apps-kit/testing测试工具和模拟

______________________________________________________________________

高级功能

中间件

添加跨领域关注点,如日志记录、身份验证或指标:

// middleware/logging.ts
import { defineMiddleware } from "@mcp-apps-kit/codegen";

export default defineMiddleware({
  before: async (ctx) => {
    ctx.state.set("startTime", Date.now());
    console.log(`Tool called: ${ctx.toolName}`);
  },
  after: async (ctx) => {
    const duration = Date.now() - ctx.state.get("startTime");
    console.log(`Completed in ${duration}ms`);
  },
});

事件处理器

对服务器生命周期事件做出反应:

// handlers/app-lifecycle.ts
import { defineHandler, Events } from "@mcp-apps-kit/codegen";

export default defineHandler({
  event: Events.APP_START,
  handler: async ({ port }) => {
    console.log(`Server started on port ${port}`);
  },
});

多版本API

从单个代码库支持多个API版本:

// mcp.config.ts
export default defineConfig({
  name: "my-api",
  versions: {
    v1: {
      version: "1.0.0",
      // Uses versions/v1/tools, versions/v1/workflows, etc.
    },
    v2: {
      version: "2.0.0",
      config: { debug: { level: "debug" } },
    },
  },
});

工作流引擎

组合多步骤操作:

// workflows/order-process.ts
import { workflow, toolStep } from "@mcp-apps-kit/core";
import { z } from "zod";

export default workflow("process_order")
  .input({ orderId: z.string() })
  .output({ success: z.boolean() })
  .step("validate", toolStep("validate_order"))
  .step("payment", toolStep("process_payment"), {
    retry: { maxAttempts: 3, backoff: "exponential" },
  })
  .parallel("notify", [toolStep("send_email"), toolStep("send_sms")])
  .build();

______________________________________________________________________

平台支持

功能MCP应用程序ChatGPT应用程序
工具调用
结构化输出
React小部件
OAuth 2.1
主题支持
持续状态
工具取消

______________________________________________________________________

例子

天气应用程序

包含工具、小部件、中间件和工作流的全功能示例:

git clone https://github.com/AndurilCode/mcp-apps-kit.git
cd mcp-apps-kit/examples/weather-app
pnpm install && pnpm dev

看板演示

具有工具调用、React小部件、插件、中间件和事件的生产就绪示例:

git clone https://github.com/AndurilCode/kanban-mcp-example.git
cd kanban-mcp-example
npm install && npm run dev

______________________________________________________________________

部署

Express(默认)

// Handled automatically by codegen
npm run start

标准模式

// mcp.config.ts
export default defineConfig({
  // ...
  config: {
    transport: "stdio",
  },
});

无服务器

import { createFileBasedApp } from "@mcp-apps-kit/codegen";

const app = await createFileBasedApp();

export default {
  async fetch(request: Request) {
    return app.handleRequest(request);
  },
};

______________________________________________________________________

兼容性

  • Node.js:>=18(运行时),>=20(开发/CLI)
  • 反应:18.x或19.x
  • 黄道带: ^4.0.0
  • 维特:5.x、6.x或7.x

______________________________________________________________________

api参考

全部文件 -TypeDoc生成的API引用

包装文件:

______________________________________________________________________

贡献

贡献.md 用于开发设置。欢迎问题和拉取请求。

______________________________________________________________________

许可证

麻省理工学院

目录标签

目录标签

AI开发TypeScript云端部署本地部署文件化开发React组件自动化配置

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@mcp-apps-kit/create-app@latest

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP