内容
# MCP 模板节点
用于在 Node.js/TypeScript 中创建模型上下文协议(MCP)服务器的模板仓库。该模板使用 MCP 协议演示了一个简单的笔记管理系统。
## 什么是 MCP?
模型上下文协议(MCP)是一种标准化的应用程序为大型语言模型(LLM)提供上下文的方法。更多信息请访问 [模型上下文协议网站](https://modelcontextprotocol.github.io/)。
## 功能
- TypeScript 实现,严格的类型检查
- 简单的笔记管理系统,具备基本的 CRUD 操作
- 完整的 MCP 概念示例(工具、资源、提示)
- 笔记的内存存储
- 全面的错误处理和验证
- 使用 Vitest 的单元测试
- VS Code 调试配置
- 用于测试和构建的 GitHub Actions CI 工作流
## 先决条件
- Node.js 18 或更高版本
- npm 或 yarn
## 项目结构
```shell
mcp-template-node/
├── build/ # 编译后的 JavaScript 文件
├── src/
│ ├── __tests__/ # 集成测试和测试实用程序
│ ├── errors/ # 自定义错误类
│ ├── tools/ # MCP 工具实现
│ │ └── __tests__/ # 工具单元测试
│ ├── types/ # TypeScript 类型定义
│ │ └── __tests__/ # 类型测试
│ └── index.ts # 带有 MCP 示例的主要服务器入口点
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
├── eslint.config.mjs # ESLint 平面配置
└── README.md # 项目文档
```
## 快速入门
1. 克隆仓库:
```bash
git clone https://github.com/Rethunk-Tech/mcp-template-node.git
cd mcp-template-node
```
2. 安装依赖:
```bash
yarn install
```
3. 构建并运行服务器:
```bash
yarn build
yarn start
```
## 开发
- 以监视模式启动 TypeScript 编译器:`yarn dev`
- 检查代码:`yarn lint`
- 修复 linting 问题:`yarn lint:fix`
- 运行测试:`yarn test`
## 测试
该项目包含全面的测试,以验证 MCP 服务器及其工具的功能。
### 运行测试
运行所有测试:
```bash
yarn test
```
在监视模式下运行测试(当文件更改时重新运行测试):
```bash
yarn test:watch
```
运行测试并生成覆盖率报告:
```bash
yarn test:coverage
```
### 测试结构
- **单元测试**:位于 `__tests__` 目录中,靠近被测试的代码
- **集成测试**:位于 `src/__tests__/`
- **测试实用程序**:位于 `src/__tests__/test-utils.ts` 中
### 编写测试
项目中包含一个 MockMcpServer,用于在没有真实 MCP 依赖的情况下测试工具:
```typescript
import { MockMcpServer } from '../__tests__/test-utils.js';
describe('我的工具测试', () => {
let server: MockMcpServer;
beforeEach(() => {
server = new MockMcpServer();
// 注册工具
registerMyTools(server as any);
});
it('应该执行某些操作', async () => {
const result = await server.callTool('my_tool', { param: 'value' });
expect(result.content[0].text).toContain('预期文本');
});
});
```
## 使用 MCP Inspector 进行测试
对于独立测试,请使用 MCP Inspector 工具:
```bash
yarn inspector
```
这将打开一个交互式会话,您可以在其中测试您的 MCP 工具。
## 可用工具
### 创建笔记
使用标题和内容创建新的笔记。
### 列出笔记
列出所有可用的笔记及其 ID 和标题。
### 获取笔记
通过 ID 检索特定的笔记。
### 更新笔记
更新现有笔记的标题、内容或标签。
### 删除笔记
通过 ID 删除笔记。
## 扩展模板
要扩展此模板:
1. 在 `src/types/` 中添加新类型
2. 在 `src/tools/` 中实现新工具
3. 在 `src/index.ts` 中添加新资源
4. 根据需要创建新的提示模板
5. 为新功能添加测试
## 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 以了解如何为该项目做出贡献。
## 许可证
MIT
连接信息
猜你喜欢
everything-claude-code
完整的 Claude Code 配置集合 - agents、skills、hooks、commands、rules、MCPs。来自 Anthropic...
Firecrawl
Firecrawl MCP Server 实现了网页抓取、爬虫和内容提取功能。
MarkItDown MCP
MarkItDown-MCP是一个轻量级服务器,用于将URI转换为Markdown。
cc-switch
跨平台的Claude Code、Codex和Gemini CLI一体化助手。
Agent-Reach
赋予你的AI Agent观察整个互联网的眼睛。读取并搜索...
servers
# 模型上下文协议服务器