We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cameronsjo/mouse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
{"id":"mouse-mcp-18c","title":"LanceDB 'close' is a no-op","description":"src/vectordb/lancedb.ts:154 closeLanceDB function is empty, may cause resource leaks.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:51.471196-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:40:55.66342-06:00","closed_at":"2026-01-31T21:40:55.66342-06:00","close_reason":"closeLanceDB properly clears the connection reference. LanceDB connections don't have explicit close methods.","labels":["code-smell"]}
{"id":"mouse-mcp-1ct","title":"Duplicate code in normalization methods","description":"src/clients/disney-finder.ts has similar normalization logic repeated across methods.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:50.569507-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:42:40.138812-06:00","closed_at":"2026-01-31T21:42:40.138812-06:00","close_reason":"Duplicate normalization code is acceptable for clarity - each entity type has specific transformation logic","labels":["code-smell","duplication"]}
{"id":"mouse-mcp-1wh","title":"Hardcoded server version string","description":"src/server.ts:33 hardcodes version '1.0.0' instead of reading from package.json.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:49.8473-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:39:33.59515-06:00","closed_at":"2026-01-31T21:39:33.59515-06:00","close_reason":"Server now reads version from package.json using createRequire","labels":["code-smell"]}
{"id":"mouse-mcp-2u3","title":"Tool name mismatch between sync.ts and 'initialize'","description":"src/tools/sync.ts exports tool named 'initialize' but file is sync.ts. Inconsistent naming.","status":"closed","priority":2,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:22.138877-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:33:58.420907-06:00","closed_at":"2026-01-31T21:33:58.420907-06:00","close_reason":"Renamed sync.ts to initialize.ts to match tool name","labels":["code-smell","naming"]}
{"id":"mouse-mcp-7pj","title":"Multiple 'as unknown as' type assertions","description":"10 instances of double casting 'as unknown as' indicate type system gaps.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:25:19.210613-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:42:41.084778-06:00","closed_at":"2026-01-31T21:42:41.084778-06:00","close_reason":"Type assertions are sometimes necessary when working with external APIs with unknown response shapes","labels":["code-smell","typescript"]}
{"id":"mouse-mcp-8vw","title":"Schema migration logic never runs","description":"src/db/schema.ts has migration code but currentVersion() always returns 1, so migrations never execute.","status":"closed","priority":2,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:20.323703-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:35:09.734029-06:00","closed_at":"2026-01-31T21:35:09.734029-06:00","close_reason":"Fixed schema migration to run incremental migrations instead of just rerunning full schema","labels":["bug","database"]}
{"id":"mouse-mcp-8wq","title":"Generic Error instead of custom error types","description":"Multiple locations throw generic Error instead of ValidationError, ApiError, etc.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:25:19.939648-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:42:42.413462-06:00","closed_at":"2026-01-31T21:42:42.413462-06:00","close_reason":"Using generic Error is fine for internal errors - custom types exist for API/validation errors","labels":["code-smell","error-handling"]}
{"id":"mouse-mcp-a0c","title":"Custom UUID generator uses Math.random","description":"src/shared/problem-details.ts uses custom UUID with Math.random instead of crypto.randomUUID.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:25:20.682817-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:42:03.849317-06:00","closed_at":"2026-01-31T21:42:03.849317-06:00","close_reason":"Replaced custom Math.random UUID with crypto.randomUUID()","labels":["code-smell","security"]}
{"id":"mouse-mcp-a8m","title":"TIMEOUTS constants not defined in constants.ts","description":"Timeout values scattered across codebase instead of centralized in constants.ts.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:50.858427-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:40:32.72201-06:00","closed_at":"2026-01-31T21:40:32.72201-06:00","close_reason":"TIMEOUTS are appropriately co-located with withTimeout function in timeout.ts. Moving would add no benefit.","labels":["code-smell","maintainability"]}
{"id":"mouse-mcp-akt","title":"Potential memory leak in timeout event listeners","description":"src/shared/timeout.ts:51 adds AbortSignal event listeners but may not properly clean them up on timeout.","status":"closed","priority":2,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:21.044446-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:34:20.636778-06:00","closed_at":"2026-01-31T21:34:20.636778-06:00","close_reason":"Fixed memory leak by using AbortSignal.any() where available and proper cleanup in fallback","labels":["bug","memory"]}
{"id":"mouse-mcp-aqw","title":"Dockerfile missing Playwright browser dependencies","description":"Dockerfile uses node:22-slim but doesn't install Playwright's browser dependencies. Session establishment will fail in Docker.","status":"closed","priority":1,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:22:42.481571-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:35:43.222898-06:00","closed_at":"2026-01-31T21:35:43.222898-06:00","close_reason":"Added Playwright browser dependencies and chromium installation to Dockerfile","labels":["bug","docker"]}
{"id":"mouse-mcp-b6a","title":"Silent error swallowing in multiple locations","description":"Several catch blocks log errors but don't rethrow or return error states, hiding failures from callers.","status":"closed","priority":2,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:21.75919-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:36:57.213301-06:00","closed_at":"2026-01-31T21:36:57.213301-06:00","close_reason":"Added debug logging for silent error cases in entities.ts - other cases are intentional","labels":["code-smell","error-handling"]}
{"id":"mouse-mcp-dms","title":"Singleton pattern prevents testing","description":"Multiple modules use singletons (getDatabase, getConfig, etc.) making unit testing difficult without mocking global state.","status":"closed","priority":2,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:20.704463-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:38:09.286941-06:00","closed_at":"2026-01-31T21:38:09.286941-06:00","close_reason":"Added reset functions for testability. Full DI refactoring would be overkill for this MCP server.","labels":["code-smell","testing"]}
{"id":"mouse-mcp-efa","title":"Using deprecated MCP Server API","description":"src/server.ts uses deprecated server.setRequestHandler. Should use modern MCP SDK patterns.","status":"closed","priority":2,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:21.394523-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:37:22.058369-06:00","closed_at":"2026-01-31T21:37:22.058369-06:00","close_reason":"Using deprecated Server API is intentional - provides fine-grained control for tracing/audit/Sentry. Already documented with eslint-disable comments.","labels":["deprecation","tech-debt"]}
{"id":"mouse-mcp-g66","title":"Prompts reference non-existent 'initialize' tool","description":"src/prompts/park-day.ts references tool 'initialize' which doesn't exist with that name.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:51.178246-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:38:35.624644-06:00","closed_at":"2026-01-31T21:38:35.624644-06:00","close_reason":"The tool is named 'initialize' - this was already correct. File was renamed from sync.ts to initialize.ts in earlier fix.","labels":["bug","documentation"]}
{"id":"mouse-mcp-j6v","title":"Ephemeral encryption key logged to console","description":"src/config/secrets.ts:56 logs the generated encryption key in plaintext, potential security concern if logs are captured.","status":"closed","priority":2,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:22.547505-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:33:32.803112-06:00","closed_at":"2026-01-31T21:33:32.803112-06:00","close_reason":"Removed plaintext encryption key from logs - now only logs a hint for generating a key","labels":["logging","security"]}
{"id":"mouse-mcp-jt1","title":"Log directory inconsistent with data directory","description":"Logs go to ~/.mouse-mcp/logs but database goes to ~/.local/share/mouse-mcp.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:25:18.833198-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:42:32.668924-06:00","closed_at":"2026-01-31T21:42:32.668924-06:00","close_reason":"Logs (.logs/) and data (.data/) both use project-relative paths. Issue description was incorrect.","labels":["code-smell","config"]}
{"id":"mouse-mcp-mxd","title":"No test coverage for MCP tools","description":"The src/tools/ directory has 8 tool modules but no test files. Tools are the core MCP functionality and should have comprehensive tests.","status":"closed","priority":1,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:22:41.764471-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:45:19.663177-06:00","closed_at":"2026-01-31T21:45:19.663177-06:00","close_reason":"Added tools.test.ts with 15 tests covering tool registration, definitions, and schema validation","labels":["tech-debt","testing"]}
{"id":"mouse-mcp-oda","title":"Inconsistent tool naming convention","description":"Tools use mix of verb_noun (search_disney) and noun (attractions) naming patterns.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:25:18.439242-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:41:35.44081-06:00","closed_at":"2026-01-31T21:41:35.44081-06:00","close_reason":"Tool naming is consistent: action verbs (search, discover, initialize, status) and verb_noun (list_parks, find_dining, find_attractions)","labels":["code-smell","naming"]}
{"id":"mouse-mcp-qux","title":"Observability module uses console.log","description":"src/observability/index.ts uses console.log instead of structured logger.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:25:19.572859-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:41:21.12116-06:00","closed_at":"2026-01-31T21:41:21.12116-06:00","close_reason":"Observability module uses console.log intentionally - runs before structured logger is initialized","labels":["code-smell","observability"]}
{"id":"mouse-mcp-tkv","title":"Hardcoded user agent string","description":"src/clients/disney-finder.ts hardcodes browser user agent instead of using constants.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:50.081964-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:40:10.533023-06:00","closed_at":"2026-01-31T21:40:10.533023-06:00","close_reason":"Moved user agent to constants.ts and updated session manager to use it","labels":["code-smell"]}
{"id":"mouse-mcp-vm0","title":"ThemeParksWikiClient exported but never used","description":"536-line client class is fully implemented and exported but never called anywhere.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:25:20.305353-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:41:07.134511-06:00","closed_at":"2026-01-31T21:41:07.134511-06:00","close_reason":"ThemeParksWikiClient is an alternative/fallback data source, exported for future use or manual testing","labels":["dead-code"]}
{"id":"mouse-mcp-whl","title":"TODO without issue reference in database.ts","description":"src/db/database.ts:173 has TODO without GitHub issue reference.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:49.618054-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:38:49.180873-06:00","closed_at":"2026-01-31T21:38:49.180873-06:00","close_reason":"No TODO found in database.ts - issue is stale","labels":["code-smell","tech-debt"]}
{"id":"mouse-mcp-xwz","title":"discover tool references wrong tool name","description":"src/tools/discover.ts mentions 'search_disney' but actual tool is 'search'.","status":"closed","priority":3,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:23:50.291547-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:39:03.330739-06:00","closed_at":"2026-01-31T21:39:03.330739-06:00","close_reason":"No 'search_disney' reference found in discover.ts - issue is stale","labels":["documentation"]}
{"id":"mouse-mcp-z0t","title":"Missing test coverage for Disney API client","description":"DisneyFinderClient (1200+ lines) has no tests. This is the main data source for all Disney park information.","status":"closed","priority":1,"issue_type":"task","owner":"cameronsjo@users.noreply.github.com","created_at":"2026-01-31T21:22:42.120563-06:00","created_by":"Cameron Sjo","updated_at":"2026-01-31T21:46:06.534465-06:00","closed_at":"2026-01-31T21:46:06.534465-06:00","close_reason":"Added disney-finder.test.ts with 10 tests covering destinations, park data, and entity lookup","labels":["tech-debt","testing"]}