Skip to main content
Glama
ThinkFar

Clear Thought Server

programmingparadigm

Apply programming paradigms to solve coding problems by selecting approaches like functional, object-oriented, or reactive programming for structured solutions.

Instructions

A tool for applying different programming paradigms to solve problems. Supports various programming paradigms including:

  • Imperative Programming

  • Procedural Programming

  • Object-Oriented Programming

  • Functional Programming

  • Declarative Programming

  • Logic Programming

  • Event-Driven Programming

  • Aspect-Oriented Programming

  • Concurrent Programming

  • Reactive Programming

Each paradigm provides a different approach to structuring and executing code.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paradigmNameYes
problemYes
approachNo
benefitsNo
limitationsNo
codeExampleNo
languagesNo

Implementation Reference

  • Main execution logic for the 'programmingparadigm' tool, processing input, validating, formatting output, and returning structured JSON response.
    public processParadigm(input: unknown): { content: Array<{ type: string; text: string }>; isError?: boolean } { try { const validatedInput = this.validateParadigmData(input); const formattedOutput = this.formatParadigmOutput(validatedInput); console.error(formattedOutput); return { content: [{ type: "text", text: JSON.stringify({ paradigmName: validatedInput.paradigmName, status: 'success', hasApproach: validatedInput.approach.length > 0, hasCodeExample: !!validatedInput.codeExample }, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: JSON.stringify({ error: error instanceof Error ? error.message : String(error), status: 'failed' }, null, 2) }], isError: true }; } }
  • Tool definition including name, description, and detailed inputSchema for the 'programmingparadigm' tool.
    const PROGRAMMING_PARADIGM_TOOL: Tool = { name: "programmingparadigm", description: `A tool for applying different programming paradigms to solve problems. Supports various programming paradigms including: - Imperative Programming - Procedural Programming - Object-Oriented Programming - Functional Programming - Declarative Programming - Logic Programming - Event-Driven Programming - Aspect-Oriented Programming - Concurrent Programming - Reactive Programming Each paradigm provides a different approach to structuring and executing code.`, inputSchema: { type: "object", properties: { paradigmName: { type: "string", enum: [ "imperative", "procedural", "object_oriented", "functional", "declarative", "logic", "event_driven", "aspect_oriented", "concurrent", "reactive", ], }, problem: { type: "string" }, approach: { type: "array", items: { type: "string" }, }, benefits: { type: "array", items: { type: "string" }, }, limitations: { type: "array", items: { type: "string" }, }, codeExample: { type: "string" }, languages: { type: "array", items: { type: "string" }, }, }, required: ["paradigmName", "problem"], }, };
  • src/index.ts:1070-1082 (registration)
    MCP server request handler registration that dispatches 'programmingparadigm' tool calls to the paradigmServer.processParadigm method.
    case "programmingparadigm": { const result = paradigmServer.processParadigm( request.params.arguments ); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }
  • TypeScript interface defining the data structure for programming paradigm inputs, used in validation.
    export interface ProgrammingParadigmData { paradigmName: string; problem: string; approach: string[]; benefits: string[]; limitations: string[]; codeExample?: string; languages?: string[]; }
  • Helper function for input validation and type casting to ProgrammingParadigmData.
    private validateParadigmData(input: unknown): ProgrammingParadigmData { const data = input as Record<string, unknown>; if (!data.paradigmName || typeof data.paradigmName !== 'string') { throw new Error('Invalid paradigmName: must be a string'); } if (!data.problem || typeof data.problem !== 'string') { throw new Error('Invalid problem: must be a string'); } return { paradigmName: data.paradigmName as string, problem: data.problem as string, approach: Array.isArray(data.approach) ? data.approach.map(String) : [], benefits: Array.isArray(data.benefits) ? data.benefits.map(String) : [], limitations: Array.isArray(data.limitations) ? data.limitations.map(String) : [], codeExample: typeof data.codeExample === 'string' ? data.codeExample as string : undefined, languages: Array.isArray(data.languages) ? data.languages.map(String) : undefined }; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ThinkFar/clear-thought-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server