Redmine MCP Server
by yonaka15
- src
- interfaces
import { RedisClientType as RedisClient } from 'redis';
// Extend RedisClientType to handle the specific client type
export type RedisClientType = RedisClient<any, any, any>;
export interface HMSetArgs {
key: string;
fields: Record<string, string>;
}
export interface HGetArgs {
key: string;
field: string;
}
export interface HGetAllArgs {
key: string;
}
export interface HSetArgs {
key: string;
field: string;
value: string;
}
export interface SetArgs {
key: string;
value: string;
nx?: boolean;
px?: number;
}
export interface GetArgs {
key: string;
}
export interface DelArgs {
key: string;
}
export interface ScanArgs {
pattern: string;
count?: number;
}
export interface ZAddArgs {
key: string;
members: Array<{score: number; value: string}>;
}
export interface ZRangeArgs {
key: string;
start: number;
stop: number;
withScores?: boolean;
}
export interface ZRangeByScoreArgs {
key: string;
min: number;
max: number;
withScores?: boolean;
}
export interface ZRemArgs {
key: string;
members: string[];
}
export interface SAddArgs {
key: string;
members: string[];
}
export interface SMembersArgs {
key: string;
}
// Update ToolResponse to match MCP SDK expectations
export interface ToolResponse {
content: Array<{
type: string;
text: string;
}>;
_meta?: Record<string, unknown>;
}
export interface BaseTool {
name: string;
description: string;
inputSchema: object;
validateArgs(args: unknown): boolean;
execute(args: unknown, client: RedisClientType): Promise<ToolResponse>;
}