# @agntn/tools 中文文档

规范地址：https://npmcn.com/package/%40agntn/tools/

版本：0\.3\.0
npm 元数据更新时间：2026-11-03T14:02:07.845Z
中文译文更新时间：2026-11-06T05:57:57.702Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40agntn/tools
原文对照：https://npmcn.com/package/%40agntn/tools/?lang=original
项目主页：https://github.com/agntn/tools#readme
源码仓库：https://github.com/agntn/tools

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：780 kB，29 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=26
- 运行依赖：0 个
- peer 依赖：ai \>=7\.0\.0 \<8，zod \>=4\.1\.13 \<5，h3-mcp \>=0\.2\.0 \<0\.3，@oh-my-pi/pi-coding-agent \>=18\.0\.0 \<19，@modelcontextprotocol/server \>=2\.2\.0 \<3，@earendil-works/pi-coding-agent \>=0\.84\.2 \<2
- 首次发布：2026-09-30T15:44:19.146Z
- 最新版本发布：2026-11-03T14:02:07.564Z
- 近 30 天下载量：4612（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 9 个）

## 中文简介

MCP、Pi、OMP和AI SDK的一个工具定义

## 安装

```sh
npm install @agntn/tools
```

也可以使用：`pnpm add @agntn/tools`、`yarn add @agntn/tools`、`bun add @agntn/tools`

## README

# @agntn/ 工具

[![npm version](https://npmx.dev/api/registry/badge/version/@agntn/tools)](https://npmx.dev/package/@agntn/tools) [![npm downloads](https://npmx.dev/api/registry/badge/downloads/@agntn/tools)](https://npmx.dev/package/@agntn/tools) [![license](https://npmx.dev/api/registry/badge/license/@agntn/tools)](https://npmx.dev/package/@agntn/tools) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/agntn/tools)

QQ四个主机,一个定义. 你写工具一次。 MCP, Pi, OMP 和AI SDK各自获得他们喜欢的方式.

想看看吗? [工具.agntn.dev](https://tools.agntn.dev/) 有医生和一个游乐场。 一个电话,四个主机,都住在你的帐上.

## 为什么?

MCP想要一个 `inputSchema`皮想要一个 `parameters` 和迅速的片段。 OMP 将您的 TypeBox 转换为自己的 。 AI SDK想要另一个计划。 所以每个工具都生活在四个文件里,四个文件漂移. 现在它生活在一个.

## \* 特性

-   📝 **一个定义.** 名称、计划、效果和 `execute`. 这就是整个工具.
-   🔌 **4个主机适配器.** `createMcpServer`, (中文(简体) ), `registerPiTools`, (中文(简体) ), `registerOmpTools` 财务报告和审定财务报表 `toAiTool`\- 每人打一个电话.
-   🛡️ **每个主机的验证.** 密码运行前 核心检查每个电话 即使主机跳过自己的支票.
-   🗣️ **模型可以使用错误 .** 拼错的密钥名称本身和您要的密钥 。 一个enum列出了它的值.
-   🧵 **每错一行.** 新的线条,逃生密码 和重复文本中的花招 被平分。 没有伪造的线条.
-   🪤 **OMP TypeBox 陷阱已拆除.** TypeBox被捆绑了,所以OMP已经没有什么可以背地里重写了.
-   🧪 **斯克马在定义时间规则.** 打开对象或文字结合失败 `defineTool`三周后在模特儿的手上.
-   ⏳ **进展有所进展.** `progress?.("still at it")` 变成 `onUpdate` 在皮和OMP, `notifications/progress` 在MCP和一线直播 在你的终端。 一个缓慢的呼叫停止看起来像一个死.
-   🙋 **问人去取,不是模特去取.** `ask?.({ message, schema })` 成为 MCP 引出,或在 Pi 和 OMP 中每个字段一个对话框。 三个谜题匹配吗? 让他们选择而不是让模特猜.
-   ⌨️ **一个CLI在旁边.** `runCli` 将同样的工具变成命令,不需要 CLI 库 。 旗帜出自"通鉴". 提示会增加位置,短旗和斯丁.
-   🌐 **到处跑.** 没有 `node:*` 输入核心或主机适配器。 Docs网站在浏览器标签中运行它们. CLI是一个节点部分,就像一个CLI一样.

## QQ 安装

```bash
pnpm add @agntn/tools
```

节点.js 26或更新. 然后增加你们所崇拜的主宰。 每一个都是可选的同伴.

## 第一次通话

```ts
import { defineTool, Type } from "@agntn/tools";
import { createMcpServer } from "@agntn/tools/mcp";
import { Client, InMemoryTransport } from "@modelcontextprotocol/client";

const slugTool = defineTool({
  name: "text_slug",
  title: "Text Slug",
  description: "Turn a title into a lowercase URL slug.",
  effect: "read",
  input: Type.Object({ text: Type.String({ minLength: 1 }) }, { additionalProperties: false }),
  execute: ({ text }) => {
    const slug =
      text
        .toLowerCase()
        .match(/[a-z0-9]+/g)
        ?.join("-") ?? "";
    return { content: [{ type: "text", text: slug }], details: { slug } };
  },
});

const server = createMcpServer({ name: "slugs", version: "1.0.0" }, [slugTool]);
const client = new Client({ name: "demo", version: "1.0.0" });
const [clientSide, serverSide] = InMemoryTransport.createLinkedPair();
await Promise.all([server.connect(serverSide), client.connect(clientSide)]);

console.log(await client.callTool({ name: "text_slug", arguments: { text: "Hello, World" } }));
console.log(await client.callTool({ name: "text_slug", arguments: { txt: "Hello, World" } }));
```

```text
{ content: [ { type: 'text', text: 'hello-world' } ] }
{
  content: [
    {
      type: 'text',
      text: 'Invalid arguments: unknown property "txt"; takes text\n' +
        'Invalid arguments at /: must have required properties text'
    }
  ],
  isError: true
}
```

字型没有达到 `execute`模型被告知它做错了什么 和工具需要什么。 Pi,OMP和AI SDK将其同为两行,只能通过自己的出错通道. [验证和错误](https://tools.agntn.dev/guide/validation) 拿着桌子.

## ++ 主机

| 东道主 | 适配器 | 端点 |
| --- | --- | --- |
| MCP 磁共振 | `createMcpServer` 从 `@agntn/tools/mcp` | `@modelcontextprotocol/server` |
| H3级 | `toH3Tools` 从 `@agntn/tools/h3` | `h3-mcp` |
| 杜克斯语Name | `toToolkitTools` 从 `@agntn/tools/toolkit` | `zod`,旁边 `@nuxtjs/mcp-toolkit` |
| Pi | `registerPiTools` 从 `@agntn/tools/pi` | `@earendil-works/pi-coding-agent` |
| 办公室管理计划 | `registerOmpTools` 从 `@agntn/tools/omp` | `@oh-my-pi/pi-coding-agent` |
| AI SDK 软件 | `toAiTool` 从 `@agntn/tools/ai` | `ai` |
| 国 际 | `runCli` 从 `@agntn/tools/cli` | 无 |

只安装您所携带的 一个MCP服务器不需要AI SDK,没有人让它假装. 每个主机都有自己的网页 和Gotchas: [工具.agntn.dev/主机](https://tools.agntn.dev/hosts)。 。 。 .

## ~ 这不起作用 ~

它不运行你的服务器或选择运输。 Stdio, HTTP, 在记忆中,你的电话。 除非你问 `runCli` 联合国 `mcp` 命令。 那一个是stdio。 它不是一个计划图书馆。 TypeBox做这个部分,这个只是确保每个主机都看到同一个部分.

## 发展

```bash
pnpm install
pnpm lint         # vp lint and vp fmt --check
pnpm typecheck    # tsc over the source and the tests
pnpm test         # vp test run
pnpm build        # obuild, TypeBox bundled into dist
```

## 谢谢

在很多帮助下撰写的 [Claude 打开源代码](https://claude.com/contact-sales/claude-for-oss) 财务报告和审定财务报表 [开源代码](https://developers.openai.com/community/codex-for-oss)。两者都使开源维护者免费运行。 欢呼声 < 3

## 许可证

[麻省理工学院](https://npmcn.com/package/%40agntn/tools/LICENSE)

## 常见问题

### @agntn/tools 是什么？

MCP、Pi、OMP和AI SDK的一个工具定义

### 如何安装 @agntn/tools？

在项目目录运行 npm install @agntn/tools，或使用 pnpm add / yarn add / bun add。

### @agntn/tools 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @agntn/tools 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @agntn/tools 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=26。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @agntn/tools 可以商用吗？

@agntn/tools 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @agntn/tools 的下载量有多少？

根据 npm 官方下载统计，@agntn/tools 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,612 次，日均约 154 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @agntn/tools 还在维护吗？

最新版本 0\.3\.0 发布于 2026/11/03（2 天前）；至今共发布 9 个版本，其中过去 12 个月发布了 9 个；首次发布于 2026/09/30。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

