发布 openmcp-sdk

This commit is contained in:
锦恢 2025-05-11 19:26:19 +08:00
parent 1f55126c82
commit d85880ea7a
3 changed files with 30 additions and 3 deletions

View File

@ -50,8 +50,8 @@ export interface IDoConversationResult {
* @description * @description
*/ */
export class TaskLoop { export class TaskLoop {
private readonly streamingContent; private streamingContent;
private readonly streamingToolCalls; private streamingToolCalls;
private readonly taskOptions; private readonly taskOptions;
private bridge; private bridge;
private currentChatId; private currentChatId;
@ -61,7 +61,7 @@ export class TaskLoop {
private onEpoch; private onEpoch;
private completionUsage; private completionUsage;
private llmConfig; private llmConfig;
constructor(streamingContent: Ref<string>, streamingToolCalls: Ref<ToolCall[]>, taskOptions?: TaskLoopOptions); constructor(taskOptions?: TaskLoopOptions);
private handleChunkDeltaContent; private handleChunkDeltaContent;
private handleChunkDeltaToolCalls; private handleChunkDeltaToolCalls;
private handleChunkUsage; private handleChunkUsage;
@ -86,6 +86,7 @@ export class TaskLoop {
*/ */
setLlmConfig(config: any): void; setLlmConfig(config: any): void;
getLlmConfig(): any; getLlmConfig(): any;
bindStreaming(content: Ref<string>, toolCalls: Ref<ToolCall[]>): void;
connectToService(): Promise<void>; connectToService(): Promise<void>;
/** /**
* @description DOM * @description DOM

View File

@ -123,5 +123,21 @@ export class TaskLoopAdapter {
console.error('❌ 连接 mcp 服务器失败:' + res.msg); console.error('❌ 连接 mcp 服务器失败:' + res.msg);
} }
} }
/**
* @description mcp
* @returns
*/
public async listTools() {
const tools = await client?.listTools();
if (tools?.tools) {
return tools.tools.map((tool) => ({
name: tool.name,
description: tool.description,
enabled: true
}));
}
return [];
}
} }

View File

@ -38,6 +38,16 @@ export async function connectService(
try { try {
console.log('ready to connect', option); console.log('ready to connect', option);
// 对于特殊表示的路径,进行特殊的支持
if (option.args) {
option.args = option.args.map(arg => {
if (arg.startsWith('~/')) {
return arg.replace('~', process.env.HOME || '');
}
return arg;
});
}
client = await connect(option); client = await connect(option);
const connectResult = { const connectResult = {
code: 200, code: 200,