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