N

Node-In-Layers

@Node-In-Layers/mcp-server
0 Stars 337 次浏览 Node-In-Layers 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP Server - 一个用于构建MCP服务器的Node In Layers包

该库增加了使用Node In Layers轻松创建MCP服务器的能力。

它有一个配套库叫做 @node-in-layers/mcp-client,用于创建MCP客户端。这两个库共享相同的定义模型和工具的功能。

新层

该库向系统中添加了一个新的mcp层。它应该放在express层之后。

使用方法

为了使用这个库,您需要在配置文件中进行一些修改,并从您的应用/域中创建并导出"mcp"层。

配置

将此应用/域添加到您的配置文件中。您应该在那些会向MCP服务器添加工具的应用之前这样做。

然后,使用以下方式配置mcp应用/域:

typescript
const mcpConfig = {
// (可选) 您的MCP服务器的名称。
name: 'mcp',
// (可选) 您的MCP服务器的版本。
version: '1.0.0',
// 来自 @l4t/mcp-ai/simple-server/types.js 的服务器配置
server: {
connection: {
type: 'http',
host: 'localhost',
port: 3000,
},
},
logging: {
// 可选
// 如果您想更改默认值,默认为 info。
requestLogLevel: 'info',
// 如果您想更改默认值,默认为 info。
responseLogLevel: 'info',
},
}

const config = {
['@node-in-layers/mcp-server']: mcpConfig,
}

创建MCP层

您可以通过从您的应用/域导出一个返回层的函数来创建MCP层。

typescript
// /src/yourDomain/mcp.ts
import { McpContext, McpNamespace } from '@node-in-layers/mcp-server';
import { Config } from '@node-in-layers/core';
import { YourFeaturesLayer } from './features.js';

const create = (context: McpContext<Config, YourFeaturesLayer>) => {
// 添加您的工具。
context.mcp[McpNamespace].addTool({
name: 'my-hello-world-tool',
description: 'My Tool',
execute: async (input: any) => {
return 'Hello, world!';
},
});

// 从您的特性创建一个工具
context.mcp[McpNamespace].addTool({
name: 'my-hello-world-tool',
description: 'My Tool',
inputSchema: {
type: 'object',
properties: {
name: {
type: 'string',
},
},
required: ['name'],
},
execute: (input: any) => {
// 您得到一个对象,将其传递回您的特性。自动处理异步操作。
return context.features.yourDomain.yourFeature(input);
},
});

return {};
}

export { create };

添加模型

您可以使用CRUDS函数包装您的模型,并通过mcp层将它们添加到MCP服务器。
注意:为了让这工作,您的层必须同时具有服务层和服务特性层。(除了您的模型之外)Node in layers会自动为您创建一个带有模型的cruds属性,您可以添加这些模型。

这里是一个逐个添加的例子。(通常不推荐,但可行)

typescript
// /src/yourDomain/mcp.ts
import { McpContext, McpNamespace } from '@node-in-layers/mcp-server';
import { Config } from '@node-in-layers/core';
import { YourFeaturesLayer } from './features.js';

const create = (context: McpContext<Config, YourFeaturesLayer>) => {
// 通过特性添加您的模型CRUD。
context.mcp[McpNamespace].addModelCruds(
context.features.yourFeature.cruds.Cars
);

return {};
}

这里是一种更高效的方法。(强烈推荐)

typescript
// /src/yourDomain/mcp.ts
import { McpContext, McpNamespace, mcpModels } from '@node-in-layers/mcp-server';
import { Config } from '@node-in-layers/core';
import { YourFeaturesLayer } from './features.js';

const create = (context: McpContext<Config, YourFeaturesLayer>) => {
// 这将自动从特性中添加所有模型。
mcpModels('yourDomain')(context);

return {};
}另一种组织添加模型的方法是从一个集中的mcp域开始。请确保这是在所有其他域加载之后的最后一个域。

typescript
// /src/mcp/mcp.ts
import { McpContext, McpNamespace, mcpModels } from @node-in-layers/mcp-server
import { Config } from @node-in-layers/core

const create = (context: McpContext) => {
// 一次性为整个系统添加所有模型。
mcpModels(yourDomain)(context)
mcpModels(yourDomain2)(context)
mcpModels(yourDomain3)(context)
mcpModels(yourDomain4)(context)

return {}
}

注意:原文档中的yourDomain, yourDomain2, yourDomain3, 和 yourDomain4应替换为你实际使用的域名称。

相关 MCP 服务