import { TodoistApi } from '@doist/todoist-sdk'; import { McpServer } from '@modelcontextprotocol/server'; import { AnyTodoistTool } from './todoist-tool.js'; /** * Supported feature names that modify tool behavior. * * Currently supported: * - `'strip_emails'`: Strips email addresses from collaborator tool outputs * (affects: find-project-collaborators, find-completed-tasks). Useful for * clients like ChatGPT that should not have access to user emails. */ declare const FEATURE_NAMES: { /** * Strips email addresses from tool outputs that expose user data. * Affects: find-project-collaborators, find-completed-tasks */ readonly STRIP_EMAILS: "strip_emails"; }; /** * Valid feature name values. * @see FEATURE_NAMES for available options with documentation. */ type FeatureName = (typeof FEATURE_NAMES)[keyof typeof FEATURE_NAMES]; /** * A feature that modifies tool behavior. */ type Feature = { /** * The feature name. Use {@link FEATURE_NAMES} for available options with intellisense. */ name: FeatureName; }; /** * Array of features to enable when creating the MCP server. */ type Features = Feature[]; /** * Recursively strips email fields from an object structure. * Used to remove sensitive email data from tool outputs for certain clients. */ declare function stripEmailsFromObject(obj: T): T; /** * Strips email patterns from text content. * Replaces email addresses with [email hidden] placeholder. */ declare function stripEmailsFromText(text: string): string; /** * Register a Todoist tool in an MCP server. */ declare function registerTool({ tool, server, client, features, }: { tool: AnyTodoistTool; server: McpServer; client: TodoistApi; features?: Features; }): void; export { FEATURE_NAMES, type Feature, type FeatureName, type Features, registerTool, stripEmailsFromObject, stripEmailsFromText, }; //# sourceMappingURL=mcp-helpers.d.ts.map