@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
JavaScript
;
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 });
}