dart_node_mcp
适用于 Node.js 上 Dart 的 MCP(模型上下文协议)服务器绑定。构建可供 Claude、GPT 和其他 AI 助手使用的 AI 工具服务器。
安装
dependencies:
dart_node_mcp: ^0.11.0-beta
nadz: ^0.9.0
通过 npm 安装:
npm install @modelcontextprotocol/sdk
快速开始
import 'package:dart_node_mcp/dart_node_mcp.dart';
import 'package:nadz/nadz.dart';
Future<void> main() async {
final serverResult = McpServer.create((name: 'my-server', version: '1.0.0'));
final server = switch (serverResult) {
Success(:final value) => value,
Error(:final error) => throw Exception(error),
};
server.registerTool(
'echo',
(description: 'Echo input back', inputSchema: null),
(args, meta) async => (
content: [(type: 'text', text: args['message'] as String)],
isError: false,
),
);
final transport = switch (createStdioServerTransport()) {
Success(:final value) => value,
Error(:final error) => throw Exception(error),
};
await server.connect(transport);
}
核心概念
创建服务器
使用名称和版本创建 MCP 服务器:
final serverResult = McpServer.create((name: 'my-server', version: '1.0.0'));
注册工具
工具是 AI 助手可以调用的函数。使用名称、描述和处理程序注册它们:
server.registerTool(
'greet',
(
description: 'Greet a user by name',
inputSchema: {
'type': 'object',
'properties': {
'name': {'type': 'string', 'description': 'Name to greet'},
},
'required': ['name'],
},
),
(args, meta) async {
final name = args['name'] as String;
return (
content: [(type: 'text', text: 'Hello, $name!')],
isError: false,
);
},
);
传输
使用标准输入输出传输连接到客户端(MCP 标准方式):
final transport = switch (createStdioServerTransport()) {
Success(:final value) => value,
Error(:final error) => throw Exception(error),
};
await server.connect(transport);
编译和运行
# 将 Dart 编译为 JavaScript
dart compile js -o server.js lib/main.dart
# 使用 Node.js 运行
node server.js
与 Claude Code 一起使用
将您的 MCP 服务器添加到 Claude Code:
claude mcp add --transport stdio my-server -- node /path/to/server.js
示例:Too Many Cooks
Too Many Cooks MCP 服务器是使用 dart_node_mcp 构建的。它为编辑同一代码库的 AI 助手提供多智能体协调功能。
源代码
源代码可在 GitHub 上获取。