内容
# expect-mcp
[](https://github.com/facetlayer/expect-mcp/actions/workflows/ci.yml)
[](https://badge.fury.io/js/expect-mcp)
[](https://opensource.org/licenses/MIT)
用于 [Vitest](https://vitest.dev/) 和 [Jest](https://jestjs.io/) 的自定义测试匹配器,用于为模型上下文协议 (MCP) 工具编写自动化测试断言。
[文档](https://facetlayer.github.io/expect-mcp/)
## 功能
- **Custom Matchers**:添加 `expect()` 匹配器以断言 MCP 交互。
- **MCP Client**:实现了一个特殊的 MCP 客户端,具有用于测试和验证的额外功能。
## 最新支持
目前,该库支持:
- 测试 MCP 功能:**tools**、**resources**、**prompts**。
- 测试 **stdin** 协议服务器。
- 与 **Vitest** 和 **Jest** 集成。
未来支持的路线图:
- 计划中:测试 HTTP 服务和 Oauth。
- 计划中:测试以下功能:Discovery、Sampling、Roots、Elicitation。
## 可选:Agentic Setup
如果您正在使用像 Claude Code 或 Codex 这样的编码代理,您可以使用我们的内置提示
来指示代理如何使用该库。将此文本复制粘贴为提示,它应该会做得很好:
```
Run `npx -y expect-mcp@latest how-to-use` and follow the instructions to set up tests for this project.
```
## 安装
以正常方式安装库的步骤
```bash
npm install --save-dev expect-mcp
```
或者使用其他包管理器:
```bash
# pnpm
pnpm add -D expect-mcp
# yarn
yarn add -D expect-mcp
```
## 快速开始
导入和使用库:
```
import { mcpShell } from 'expect-mcp';
import 'expect-mcp/vitest-setup'; // Install 'expect' matchers
it("the test", async () => {
const app = mcpShell('path/to/mcp-server');
await expect(app).toHaveTool('toolName');
await expect(app).toHaveResource('config.json');
const toolResult = await app.callTool('toolName', {});
expect(toolResult); // ... check the result
await app.close();
});
```
### ESM / CommonJS 支持
默认情况下,该库是 ESM,但我们也包含一个 CJS 构建。
如果您的测试需要使用 CommonJS,则从 `expect-mcp/cjs` 导入。例子:
```javascript
const { mcpShell } = require('expect-mcp/cjs');
require('expect-mcp/cjs/vitest-setup');
```
## 文档
有关完整的 API 和更多示例,请参见[文档](https://facetlayer.github.io/expect-mcp/)站点。
## 要求
- Node.js >= 20
- Vitest ^1.5.0 或 Jest ^29.0.0
## 反馈
对于错误或功能请求,请使用 [GitHub Issues](https://github.com/facetlayer/expect-mcp/issues)!
## 许可证
MIT 许可证 - 有关详细信息,请参见 [LICENSE](LICENSE) 文件。
## 作者
[andyfischer](https://github.com/andyfischer)
## 相关项目
- [Model Context Protocol](https://modelcontextprotocol.io/) - 了解更多关于 MCP 的信息
- [Vitest](https://vitest.dev/) - 此库支持的测试框架
- [Jest](https://jestjs.io/) - 此库支持的测试框架
连接信息
猜你喜欢
everything-claude-code
完整的 Claude Code 配置集合 - agents、skills、hooks、commands、rules、MCPs。来自 Anthropic...
MarkItDown
将文件和办公文档转换为Markdown的Python工具。
awesome-claude-skills
一份精心整理的 Claude Skills、资源和工具列表,用于定制 Claude AI 工作流程
antigravity-awesome-skills
Claude Code/Antigravity/Cursor 的 130 多个 Agentic Skills 终极合集。 经过实战检验、高性能的 AI...
context-mode
MCP 是用于工具访问的协议。我们是上下文的虚拟化层。
claude-context-mode
claude-context-mode插件减少MCP上下文膨胀,节省高达99%的tokens。