From 0c50ebcc2c7d79891c063eafd499e302affceaf0 Mon Sep 17 00:00:00 2001 From: Kirigaya <1193466151@qq.com> Date: Thu, 5 Jun 2025 17:21:37 +0800 Subject: [PATCH] publish openmcp-sdk 0.0.6 --- resources/openmcp-sdk-release/README.md | 52 +++++++++++++------ .../openmcp-sdk-release/icons/openmcp-sdk.svg | 34 ++++++++++++ resources/openmcp-sdk-release/main.js | 36 +++++++++++-- resources/openmcp-sdk-release/package.json | 2 +- 4 files changed, 103 insertions(+), 21 deletions(-) create mode 100644 resources/openmcp-sdk-release/icons/openmcp-sdk.svg diff --git a/resources/openmcp-sdk-release/README.md b/resources/openmcp-sdk-release/README.md index c200611..2c8719e 100644 --- a/resources/openmcp-sdk-release/README.md +++ b/resources/openmcp-sdk-release/README.md @@ -1,13 +1,14 @@
- + -

OpenMCP: 一体化 MCP Server 调试器

+

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

+

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

-👉 加入 OpenMCP正式级技术组 +📄 OpenMCP 官方文档 - 加入 OpenMCP Discord频道 +QQ 讨论群Discord频道
@@ -18,6 +19,8 @@ npm install openmcp-sdk ``` +> 目前 openmcp-sdk 只支持 esm 模式的导入 + ## 使用 文件名:main.ts @@ -25,26 +28,29 @@ npm install openmcp-sdk ```typescript import { TaskLoop } from 'openmcp-sdk/task-loop'; import { TaskLoopAdapter } from 'openmcp-sdk/service'; - async function main() { // 创建适配器,负责通信和 mcp 连接 const adapter = new TaskLoopAdapter(); - // 连接 mcp 服务器 - await adapter.connectMcpServer({ + // 添加 mcp 服务器 + adapter.addMcp({ connectionType: 'STDIO', - command: 'node', - args: [ - '~/projects/mcp/servers/src/puppeteer/dist/index.js' - ] + commandString: 'uv run mcp run main.py', + cwd: '~/projects/openmcp-tutorial/crawl4ai-mcp' }); - // 获取工具列表 - const tools = await adapter.listTools(); + adapter.addMcp({ + connectionType: 'STDIO', + commandString: 'node index.js', + cwd: '~/projects/openmcp-tutorial/my-browser/dist' + }); // 创建事件循环驱动器 const taskLoop = new TaskLoop({ adapter }); + // 获取所有工具 + const tools = await taskLoop.getTools(); + // 配置改次事件循环使用的大模型 taskLoop.setLlmConfig({ id: 'deepseek', @@ -58,8 +64,11 @@ async function main() { messages: [], settings: { temperature: 0.7, + // 在本次对话使用所有工具 enableTools: tools, + // 系统提示词 systemPrompt: 'you are a clever bot', + // 对话上下文的轮数 contextLength: 20 } }; @@ -82,14 +91,27 @@ async function main() { console.log('taskLoop epoch'); }); + // 每一次工具调用前 + taskLoop.registerOnToolCall((toolCall) => { + return toolCall; + }); + + // 每一次工具调用完后的结果 + taskLoop.registerOnToolCalled((result) => { + return result; + }); + // 开启事件循环 await taskLoop.start(storage, message); // 打印上下文,最终的回答在 messages.at(-1) 中 - console.log(storage.messages); -} + const content = storage.messages.at(-1).content; + console.log('最终回答:', content); +} main(); ``` +更多使用请看官方文档:https://kirigaya.cn/openmcp/sdk-tutorial/ + star 我们的项目:https://github.com/LSTM-Kirigaya/openmcp-client \ No newline at end of file diff --git a/resources/openmcp-sdk-release/icons/openmcp-sdk.svg b/resources/openmcp-sdk-release/icons/openmcp-sdk.svg new file mode 100644 index 0000000..60f824f --- /dev/null +++ b/resources/openmcp-sdk-release/icons/openmcp-sdk.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/openmcp-sdk-release/main.js b/resources/openmcp-sdk-release/main.js index 48244c1..a918528 100644 --- a/resources/openmcp-sdk-release/main.js +++ b/resources/openmcp-sdk-release/main.js @@ -5,9 +5,25 @@ async function main() { // 创建适配器,负责通信和 mcp 连接 const adapter = new TaskLoopAdapter(); + // 添加 mcp 服务器 + adapter.addMcp({ + connectionType: 'STDIO', + commandString: 'uv run mcp run main.py', + cwd: '~/projects/openmcp-tutorial/crawl4ai-mcp' + }); + + adapter.addMcp({ + connectionType: 'STDIO', + commandString: 'node index.js', + cwd: '~/projects/openmcp-tutorial/my-browser/dist' + }); + // 创建事件循环驱动器 const taskLoop = new TaskLoop({ adapter }); + // 获取所有工具 + const tools = await taskLoop.getTools(); + // 配置改次事件循环使用的大模型 taskLoop.setLlmConfig({ id: 'deepseek', @@ -21,8 +37,11 @@ async function main() { messages: [], settings: { temperature: 0.7, - enableTools: [], + // 在本次对话使用所有工具 + enableTools: tools, + // 系统提示词 systemPrompt: 'you are a clever bot', + // 对话上下文的轮数 contextLength: 20 } }; @@ -45,15 +64,22 @@ async function main() { console.log('taskLoop epoch'); }); + // 每一次工具调用前 + taskLoop.registerOnToolCall((toolCall) => { + return toolCall; + }); + + // 每一次工具调用完后的结果 + taskLoop.registerOnToolCalled((result) => { + return result; + }); + // 开启事件循环 await taskLoop.start(storage, message); // 打印上下文,最终的回答在 messages.at(-1) 中 - console.log(storage.messages); - const content = storage.messages.at(-1).content; - console.log(content); - + console.log('最终回答:', content); } main(); diff --git a/resources/openmcp-sdk-release/package.json b/resources/openmcp-sdk-release/package.json index 1480a91..e62ff0d 100644 --- a/resources/openmcp-sdk-release/package.json +++ b/resources/openmcp-sdk-release/package.json @@ -1,6 +1,6 @@ { "name": "openmcp-sdk", - "version": "0.0.5", + "version": "0.0.6", "description": "openmcp-sdk", "scripts": { "test": "echo \"Error: no test specified\" && exit 1"