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

Proxy API MCP

MCP Server

definesys-mcp

Definesys MCP框架是一个灵活、易用的MCP(Model Context Protocol)服务框架,能够快速将业务接口转换为MCP工具,供LLM应用调用。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
API转换TypeScriptClaudeLLM工具Claude DesktopClaude

安装说明

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

作者 / 组织

mokexinxin

提供方

mokexinxin

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

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

命令预览

npx definesys-mcp

详细介绍

Definesys MCP Framework

一个灵活、易用的 MCP (Model Context Protocol) 服务框架

快速将业务接口转换为 MCP 工具,供 LLM 应用调用

核心特性

  • 简化工具扩展 - 声明式工具配置,无需关心 MCP 协议细节
  • 多传输模式 - 支持 Stdio、SSE 和 Streamable HTTP 三种传输模式
  • JSON 配置驱动 - 通过 JSON 配置文件零代码创建 API 工具
  • 环境变量支持 - 在 JSON 配置中使用环境变量,提升安全性和灵活性
  • 请求预处理器 - 支持在 API 请求发送前进行自定义处理
  • JSON 配置映射 - 通过简单的 key 加载预定义的配置文件集合
  • 类型安全 - 使用 TypeScript 开发,严格的类型检查
  • Schema 验证 - 基于 Zod 的输入输出验证

安装

使用 npx 直接运行 (推荐)

无需安装,直接通过 npx 运行:

npx definesys-mcp

全局安装

npm install -g definesys-mcp
definesys-mcp

本地项目安装

npm install definesys-mcp

快速开始

创建一个简单的 MCP 服务

import { McpServer, startHttpServer, ToolConfig } from 'definesys-mcp';

// 定义工具
const greetTool: ToolConfig = {
  name: 'greet',
  description: 'Greets a person by name',
  inputSchema: {
    type: 'object',
    properties: {
      name: {
        type: 'string',
        description: 'The name of the person to greet',
      },
    },
    required: ['name'],
  },
  handler: async (args) => {
    const name = args.name as string;
    return {
      content: [
        {
          type: 'text',
          text: `Hello, ${name}! Welcome to MCP!`,
        },
      ],
    };
  },
};

// 创建服务器
const server = new McpServer({
  name: 'my-mcp-server',
  version: '1.0.0',
});

// 注册工具
server.registerTool(greetTool);

// 启动 HTTP 服务器
await startHttpServer(server, { port: 3000 });

使用 Stdio 模式 (适用于 Claude Desktop)

import { McpServer, startStdioServer } from 'definesys-mcp';

const server = new McpServer({
  name: 'my-mcp-server',
  version: '1.0.0',
});

server.registerTool(greetTool);

await startStdioServer(server);

核心概念

工具配置

工具通过声明式配置进行定义:

interface ToolConfig {
  name: string;              // 工具唯一标识符
  title?: string;            // 工具的可读标题
  description: string;       // 工具功能描述
  inputSchema: object;       // 输入参数的 JSON Schema
  outputSchema?: object;     // 输出结果的 JSON Schema
  handler: ToolHandler;      // 工具处理函数
}

传输模式

框架支持三种传输模式:

模式场景特点
stdio本地进程,IDE 插件零网络配置,最高安全性
http远程服务,多客户端支持并发,会话管理
sse需要服务端推送向后兼容旧版协议

JSON 配置 API 工具

通过 JSON 配置文件自动生成 MCP 工具,无需编写代码即可调用 RESTful API。

基本配置结构

{
  "version": "1.0",
  "globals": {
    "baseUrl": "https://api.example.com",
    "timeout": 30000,
    "headers": {
      "User-Agent": "MyApp/1.0"
    }
  },
  "tools": [
    {
      "name": "get_user",
      "description": "Get user by ID",
      "method": "GET",
      "path": "/users/{userId}",
      "parameters": [
        {
          "name": "userId",
          "in": "path",
          "required": true,
          "type": "integer"
        }
      ]
    }
  ]
}

在配置中使用环境变量

支持在 JSON 配置中使用环境变量占位符:

{
  "baseUrl": "${API_BASE_URL}",
  "headers": {
    "Authorization": "Bearer ${API_TOKEN}"
  },
  "timeout": "${API_TIMEOUT:30000}"
}
  • 基本语法: ${ENV_VAR_NAME}
  • 带默认值: ${ENV_VAR_NAME:default_value}

JSON 配置映射

通过环境变量快速加载预定义的配置文件集合:

# .env 文件
MCP_JSON_CONFIG=kingdee_basic,kingdee_finance

可用配置 Keys:

Key说明
kingdee_basic基础管理
kingdee_finance财务会计
kingdee_scm供应链管理
kingdee_manufacture生产制造
kingdee_tax税务管理
kingdee_employee员工服务
kingdee_all全部模块

请求预处理器

在 API 请求发送前对请求数据进行自定义处理:

创建预处理器

import { type RequestPreprocessor, type RequestData } from 'definesys-mcp';

export class MyPreprocessor implements RequestPreprocessor {
  readonly name = 'my_preprocessor';

  preprocess(requestData: RequestData): RequestData {
    requestData.headers['X-Custom-Header'] = 'value';
    return requestData;
  }
}

注册并使用

import { PreprocessorRegistry } from 'definesys-mcp';

PreprocessorRegistry.register(new MyPreprocessor());

在配置中指定预处理器:

{
  "name": "my_api",
  "preprocessor": "my_preprocessor",
  "method": "GET",
  "path": "/data"
}

环境变量管理

使用集中式环境变量管理类:

import { env } from './config/env';

// 获取环境变量
const port = env.get('MCP_PORT');
const transport = env.get('MCP_TRANSPORT');

// 验证环境变量
env.validate();

// 判断运行环境
if (env.isProduction()) {
  // 生产环境逻辑
}

配置

环境变量

变量默认值说明
MCP_TRANSPORThttp传输模式 (stdio/sse/http)
MCP_PORT3000HTTP 端口
MCP_SESSION_TIMEOUT3600000会话超时时间(毫秒)
MCP_LOG_LEVELinfo日志级别 (debug/info/warn/error)
MCP_TOOLS_DIR./tools工具目录路径
MCP_API_TOOLS_CONFIG./api-tools.jsonAPI 工具配置文件路径
MCP_JSON_CONFIG-JSON 配置映射 keys (逗号分隔)
NODE_ENVdevelopment运行环境

Claude Desktop 配置

HTTP 模式

{
  "mcpServers": {
    "definesys-mcp": {
      "type": "streamableHttp",
      "url": "http://localhost:3000/mcp",
      "timeout": 60000
    }
  }
}

Stdio 模式

{
  "mcpServers": {
    "definesys-mcp": {
      "command": "node",
      "args": ["/path/to/definesys-mcp/dist/server.js"],
      "env": {
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

高级用法

添加中间件

import { Middleware } from 'definesys-mcp';

const loggingMiddleware: Middleware = async (context, next) => {
  console.log(`Tool called at ${new Date(context.timestamp)}`);
  const result = await next();
  console.log(`Tool completed`);
  return result;
};

server.getRouter().use(loggingMiddleware);

批量注册工具

server.registerTools([
  echoTool,
  calculatorTool,
]);

项目结构

definesys-mcp/
├── src/
│   ├── core/                 # 核心框架
│   │   ├── server.ts        # MCP Server 封装
│   │   ├── registry.ts      # 工具注册器
│   │   ├── router.ts        # 工具路由器
│   │   ├── session.ts       # 会话管理器
│   │   └── transports/      # 传输层实现
│   ├── tools/               # 工具层
│   │   ├── types.ts         # 类型定义
│   │   ├── validator.ts     # Schema 验证器
│   │   ├── api/             # API 工具模块
│   │   │   ├── builder.ts   # API 工具构建器
│   │   │   ├── executor.ts  # API 请求执行器
│   │   │   ├── loader.ts    # API 工具加载器
│   │   │   ├── preprocessor.ts # 预处理器注册表
│   │   │   └── json-config-*.ts # JSON 配置相关
│   │   └── examples/        # 示例工具
│   ├── config/              # 配置管理
│   │   └── env.ts           # 环境变量管理
│   ├── utils/               # 工具函数
│   │   ├── logger.ts        # 日志工具
│   │   ├── errors.ts        # 错误定义
│   │   └── env-replacer.ts  # 环境变量替换
│   └── index.ts             # 框架入口
├── examples/                # 使用示例
└── docs/                    # 文档

文档

常用命令

npm run build      # 编译 TypeScript
npm run dev        # 开发模式运行
npm start          # 运行编译后的服务
npm run lint       # 代码检查
npm test           # 运行测试

API 参考

McpServer

class McpServer {
  constructor(config: ServerConfig);
  registerTool(config: ToolConfig): void;
  registerTools(configs: ToolConfig[]): void;
  getRegistry(): ToolRegistry;
  getRouter(): ToolRouter;
  getSessionManager(): SessionManager;
  close(): Promise;
}

PreprocessorRegistry

class PreprocessorRegistry {
  static register(preprocessor: RequestPreprocessor): void;
  static registerMany(preprocessors: RequestPreprocessor[]): void;
  static get(name: string): RequestPreprocessor | undefined;
  static has(name: string): boolean;
  static unregister(name: string): boolean;
  static getAll(): string[];
  static clear(): void;
}

EnvManager

class EnvManager {
  get(key: K): EnvSchema[K];
  getAll(): EnvSchema;
  has(key: keyof EnvSchema): boolean;
  validate(): void;
  isProduction(): boolean;
  isDevelopment(): boolean;
  isTest(): boolean;
  print(): void;
}

许可证

MIT License

致谢

目录标签

目录标签

API转换TypeScriptClaudeLLM工具MCP服务本地部署JSON配置

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

token

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

definesys-mcp

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotoken部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP