Minimum Viable MCP Project

Minimum Viable MCP Project

A starter template for building Model Context Protocol (MCP) servers using Node.js and TypeScript. It provides sample implementations for tools, resources, and prompts, designed to help developers test and integrate MCP capabilities into clients like Codex.

Category
访问服务器

README

最小可用 MCP 项目(Node.js + TypeScript)

这个项目是一个可直接跑通的 MCP 学习样例,包含完整链路:

  1. 写 MCP Server(Tool / Resource / Prompt)
  2. 本地用 MCP Client 调用并验证
  3. 接入 Codex,让 Codex 直接调用你的 MCP 能力

1. 环境要求

  • Node.js >= 22(用 --experimental-strip-types 直接运行 TS)
  • npm >= 9

2. 项目结构

.
├── src
│   ├── server.ts         # MCP server (stdio)
│   └── smoke-client.ts   # 本地全流程验证客户端
├── tsconfig.json
├── package.json
└── README.md

3. 安装依赖

npm install

4. 运行方式

4.1 开发模式(直接跑 TS)

npm run dev

4.2 启动服务

npm run start

4.3 全流程 Smoke Test(推荐先跑)

npm run smoke

这个命令会:

  1. 在同一个进程内创建 MCP server/client(InMemoryTransport
  2. src/smoke-client.ts 依次调用:
    • listTools
    • callTool(sum_numbers)
    • readResource(note://quickstart)
    • getPrompt(review_snippet)

5. 这个 Server 暴露了什么

Tools

  • ping: 健康检查
  • sum_numbers: 两数求和,返回文本 + 结构化结果

Resource

  • note://quickstart: 学习提示文本

Prompt

  • review_snippet(language, snippet): 生成可复用的 code review prompt

6. 接入 Codex(重点)

推荐使用 Codex CLI 命令直接添加 MCP server。

6.1 添加到 Codex

codex mcp add learning-mcp -- node --experimental-strip-types /home/fezhang/mcp/src/server.ts

6.2 检查是否生效

codex mcp list
codex mcp get learning-mcp

6.3 在 Codex 会话里验证

你可以直接对 Codex 说:

  • 列出 learning-mcp 的工具
  • 调用 sum_numbers,a=12,b=30
  • 读取资源 note://quickstart

6.4 删除配置(可选)

codex mcp remove learning-mcp

7. 常见问题

Q1: 为什么 server 日志写到 stderr,而不是 stdout?

MCP stdio 协议使用 stdin/stdout 传输 JSON-RPC。
如果把日志写到 stdout,会污染协议消息,导致调用失败。

Q2: 改了 src/server.ts 之后,Codex 什么时候生效?

这个样例是直接执行 src/server.ts
下次启动新的 MCP server 进程就会生效,不需要构建。

8. 下一步建议

  1. sum_numbers 增加输入边界校验(如最大值)。
  2. 增加一个会访问真实 API 的 Tool(例如天气查询)。
  3. 再加一个 ResourceTemplate 学习动态资源模式。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选