Skip to main content
Glama
AmAzing129
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