UNPKG

@agentpaid/mcp-use

Version:

A utility library for integrating Model Context Protocol (MCP) with LangChain, Zod, and related tools. Provides helpers for schema conversion, event streaming, and SDK usage.

46 lines (45 loc) 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateToolDescriptions = generateToolDescriptions; exports.buildSystemPromptContent = buildSystemPromptContent; exports.createSystemMessage = createSystemMessage; const messages_1 = require("@langchain/core/messages"); function generateToolDescriptions(tools, disallowedTools) { const disallowedSet = new Set(disallowedTools ?? []); const descriptions = []; for (const tool of tools) { if (disallowedSet.has(tool.name)) continue; const escaped = tool.description .replace(/\{/g, '{{') .replace(/\}/g, '}}'); descriptions.push(`- ${tool.name}: ${escaped}`); } return descriptions; } function buildSystemPromptContent(template, toolDescriptionLines, additionalInstructions) { const block = toolDescriptionLines.join('\n'); let content; if (template.includes('{tool_descriptions}')) { content = template.replace('{tool_descriptions}', block); } else { console.warn('`{tool_descriptions}` placeholder not found; appending at end.'); content = `${template}\n\nAvailable tools:\n${block}`; } if (additionalInstructions) { content += `\n\n${additionalInstructions}`; } return content; } function createSystemMessage(tools, systemPromptTemplate, serverManagerTemplate, useServerManager, disallowedTools, userProvidedPrompt, additionalInstructions) { if (userProvidedPrompt) { return new messages_1.SystemMessage({ content: userProvidedPrompt }); } const template = useServerManager ? serverManagerTemplate : systemPromptTemplate; const toolLines = generateToolDescriptions(tools, disallowedTools); const finalContent = buildSystemPromptContent(template, toolLines, additionalInstructions); return new messages_1.SystemMessage({ content: finalContent }); }