Skip to main content
Glama
arjshiv

Local Utilities MCP Server

by arjshiv

think

Record and manage thoughts by logging them into the system for future reference. Use the Local Utilities MCP Server to integrate thought tracking with other local system utilities for streamlined productivity.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
thoughtYesThe thought content to record

Implementation Reference

  • Handler function for the 'think' tool. Records the input thought with a timestamp in a closure-stored array and returns a success message.
    async ({ thought }) => { thoughts.push({ timestamp: new Date().toISOString(), content: thought }); return { content: [{ type: "text", text: "Thought recorded successfully" }] }; }
  • src/mcp/think.ts:67-82 (registration)
    Registers the 'think' tool on the MCP server with input schema and handler.
    server.tool( "think", { thought: z.string().min(1, "Thought cannot be empty").describe("The thought content to record") }, async ({ thought }) => { thoughts.push({ timestamp: new Date().toISOString(), content: thought }); return { content: [{ type: "text", text: "Thought recorded successfully" }] }; } );
  • Zod schema for the 'think' tool input: a non-empty string for the thought content.
    { thought: z.string().min(1, "Thought cannot be empty").describe("The thought content to record") },
  • src/index.ts:25-25 (registration)
    Calls registerThinkTool to register the think tool (and related tools) on the main MCP server instance.
    registerThinkTool(server);
  • Helper class with methods for managing thoughts, exported for testing but not used in the actual tool handler (which uses closure state).
    export class ThinkToolInternalLogic { thoughts: Thought[] = []; // Make public for test access if needed, or add methods addThought(content: string): void { this.thoughts.push({ timestamp: new Date().toISOString(), content }); } getAllThoughts(): Thought[] { return [...this.thoughts]; } clearThoughts(): void { this.thoughts = []; } getThoughtStats(): ThoughtStats { const totalThoughts = this.thoughts.length; if (totalThoughts === 0) { return { totalThoughts: 0, averageLength: 0, oldestThought: null, newestThought: null }; } const averageLength = this.thoughts.reduce((acc, thought) => acc + thought.content.length, 0) / totalThoughts; return { totalThoughts, averageLength: parseFloat(averageLength.toFixed(2)), // Keep formatted oldestThought: this.thoughts[0].timestamp, newestThought: this.thoughts[this.thoughts.length - 1].timestamp }; } }

Other Tools

Related Tools

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/arjshiv/localutils-mcp-server'

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