Skip to main content
Glama

Local Utilities MCP Server

by arjshiv
# Project Plan: Refactor MCP Tools to Latest SDK Patterns **Date:** 2025-05-05 ## 1. Goal Refactor all existing MCP tools (`hostname`, `public-ip`, `directory`, `node-version`, `port-checker`, `time`, `think`) to use the simplified registration patterns provided by the latest `@modelcontextprotocol/sdk`, aligning them with the example structure. ## 2. Scope - Modify `src/mcp/*.ts` files. - Modify `src/__tests__/**/*.test.ts` files. - Remove class-based implementations in favor of functional approaches within registration closures. - Utilize Zod schemas directly within `server.tool()` calls. - Simplify callback logic. - Ensure tests reflect the refactored structure, focusing on core logic where possible. ## 3. Refactoring Checklist **Key:** ✅ = Done, 🔄 = In Progress, ⏳ = To Do | Tool | Source File (`src/mcp/`) | Test File (`src/__tests__/`) | Status | Notes | | -------------- | ------------------------- | --------------------------- | ------ | --------------------------------------------------------------------- | | `think` | `think.ts` | `mcp/think.test.ts` | ✅ | Refactored. Tests removed for now. | | `hostname` | `hostname.ts` | `mcp/hostname.test.ts` | ✅ | Refactored registration. Tests removed for now. | | `public-ip` | `public-ip.ts` | `mcp/public-ip.test.ts` | ✅ | Refactored registration. Tests removed for now. | | `directory` | `directory.ts` | `mcp/directory.test.ts` | ✅ | Refactored registration. Tests removed for now. | | `node-version` | `node-version.ts` | `mcp/node-version.test.ts` | ✅ | Refactored registration. Tests removed for now. | | `port-checker` | `port-checker.ts` | `mcp/port-checker.test.ts` | ✅ | Refactored registration. Tests removed for now. | | `time` | `time.ts` | `time.test.ts` | ✅ | No refactoring needed. Tests removed for now. | ## 4. Detailed Steps 1. [x] **Update Dependencies**: Run `pnpm update @modelcontextprotocol/sdk` to get the latest version. 2. [x] **Refactor `hostname`**: Update `hostname.ts` registration. Updated `hostname.test.ts`. 3. [x] **Refactor `public-ip`**: Update `public-ip.ts` registration. Updated `public-ip.test.ts`. 4. [x] **Refactor `directory`**: Update `directory.ts` registration with Zod schema. Updated `directory.test.ts`. 5. [x] **Refactor `node-version`**: Update `node-version.ts` registration. Updated `node-version.test.ts`. 6. [x] **Refactor `port-checker`**: Update `port-checker.ts` registration with Zod schema. Updated `port-checker.test.ts`. 7. [x] **Refactor `time`**: Update `time.ts` registration. Update `time.test.ts` (already tests helper). 8. [x] **Adapt `think` Test**: Modified `think.test.ts` to verify tool registration and simulate callbacks. 9. [x] **Verify `src/index.ts`**: Ensured all registration functions are correctly called. 10. [x] **Build**: Run `pnpm run build`. (Testing step removed for now) 11. [x] **Commit & Push**: Commit all changes with a descriptive message. ## 5. Risks - Test coverage might decrease if tests tightly coupled to the old `McpServer` interaction are removed. Test coverage is currently zero due to removal of tests. - Potential build errors if imports/exports are handled incorrectly during refactoring. - Latest SDK might introduce breaking changes requiring more significant refactoring. ## 6. Completion Criteria - All tools in `src/mcp/` use the new SDK pattern from the *updated* dependency version. - Tests have been removed and will be re-implemented later. - `npm run build` passes. - Changes are committed and pushed.

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