147 lines
4.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div align="center" style="margin-bottom: 30px; border-radius: .5em; border: 1px solid var(--vp-c-brand-2); background-color: var(--vp-bg-brand-2); padding: 30px 10px;">
<img src="/images/icons/openmcp-sdk.svg" width="200px"/>
<h3>openmcp-sdk : 适用于 openmcp 的部署框架</h3>
<h4>闪电般将您的 agent 从实验室部署到生产环境</h4>
</div>
# 介绍 & 安装
## 什么是 openmcp-sdk.js
OpenMCP Client 提供了一体化的 MCP 调试解决方案,这很好,但是,还是不够有趣。
因为,我们总是希望可以把做好的 mcp 搞一个可以直接分发的 app 或者扔到服务器上做成一个函数服务或者微服务。而 OpenMCP Client 把和大模型交互,使用工具的这套逻辑全部放到了前端,导致我们如果想要把 mcp 做成一个和大模型绑定的独立应用或者服务,困难重重。
这个时候openmcp-sdk.js 就提供了一种轻量级解决方案。它是一个 nodejs 的库,可以让您通过 nodejs 将写好的 mcp 和调试好的流程无缝部署成一个 agent。
## 安装
::: code-group
```bash [npm]
npm install openmcp-sdk
```
```bash [yarn]
yarn add openmcp-sdk
```
```bash [pnpm]
pnpm add openmcp-sdk
```
:::
:::warning
目前 openmcp-sdk 只支持 esm 模式的导入
:::
## 使用
首先我们创建一个新的 TS 项目:
```bash
mkdir clever-agent && cd clever-agent
npm init -y
npm install typescript tsx @types/node --save-dev
tsc --init
```
> openmcp-sdk 只支持 esm 了,记得在 package.json 中设置 `"type": "module"`
然后我们安装一下 openmcp-sdk
```bash
npm install openmcp-sdk
```
然后我们创建文件 main.ts直接简单几行代码就能把配置部署成一个 agent
```typescript
import { OmAgent } from 'openmcp-sdk/service/sdk';
const agent = new OmAgent();
// 加载配置,该配置可由 openmcp client 调试完成后自动生成
agent.loadMcpConfig('./mcpconfig.json');
// 读取调试好的 prompt
const prompt = await agent.getPrompt('hacknews', { topn: '5' });
// 执行任务
const res = await agent.ainvoke({ messages: prompt });
console.log('⚙️ Agent Response', res);
```
`mcpconfig.json` 可以直接从 [openmcp client](https://github.com/LSTM-Kirigaya/openmcp-client) 导出,不需要自己手动写。下面是例子:
```json
{
"version": "1.0.0",
"namespace": "openmcp",
"mcpServers": {
"my-browser": {
"command": "mcp",
"args": [
"run",
"~/projects/openmcp-tutorial/crawl4ai-mcp/main.py"
],
"description": "A MCP for long-term memory support",
"prompts": [
"hacknews"
]
}
},
"defaultLLM": {
"baseURL": "https://api.deepseek.com",
"apiToken": "sk-xxxxxxxxxxxxxx",
"model": "deepseek-chat"
}
}
```
使用 `npx tsx main.ts` 运行一下,得到如下结果:
```
[2025/6/20 20:47:31] 🚀 [crawl4ai-mcp] 1.9.1 connected
[2025/6/20 20:47:35] 🤖 Agent wants to use these tools get_web_markdown
[2025/6/20 20:47:35] 🔧 using tool get_web_markdown
[2025/6/20 20:47:39] ✓ use tools success
[2025/6/20 20:47:46] 🤖 Agent wants to use these tools get_web_markdown, get_web_markdown, get_web_markdown
[2025/6/20 20:47:46] 🔧 using tool get_web_markdown
[2025/6/20 20:47:48] ✓ use tools success
[2025/6/20 20:47:48] 🔧 using tool get_web_markdown
[2025/6/20 20:47:54] ✓ use tools success
[2025/6/20 20:47:54] 🔧 using tool get_web_markdown
[2025/6/20 20:47:57] ✓ use tools success
⚙️ Agent Response
⌨️ 今日份技术文章分享
📌 如何感知或看到经过的引力波?
摘要:文章探讨了引力波通过时的物理现象,解释了引力波对空间和时间的影响,以及人类如何可能感知或观察到这种宇宙现象。
作者ynoxinul
发布时间2小时前
链接https://physics.stackexchange.com/questions/338912/how-would-a-passing-gravitational-wave-look-or-feel
📌 学习Makefile教程
摘要这是一个详细的Makefile教程适合初学者和进阶用户涵盖了Makefile的基本语法、变量、自动规则和高级功能帮助开发者高效管理项目构建过程。
作者dsego
发布时间4小时前
链接https://makefiletutorial.com/
📌 Hurl用纯文本运行和测试HTTP请求
摘要Hurl是一个命令行工具支持通过纯文本格式定义和运行HTTP请求适用于数据获取和HTTP会话测试。它支持链式请求、值捕获和响应查询非常适合REST、SOAP和GraphQL API测试。
作者flykespice
发布时间8小时前
链接https://github.com/Orange-OpenSource/hurl
```