index.ts•1.72 kB
import type { Config } from "../config.js";
import type { ToolDefinition } from "../types/tool.js";
import { readCommentsTool, upsertCommentTool } from "./comments.js";
import {
createFieldTool,
readFieldsTool,
readFieldTool,
updateFieldTool,
} from "./fields.js";
import {
importFileTool,
readFilesTool,
readFoldersTool,
updateFilesTool,
} from "./files.js";
import { readFlowsTool, triggerFlowTool } from "./flows.js";
import {
createItemTool,
deleteItemTool,
readItemsTool,
updateItemTool,
} from "./items.js";
import { markdownTool } from "./markdown.js";
import { createSystemPrompt } from "./prompts.js";
import schemaTool from "./schema.js";
import { readUsersTool, usersMeTool } from "./users.js";
export const getTools = (config: Config) => {
const toolList: ToolDefinition[] = [
// Users
usersMeTool,
readUsersTool,
// Schema
schemaTool,
// Items
readItemsTool,
createItemTool,
updateItemTool,
deleteItemTool,
// Flows
readFlowsTool,
triggerFlowTool,
// Files
readFoldersTool,
readFilesTool,
importFileTool,
updateFilesTool,
// Fields
readFieldsTool,
readFieldTool,
createFieldTool,
updateFieldTool,
// Comments
readCommentsTool,
upsertCommentTool,
// Markdown
markdownTool,
];
// If system propmt is enabled and exists, add the system prompt tool
if (config.MCP_SYSTEM_PROMPT_ENABLED === "true" && config.MCP_SYSTEM_PROMPT) {
toolList.push(createSystemPrompt(config));
}
// Filter the list of available tools based on cof
const availableTools = toolList.filter(
(tool) => !config.DISABLE_TOOLS.includes(tool.name)
);
return availableTools;
};