4.6 KiB
Raw Blame History

openmcp-sdk : 适用于 openmcp 的部署框架

闪电般将您的 agent 从实验室部署到生产环境

介绍 & 安装

什么是 openmcp-sdk.js

OpenMCP Client 提供了一体化的 MCP 调试解决方案,这很好,但是,还是不够有趣。

因为,我们总是希望可以把做好的 mcp 搞一个可以直接分发的 app 或者扔到服务器上做成一个函数服务或者微服务。而 OpenMCP Client 把和大模型交互,使用工具的这套逻辑全部放到了前端,导致我们如果想要把 mcp 做成一个和大模型绑定的独立应用或者服务,困难重重。

这个时候openmcp-sdk.js 就提供了一种轻量级解决方案。它是一个 nodejs 的库,可以让您通过 nodejs 将写好的 mcp 和调试好的流程无缝部署成一个 agent。

安装

::: code-group

npm install openmcp-sdk
yarn add openmcp-sdk
pnpm add openmcp-sdk

:::

:::warning 目前 openmcp-sdk 只支持 esm 模式的导入 :::

使用

首先我们创建一个新的 TS 项目:

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

npm install openmcp-sdk

然后我们创建文件 main.ts直接简单几行代码就能把配置部署成一个 agent

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 导出,不需要自己手动写。下面是例子:

{
    "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