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

MCP Weave

MCP Server

MCP-Weave是一款将代码转换为MCP服务器的工具,支持通过简单注解将类转化为MCP服务器,适用于代码优先或规范优先的开发流程。

工具数

1

提示词数

0

GitHub Stars

3

资源数

0
TypeScript云端部署Docker

安装说明

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

作者 / 组织

mcp-weave

提供方

mcp-weave

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

MCP-Weave

Weave your code into MCP servers - seamlessly

Like Swagger for Model Context Protocol

Features • Quick Start • Packages • Documentation • Examples • Contributing

______________________________________________________________________

✨ 特性

  • 🎯 简单的装饰品 -使用直观的注释将任何类转换为MCP服务器
  • 🔄 双向流动 -代码优先或规范优先的开发方法
  • 📝 YAML规范 -以可读的方式定义您的MCP服务器 mcp-spec.yaml 文件
  • 🚀 多个框架 -NestJS和Express支持
  • 🔌 多个传输 -stdio、SSE和WebSocket
  • 认证 -API对请求跟踪和作用域的关键支持
  • �🛠️ 强大的CLI -通过热重新加载生成、提取和管理您的MCP服务器
  • 🧪 测试工具 -模拟服务器和断言,便于测试
  • 🎨 Web UI仪表板 -工具、资源和提示的交互式测试
  • 📦 TypeScript优先 -全型安全和卓越的DX

🚀 快速开始

安装

# Using pnpm (recommended)
pnpm add @mcp-weave/nestjs

# Using npm
npm install @mcp-weave/nestjs

# Using yarn
yarn add @mcp-weave/nestjs

基本用法

使用简单的装饰器将现有代码转换为MCP服务器:

import {
  McpServer,
  McpTool,
  McpResource,
  McpPrompt,
  McpInput,
  McpParam,
  McpPromptArg,
} from '@mcp-weave/nestjs';

@McpServer({
  name: 'user-service',
  version: '1.0.0',
  description: 'User management service',
})
export class UserController {
  @McpTool({
    name: 'create_user',
    description: 'Creates a new user in the system',
  })
  async createUser(@McpInput() input: CreateUserDto) {
    const user = await this.userService.create(input);
    return { success: true, userId: user.id };
  }

  @McpResource({
    uri: 'user://{userId}',
    name: 'User Profile',
    mimeType: 'application/json',
  })
  async getUserProfile(@McpParam('userId') userId: string) {
    const user = await this.userService.findById(userId);
    return {
      contents: [
        {
          uri: `user://${userId}`,
          mimeType: 'application/json',
          text: JSON.stringify(user),
        },
      ],
    };
  }

  @McpPrompt({
    name: 'welcome_email',
    description: 'Generate welcome email for new user',
  })
  async generateWelcomeEmail(
    @McpPromptArg('userName') userName: string,
    @McpPromptArg('userEmail') userEmail: string
  ) {
    return {
      messages: [
        {
          role: 'user',
          content: `Generate a welcome email for ${userName} (${userEmail})`,
        },
      ],
    };
  }
}

📦 包裹

描述版本
@mcp-weave/core核心功能-解析器、验证器、生成器](https://www.npmjs.com/package/@mcp-weave/core)
@mcp-weave/cli命令行界面](https://www.npmjs.com/package/@mcp-weave/cli)
@mcp-weave/nestjsNestJS与装饰器的集成](https://www.npmjs.com/package/@mcp-weave/nestjs)
@mcp-weave/expressExpress中间件和服务器](https://www.npmjs.com/package/@mcp-weave/express)
@mcp-weave/testing测试实用程序和模拟](https://www.npmjs.com/package/@mcp-weave/testing)
@mcp-weave/webui用于测试的Web UI仪表板](https://www.npmjs.com/package/@mcp-weave/webui)

🔄 两种开发流程

代码优先

从装饰代码开始,提取规范:

Annotated Code → Scanner → Metadata → Generator → MCP Server
# Extract spec from your code
mcp-weave extract --source ./src --output mcp-spec.yaml

规格优先

从YAML规范开始,生成样板:

mcp-spec.yaml → Parser → Validator → Generator → Boilerplate Code
# Generate server from spec
mcp-weave generate --spec mcp-spec.yaml --output ./server

📝 规范格式

在中定义您的MCP服务器 mcp-spec.yaml:

version: '1.0'

server:
  name: 'user-management'
  version: '1.0.0'
  description: 'User management service'

tools:
  - name: create_user
    description: 'Creates a new user'
    inputSchema:
      type: object
      properties:
        name: { type: string }
        email: { type: string, format: email }
      required: [name, email]
    handler: '/handlers/user/create'

resources:
  - uri: 'user://{userId}'
    name: 'User Profile'
    mimeType: 'application/json'
    handler: '/handlers/user/get'

prompts:
  - name: 'welcome_email'
    description: 'Generate welcome email'
    arguments:
      - name: userName
        required: true
    handler: '/handlers/prompts/welcome'

transport:
  - type: stdio
  - type: sse
    endpoint: '/mcp/sse'

🛠️ CLI命令

# Initialize a new project
mcp-weave init --name my-service --framework nestjs

# Generate server from spec
mcp-weave generate --spec mcp-spec.yaml --output ./server

# Extract spec from annotated code
mcp-weave extract --source ./src --output mcp-spec.yaml

# Start MCP server
mcp-weave start --transport stdio

# Start with SSE transport
mcp-weave start --transport sse --port 3000

# Start with hot reload
mcp-weave start --watch

# Export spec in different formats
mcp-weave export --format yaml --output spec.yaml

🎨 装饰师API

类装饰器

装饰者描述
@McpServer(options)将类标记为MCP服务器

方法装饰

装饰者描述
@McpTool(options)将方法标记为MCP工具
@McpResource(options)将方法标记为MCP资源
@McpPrompt(options)将方法标记为MCP提示

参数装饰器

装饰者描述
@McpInput()注入工具输入
@McpParam(name)注入URI参数
@McpPromptArg(name)注入提示参数

📚 文档

🧪 测试

import { McpTestServer, mockTransport } from '@mcp-weave/testing';

describe('UserController', () => {
  let server: McpTestServer;

  beforeEach(() => {
    server = new McpTestServer(UserController);
  });

  it('should create a user', async () => {
    const result = await server.callTool('create_user', {
      name: 'John Doe',
      email: 'john@example.com',
    });

    expect(result.success).toBe(true);
    expect(result.userId).toBeDefined();
  });
});

🔐 认证

MCP-Weave支持API密钥验证,以确保MCP服务器端点的安全。

基本设置

import { McpRuntimeServer, generateApiKey } from '@mcp-weave/nestjs';

// Generate a secure API key with prefix
const apiKey = generateApiKey('myapp'); // myapp_xxxxx...

const server = new McpRuntimeServer(MyServer, {
  transport: 'sse',
  port: 3000,
  auth: {
    enabled: true,
    apiKeys: [{ key: apiKey, name: 'Production', scopes: ['read', 'write'] }],
  },
});

身份验证方法

API密钥可以通过以下方式提供:

  • 头球: x-api-key: your-api-key
  • 持有者令牌: Authorization: Bearer your-api-key
  • 查询参数: ?api_key=your-api-key

高级配置

const server = new McpRuntimeServer(MyServer, {
  auth: {
    enabled: true,
    apiKeys: [
      {
        key: 'prod_key_123',
        name: 'Production',
        scopes: ['read', 'write'],
        expiresAt: new Date('2025-12-31'),
        metadata: { tier: 'premium' },
      },
    ],
    // Optional callbacks
    onAuthSuccess: (req, result) => {
      console.log(`Auth success: ${result.keyName} (${result.requestId})`);
    },
    onAuthFailure: (req, reason) => {
      console.log(`Auth failed: ${reason}`);
    },
    // Custom auth logic
    customAuth: async req => {
      // Return AuthResult or null to fall back to default
      return null;
    },
  },
});

Express中间件

import { createMcpExpressMiddleware } from '@mcp-weave/express';

app.use(
  '/mcp',
  createMcpExpressMiddleware(server, {
    auth: {
      enabled: true,
      apiKeys: [{ key: 'my-api-key', name: 'Default' }],
    },
  })
);

📁 例子

示例说明
计算器带算术工具的基本计算器
用户服务带有工具、资源和提示的完整CRUD服务
# Run the calculator example
cd examples/calculator
pnpm install && pnpm build && pnpm start

# Run the user-service example
cd examples/user-service
pnpm install && pnpm build && pnpm start

🗺️ 路线图

v0.1.0-MVP✅

  • \[x\] 核心规范解析器和验证器
  • \[x\] NestJS装饰器(@McpServer, @McpTool, @McpResource, @McpPrompt)
  • \[x\] CLI与 generate, init, start, extract 命令
  • \[x\] 标准运输
  • \[x\] 带有GitHub操作的CI/CD
  • \[x\] 示例(计算器、用户服务)
  • \[x\] 测试实用程序包

v0.2.0版本✅

  • \[x\] 快速支持(@mcp-weave/express)
  • \[x\] SSE运输
  • \[x\] 增强的测试工具 McpTestClient
  • \[x\] 热重载(mcp-weave start --watch)

v0.3.0✅

  • \[x\] WebSocket传输
  • \[x\] 用于测试的Web UI仪表板(@mcp-weave/webui)
  • \[x\] 235个单元测试通过

v0.4.0(当前)✅

  • \[x\] 带有请求跟踪的API密钥身份验证
  • \[x\] Express中间件和WebUI的身份验证支持
  • \[x\] 265+单元测试通过

v0.5.0+

  • \[\]Python/FastAPI支持
  • \[\]Go/Gin支持
  • \[\]插件系统

🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 了解详情。

# Clone the repo
git clone https://github.com/mcp-weave/mcp-weave.git
cd mcp-weave

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run tests
pnpm test

# Lint and format
pnpm lint
pnpm format

📄 许可证

麻省理工学院 ©2026 MCP Weave

🔗 链接

______________________________________________________________________

Made with ❤️ by the MCP-Weave community

目录标签

目录标签

TypeScript云端部署DockerMCP服务器本地部署代码转换注解开发NestJS集成Express集成

接入字段

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

未说明

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

api-key

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明api-key部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP