@unified-llm/core
Version:
Unified LLM interface (in-memory).
41 lines • 1.29 kB
JavaScript
/**
* MCP tool 定義(McpTool[])を OpenAI tool schema に変換するための小さなカタログ。
* 目的は「変換処理に名前を与えて読みやすくする」こと。
*/
export class McpToolCatalog {
constructor(tools) {
this.tools = tools;
}
/**
* MCP tools -> OpenAI tools
*/
toOpenAiTools() {
return this.tools.map((tool) => ({
type: "function",
name: tool.name,
description: tool.description,
parameters: tool.inputSchema,
}));
}
/**
* MCP tools -> Gemini tools
*
* IMPORTANT:
* - Gemini の functionDeclarations は `parameters` ではなく `parametersJsonSchema` を使う。
* (parameters に JSON Schema を入れると "Unknown name additionalProperties/$schema" 等で落ちる)
*/
toGeminiTools() {
if (this.tools.length === 0)
return [];
return [
{
functionDeclarations: this.tools.map((tool) => ({
name: tool.name,
description: tool.description,
parametersJsonSchema: tool.inputSchema,
})),
},
];
}
}
//# sourceMappingURL=mcp-tool-catalog.js.map