UNPKG

mcp-server-anki

Version:

Model Context Protocol (MCP) server enabling AI assistants (Claude, GPT-4, Gemini, etc.) to interact with Anki flashcards through AnkiConnect.

120 lines (119 loc) 2.13 kB
/** * Global type definitions * All TypeScript interfaces and types used throughout the project */ /** * Arguments passed to MCP tools */ export interface ToolArguments { [key: string]: any; } /** * Content returned by MCP tools */ export interface ToolContent { type: 'text'; text: string; } /** * Response format for MCP tools */ export interface ToolResponse { content: ToolContent[]; isError?: boolean; } /** * AnkiConnect request format */ export interface AnkiConnectRequest { action: string; version: number; params?: any; } /** * AnkiConnect response format */ export interface AnkiConnectResponse<T = any> { result: T; error: string | null; } /** * Anki card information structure */ export interface CardInfo { cardId: number; fields: Record<string, { value: string; order: number; }>; fieldOrder: number; question: string; answer: string; modelName: string; deckName: string; css: string; factor: number; interval: number; note: number; ord: number; queue: number; reps: number; type: number; } /** * Anki note information structure */ export interface NoteInfo { noteId: number; fields: Record<string, string>; tags: string[]; modelName: string; cards: number[]; } /** * Parameters for adding a new note */ export interface AddNoteParams { deckName: string; modelName: string; fields: Record<string, string>; tags?: string[]; } /** * Anki deck information */ export interface DeckInfo { name: string; id: number; } /** * Parameters for getting cards from a deck */ export interface GetCardsParams { deck: string; limit?: number; } /** * Parameters for searching cards */ export interface SearchCardsParams { query: string; limit?: number; } /** * Card statistics information */ export interface CardStats { total: number; new: number; learning: number; due: number; } /** * Error information structure */ export interface ErrorInfo { message: string; code?: string; details?: any; }