内容
<div align="center">
# mcpfy
**用于构建和消费MCP服务器的最小化SDK。**
工具。提示。资源。部件。标准输入输出或HTTP,随您选择。
[](./LICENSE)
[](./typescript)
[](https://www.npmjs.com/package/mcpfy-sdk)
</div>
---
## 为什么选择mcpfy
[模型上下文协议](https://modelcontextprotocol.io) 涉及很多方面 — 工具、提示、资源、采样、诱导、根、补全、OAuth、应用/部件等。通常,您并不需要其中的大部分功能。您需要一个服务器,暴露几个**工具**,也许是一个**提示**或一个**资源**,并且您希望在不到一分钟的时间内就能使用它。
mcpfy是官方[`@modelcontextprotocol/sdk`](https://github.com/modelcontextprotocol/typescript-sdk)的一个薄而诚实的封装,它带您到达目的地 — 一个小而可读的代码库,您可以从头到尾地理解它,具有:
- **工具、提示、资源和部件** — MCP的核心原语,具有干净的声明式API,以及跨所有三种现实世界约定(MCP-UI、MCP应用、应用SDK)的交互式UI部件,只需一个`server.widget()`调用
- **两种传输方式** — 标准输入输出(大多数MCP主机期望的)和HTTP,只需一个选项即可切换
- **零仪式** — `npx create-mcpfy-app@latest`让您在编写一行代码之前获得一个正在运行的服务器
## 快速入门
搭建一个可用的服务器 — 无需编写样板代码:
```bash
npx create-mcpfy-app@latest my-server
cd my-server
npm run dev
```
这是一个真正的MCP服务器,已经在运行标准输入输出,带有1个工具、1个提示和1个资源。或者,您可以手动构建一个:
```ts
import { MCPServer, text } from "mcpfy-sdk/server";
const server = new MCPServer({ name: "my-server", version: "1.0.0" });
server.tool(
{ name: "hello", description: "Say hello" },
async () => text("Hello, World!")
);
await server.listen(); // 默认情况下为标准输入输出 — 传递 { transport: "http", port: 3000 } 以使用HTTP
```
```ts
import { MCPClient } from "mcpfy-sdk/client";
const client = new MCPClient({
mcpServers: { myServer: { command: "node", args: ["server.js"] } },
});
const session = await client.createSession("myServer");
console.log(await session.callTool("hello"));
```
## 仓库结构
```
mcpfy/
└── typescript/ → TypeScript SDK (npm: mcpfy-sdk, create-mcpfy-app)
├── packages/
│ ├── mcpfy/ → SDK: mcpfy-sdk/server, mcpfy-sdk/client, mcpfy-sdk/widget-bridge
│ └── create-mcpfy-app/ → npx create-mcpfy-app@latest 脚手架
└── examples/
├── hello-world/ → 最小化可运行示例,两种传输方式
└── widget-hello-world/ → 跨三种UI资源协议的部件
```
参见 [`typescript/README.md`](./typescript/README.md) 以获取TypeScript特定的设置、开发命令和测试。
## 软件包
| 软件包 | 描述 |
|---|---|
| [`mcpfy-sdk`](./typescript/packages/mcpfy) | SDK — `MCPServer`/`MCPClient`,工具/提示/资源/部件注册,标准输入输出 + HTTP 传输 |
| [`create-mcpfy-app`](./typescript/packages/create-mcpfy-app) | `npx create-mcpfy-app@latest` — 一条命令即可搭建一个可用的服务器 |
## 文档
- [TypeScript SDK指南](./typescript/README.md)
- [`mcpfy-sdk` 软件包README](./typescript/packages/mcpfy/README.md) — 完整的API参考
- [`examples/hello-world`](./typescript/examples/hello-world) — 一个完整的、可运行的示例,两种传输方式
- [`examples/widget-hello-world`](./typescript/examples/widget-hello-world) — 跨MCP-UI、MCP应用和应用SDK的部件
## 贡献
欢迎贡献 — 请参阅 [CONTRIBUTING.md](./CONTRIBUTING.md)。
## 许可证
[MIT](./LICENSE)