MCP TypeScript最小服务器
TypeScript中的最小模型上下文协议(MCP)服务器实现,演示了基本的工具功能 hello 和 echo 命令。
特性
- Hello工具:返回一条简单的问候消息
- 回声工具:回复您提供的任何信息
- 使用TypeScript和官方MCP SDK构建
- 使用Zod模式进行输入验证
- 开发工具:Ultracite用于linting/格式化,Husky用于git钩子
安装
先决条件
- Node.js(版本18或更高)
- npm或纱线
设置
- 克隆存储库:
git clone
cd mcp-ts-minimal- 安装依赖项:
npm install- 构建项目:
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添加新工具
要向服务器添加新工具,请执行以下操作:
- 使用Zod定义输入模式:
const MyToolInputSchema = z.object({
param1: z.string(),
param2: z.number().optional(),
});- 在中添加工具处理程序
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' }],
};
}- 在中添加工具定义
ListToolsRequestSchema处理程序:
{
name: 'my-tool',
description: 'Description of what your tool does',
inputSchema: zodToJsonSchema(MyToolInputSchema),
}许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 跑
npm run quality确保代码质量 - 提交您的更改(赫斯基将运行预提交钩子)
- 推到您的分支
- 创建拉取请求
故障排除
常见问题
- 服务器未启动:确保安装了所有依赖项并构建了项目
- 工具未出现:检查MCP客户端配置是否指向正确的路径
- 权限错误:确保构建的JavaScript文件具有执行权限
调试模式
要启用调试日志记录,请设置环境变量:
DEBUG=mcp* npm start