MCP TypeScript 最小服务器

一个基于TypeScript的最小MCP服务器实现,提供基本的工具功能,如hello和echo命令。

  • by atman-33
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 atman-33/mcp-ts-minimal

使用说明

MCP TypeScript最小服务器

TypeScript中的最小模型上下文协议(MCP)服务器实现,演示了基本的工具功能 hello 和 echo 命令。

特性

  • Hello工具:返回一条简单的问候消息
  • 回声工具:回复您提供的任何信息
  • 使用TypeScript和官方MCP SDK构建
  • 使用Zod模式进行输入验证
  • 开发工具:Ultracite用于linting/格式化,Husky用于git钩子

安装

先决条件

  • Node.js(版本18或更高)
  • npm或纱线

设置

  1. 克隆存储库:
git clone <repository-url>
cd mcp-ts-minimal
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

用法

运行服务器

发展模式

npm run dev

生产模式

npm start

可用工具

1.Hello工具

  • 名字: hello
  • 描述:回复问候信息
  • 参数:无
  • 示例响应:“来自MCP服务器的问候”

2.回声工具

  • 名字: echo
  • 描述:呼应所提供的信息
  • 参数:
    • message (string,必填):要回显的消息
  • 示例响应:“Echo:您的信息在这里”

MCP客户端配置

要将此服务器与MCP客户端一起使用,请将以下配置添加到MCP设置中:

与npx一起使用(推荐)

如果你将此包发布到npm,你可以将其与npx一起使用:

{
  "mcpServers": {
    "mcp-ts-minimal": {
      "command": "npx",
      "args": ["mcp-ts-minimal@latest"],
      "disabled": false
    }
  }
}

发展

可用脚本

  • npm run build -构建TypeScript项目
  • npm run dev -使用ts节点以开发模式运行
  • npm start -运行构建的JavaScript版本
  • npm run check -使用Ultracite检查代码
  • npm run fix -检查并修复Ultracite的问题
  • npm run typecheck -运行TypeScript类型检查
  • npm run quality -运行类型检查和检查

项目结构

mcp-ts-minimal/
├── src/
│   └── index.ts          # Main server implementation
├── dist/                 # Built JavaScript files
├── .husky/              # Git hooks
├── biome.json           # Biome configuration
├── tsconfig.json        # TypeScript configuration
├── package.json         # Project dependencies and scripts
└── README.md           # This file

添加新工具

要向服务器添加新工具,请执行以下操作:

  1. 使用Zod定义输入模式:
const MyToolInputSchema = z.object({
  param1: z.string(),
  param2: z.number().optional(),
});
  1. 在中添加工具处理程序 CallToolRequestSchema 处理程序:
case 'my-tool': {
  const parsed = MyToolInputSchema.safeParse(args);
  if (!parsed.success) {
    return {
      content: [{ type: 'text', text: `Invalid arguments: ${parsed.error}` }],
      isError: true,
    };
  }
  
  // Your tool logic here
  return {
    content: [{ type: 'text', text: 'Tool response' }],
  };
}
  1. 在中添加工具定义 ListToolsRequestSchema 处理程序:
{
  name: 'my-tool',
  description: 'Description of what your tool does',
  inputSchema: zodToJsonSchema(MyToolInputSchema),
}

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 跑 npm run quality 确保代码质量
  5. 提交您的更改(赫斯基将运行预提交钩子)
  6. 推到您的分支
  7. 创建拉取请求

故障排除

常见问题

  1. 服务器未启动:确保安装了所有依赖项并构建了项目
  2. 工具未出现:检查MCP客户端配置是否指向正确的路径
  3. 权限错误:确保构建的JavaScript文件具有执行权限

调试模式

要启用调试日志记录,请设置环境变量:

DEBUG=mcp* npm start