mcp-demo
by AmAzing129
README.md
# mcp-demo
一个最小可用的 **MCP (Model Context Protocol) Server** 示例,使用 TypeScript SDK 编写,演示 MCP 的三大核心原语:
| 原语 | 示例 | 说明 |
| --- | --- | --- |
| **Tools** | `calculate` / `get_current_time` / `add_note` | 由模型调用的动作 |
| **Resources** | `info://server` / `note://{name}` | 客户端可读取的数据(含动态资源模板) |
| **Prompts** | `code_review` / `summarize_notes` | 暴露给用户的提示词模板 |
通过 **stdio** 传输,可直接接入 Claude Desktop、Claude Code 或任何 MCP 客户端。
## 快速开始
```bash
npm install
npm run build
npm start # 启动编译后的 server
# 或开发模式
npm run dev
```
## 使用 MCP Inspector 调试
```bash
npm run inspect
```
会启动一个网页版调试器,可以交互式地调用 tools、读取 resources、预览 prompts。
## 接入 Claude Code
```bash
claude mcp add mcp-demo -- node /path/to/mcp-demo/dist/index.js
```
## 接入 Claude Desktop
在 `claude_desktop_config.json` 中添加:
```json
{
"mcpServers": {
"mcp-demo": {
"command": "node",
"args": ["/path/to/mcp-demo/dist/index.js"]
}
}
}
```
## 项目结构
```
src/
index.ts # 全部 server 逻辑:tools / resources / prompts 注册 + stdio 启动
```
## 示例交互
接入后可以试试:
- “帮我算一下 123 × 456” → 触发 `calculate` 工具
- “现在上海几点?” → 触发 `get_current_time` 工具
- “记一条笔记 todo:明天写周报” → 触发 `add_note`,然后可通过 `note://todo` 资源读取
## License
MIT
TDQS
A3.7/5.0
Scored across 3 tools
Disambiguation5/5
Each tool serves a completely different purpose: notes, arithmetic, and time. There is no overlap or ambiguity between them.
Naming Consistency4/5
Tools follow a verb_noun pattern (add_note, get_current_time) except calculate which is a single verb. This minor inconsistency prevents a perfect score.
Tool Count5/5
Three tools is ideal for a demo server—focused and easy to understand, not too sparse or overloaded.
Completeness4/5
The tool surface covers the core actions for the demo's purpose. Note management lacks update/delete operations, but reading is handled via resources.
Maintenance
ActivityInactive
ResponsivenessNo issues