Initial commit
This commit is contained in:
157
README.md
Normal file
157
README.md
Normal file
@@ -0,0 +1,157 @@
|
||||
# MCP Demo Server
|
||||
|
||||
一个使用 TypeScript 构建的 Model Context Protocol (MCP) 服务器示例,展示了如何创建和注册各种工具。
|
||||
|
||||
## 功能特性
|
||||
|
||||
此 MCP 服务器提供以下示例工具:
|
||||
|
||||
| 工具名称 | 描述 |
|
||||
|---------|------|
|
||||
| `echo` | 回显传入的消息 |
|
||||
| `calculator` | 执行基本数学运算(加、减、乘、除) |
|
||||
| `get_current_time` | 获取当前日期和时间(支持时区) |
|
||||
| `random_number` | 在指定范围内生成随机数 |
|
||||
| `string_utils` | 字符串处理工具(大小写转换、反转、计数等) |
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 安装依赖
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### 编译项目
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 运行服务器
|
||||
|
||||
```bash
|
||||
npm start
|
||||
```
|
||||
|
||||
## 在 VS Code 中使用
|
||||
|
||||
项目已配置好 `.vscode/mcp.json`,可以直接在 VS Code 中使用此 MCP 服务器:
|
||||
|
||||
1. 确保已编译项目 (`npm run build`)
|
||||
2. 在 VS Code 中打开此项目
|
||||
3. MCP 服务器会自动被识别并可用
|
||||
|
||||
## 配置示例
|
||||
|
||||
### Claude Desktop 配置
|
||||
|
||||
将以下内容添加到 Claude Desktop 的配置文件中:
|
||||
|
||||
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
||||
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"mcp-demo": {
|
||||
"command": "node",
|
||||
"args": ["D:\\Projects\\McpDemo\\build\\index.js"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 工具使用示例
|
||||
|
||||
### Echo 工具
|
||||
```
|
||||
输入: { "message": "Hello, MCP!" }
|
||||
输出: "Echo: Hello, MCP!"
|
||||
```
|
||||
|
||||
### Calculator 工具
|
||||
```
|
||||
输入: { "operation": "add", "a": 10, "b": 5 }
|
||||
输出: "10 add 5 = 15"
|
||||
```
|
||||
|
||||
### Get Current Time 工具
|
||||
```
|
||||
输入: { "timezone": "Asia/Shanghai" }
|
||||
输出: "Current time: 1/16/2026, 2:30:00 PM"
|
||||
```
|
||||
|
||||
### Random Number 工具
|
||||
```
|
||||
输入: { "min": 1, "max": 100 }
|
||||
输出: "Random number between 1 and 100: 42"
|
||||
```
|
||||
|
||||
### String Utils 工具
|
||||
```
|
||||
输入: { "operation": "uppercase", "text": "hello world" }
|
||||
输出: "HELLO WORLD"
|
||||
```
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
McpDemo/
|
||||
├── src/
|
||||
│ └── index.ts # MCP 服务器主文件
|
||||
├── build/ # 编译输出目录
|
||||
├── .vscode/
|
||||
│ └── mcp.json # VS Code MCP 配置
|
||||
├── package.json
|
||||
├── tsconfig.json
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## 开发指南
|
||||
|
||||
### 添加新工具
|
||||
|
||||
在 `src/index.ts` 中使用 `server.registerTool()` 添加新工具:
|
||||
|
||||
```typescript
|
||||
server.registerTool(
|
||||
"tool_name",
|
||||
{
|
||||
description: "工具描述",
|
||||
inputSchema: {
|
||||
param1: z.string().describe("参数1描述"),
|
||||
param2: z.number().describe("参数2描述"),
|
||||
},
|
||||
},
|
||||
async ({ param1, param2 }) => {
|
||||
// 工具逻辑
|
||||
return {
|
||||
content: [
|
||||
{
|
||||
type: "text",
|
||||
text: "结果",
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
);
|
||||
```
|
||||
|
||||
### 开发模式
|
||||
|
||||
使用 watch 模式进行开发:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## 相关资源
|
||||
|
||||
- [MCP 官方文档](https://modelcontextprotocol.io/)
|
||||
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
|
||||
- [MCP 服务器示例](https://github.com/modelcontextprotocol/servers)
|
||||
|
||||
## 许可证
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user