# Reported issues for molecare-mcp

Pod holds 16 of 17 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [molecare-mcp](/mcp/molecare-mcp).

## Most discussed

### Add --version and --help flags to the CLI

The package installs a `molecare-mcp` binary. Running it with any argument — including `--version` or `--help` — starts a stdio server that sits silently waiting for JSON-RPC input.

That is correct behaviour for an MCP server and confusing behaviour for a command. Someone who has just installed the package and wants to check what they got has no way to ask, and the silence reads as a hang.

## What to do

Parse `process.argv` before starting the transport in `src/index.ts`:

- `--version` / `-v

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/11) · 2026-08-24 · open · 1 comment

### Delete the unused express middleware, or wire it up

`src/middleware/rateLimitMiddleware.ts` imports express and defines a Router. Nothing imports it — `src/index.ts` never references the file.

Rate limiting is genuinely implemented, just elsewhere: `src/services/RateLimitService.ts`, applied to tool calls at `src/index.ts:1049`. So the middleware is dead code that:

- drags `express` into `dependencies` for a stdio server that never serves HTTP routes
- carries three `TODO: Add admin authentication check` comments for admin endpoints that do not

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/10) · 2026-08-24 · closed · 1 comment

### i18n: Optional localization of MCP tool descriptions

## Problem
~90+ tools in `src/index.ts` expose English `description` strings to MCP hosts. Those descriptions steer how models choose tools. Non-English hosts may benefit from translated descriptions — but this is lower priority than medical KB copy.

## Open design questions
- Does the MCP protocol / host ecosystem expect tool schemas in one language only?
- Should we ship multiple `description` locales, or keep English schemas and only localize *results*?
- Risk: divergent translations could c

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/24) · 2026-08-24 · open · 0 comments

### i18n: Document translation workflow in CONTRIBUTING.md

## Problem
`CONTRIBUTING.md` does not explain how to add or update translations for educational content, tool-facing copy, or disclaimers.

## Acceptance criteria
- [ ] Section “Translations / i18n” in CONTRIBUTING.md
- [ ] Where locale files live, how to add a language, how to test
- [ ] Clinical-safety rule: disclaimer translations need maintainer review
- [ ] Link to open i18n issues / preferred languages

## Good first issue?
Yes once locale file layout exists (or document the planned layout

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/23) · 2026-08-24 · open · 0 comments

### i18n: Add locale parameter to search_medical_info and knowledge resources

## Problem
Tools like `search_medical_info` and MCP resources always return English. Clients have no way to request another language even after locale files exist.

## Why it matters
MCP hosts and agents often run in a user’s language. Without a locale hook, extracted translations cannot be selected at runtime.

## Proposed approach
- Optional tool argument `locale` (BCP 47, e.g. `en`, `es`, `ar`) with fallback to `en`
- Optional resource URI query or negotiated locale for `molecare://knowledge/

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/21) · 2026-08-24 · open · 0 comments

### i18n: Localize clinical-safety disclaimers on knowledge resources

## Problem
Every knowledge resource in `src/resources/medical-kb.ts` ends with an English disclaimer such as:

> This information is for educational purposes only and does not constitute medical advice.

Similar wording appears in README / package description. There is no approved translated set of disclaimers.

## Why it matters
Disclaimers are a clinical-safety requirement for this repo (“Not a medical device”). A partial or casual translation that softens meaning is worse than English-only. C

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/20) · 2026-08-24 · open · 0 comments

### i18n: Extract medical knowledge base into locale files (English-only today)

## Problem
Educational dermatology content lives as hardcoded English strings in `src/resources/medical-kb.ts`:

- `KNOWLEDGE_BASE` entries (asymmetry, border, color, diameter, evolution, melanoma, skin-types, sunscreen, self-examination, uv-protection)
- MCP resources (`molecare://knowledge/abcde-criteria`, `skin-types`, `prevention-tips`, `when-to-see-doctor`) including titles, criteria text, tips, and disclaimers

There is no locale layer. Non-English users (and LLM clients configured for oth

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/19) · 2026-08-24 · open · 0 comments

### Verify the registry listing matches what npm shipped, after publishing

Follow-on from the OIDC publishing workflow in `.github/workflows/publish-mcp-registry.yml`.

The workflow checks *before* publishing that the version declared in `server.json` exists on npm and that its `mcpName` matches. Nothing checks *after* publishing that the registry actually reflects what was intended.

The failure this guards against is quiet: a registry entry pointing at a version that was later unpublished or deprecated, or a `server.json` that drifts from `package.json` across releas

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/16) · 2026-08-24 · open · 0 comments

## Most recent

### Integration test harness that exercises every tool in mock mode

Complements #1 rather than replacing it — #1 is unit tests, this is end-to-end.

Because every tool falls back to clearly-labelled mock data when its backend is unconfigured, the entire 53-tool surface is testable with no credentials, no database and no AWS account. That is an unusually good position to be in and it is currently unused.

## What to do

Using the MCP SDK's client, spawn the built server over stdio and:

- call `tools/list` and assert the expected tool count
- call every tool with

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/15) · 2026-08-24 · closed · 0 comments

### Add MCP prompts

The server declares `tools` and `resources` capabilities but no `prompts` — there are zero references to the prompts capability in `src/index.ts`.

Prompts are arguably the part of MCP best suited to educational content, because they let the server ship a well-constructed question rather than depending on the user knowing what to ask. Somebody exploring skin-health knowledge often does not know the right question, which is exactly the gap a prompt fills.

## Candidates

- **Walk through ABCDE cr

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/14) · 2026-08-24 · open · 0 comments

### Tool profiles: let people load only the dermatology tools

The server registers 53 tools. Roughly:

- **9** dermatology knowledge (`search_medical_info`, `lookup_medical_concept`, `map_snomed_to_icd10`, …)
- **5** MoleCare product data (`get_user_moles`, `compare_moles`, …)
- **~35** MoleCare's own infrastructure (EC2, MLflow, Feast, CI/CD, database, app status)

Someone who installs this for SNOMED lookups gets 44 tools they will never call. Every one of them is serialised into the model's context on every request, which costs tokens and makes tool sel

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/13) · 2026-08-24 · open · 0 comments

### Cite sources for every SNOMED CT and ICD-10 mapping

`src/resources/medical-kb.ts` hardcodes SNOMED CT concepts, ICD-10 codes and the mappings between them, with no provenance recorded anywhere.

For a server whose entire value proposition is educational accuracy, a reader currently cannot tell where `372244006 → C43` came from, which SNOMED release it reflects, or when it was last checked. Terminology releases change: concepts get inactivated, mappings get revised. Undated clinical reference data quietly goes stale.

## What to do

- Record the s

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/12) · 2026-08-24 · open · 0 comments

### Add MCP tool annotations to all tools

Every tool this server exposes is read-only — nothing mutates state anywhere. The MCP specification defines tool annotations (`readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) that let a client decide what it can safely call without interrupting the user for approval.

Right now the server declares almost none of them. The practical cost is that a client has to prompt on every single call, including things like `map_snomed_to_icd10` which reads from a static lookup table and 

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/9) · 2026-08-24 · closed · 0 comments

### Expand the dermatology knowledge resources

The server currently exposes four knowledge resources under `molecare://knowledge/`:

- `abcde-criteria`
- `skin-types`
- `prevention-tips`
- `when-to-see-doctor`

There is room for more educational material — sun protection factors, common benign lesions and how they differ from concerning ones, what actually happens at a dermatology appointment, self-examination technique.

**Before you start, please read the clinical-safety section of [CONTRIBUTING.md](https://github.com/MoleCare/molecare-mcp

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/5) · 2026-08-23 · open · 0 comments

### Add a CI workflow

There is no `.github/workflows/` directory, so nothing is checked automatically on push or pull request.

**What would help**

A single workflow running on push and pull request that does:

- `npm ci`
- `npm run build` (TypeScript must compile clean)
- `npm test` once #1 lands — feel free to leave a placeholder step until then

A useful extra: start the server and assert it answers an `initialize` and `tools/list` request over stdio. That catches runtime breakage the type checker misses. It shou

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/4) · 2026-08-23 · closed · 0 comments

### Wire up dotenv so .env is actually loaded

The README points users at `.env.example`, and `.gitignore` is set up to keep `.env` out of git — but nothing in the code ever loads a `.env` file. `dotenv` is not a dependency and is not imported anywhere.

The practical effect is that copying `.env.example` to `.env` does nothing. Variables only take effect if you `export` them in your shell first, which is not what the docs imply.

**What would help**

Add `dotenv` and load it once at the top of `src/index.ts`, before any client is constructe

[Read the thread](https://github.com/MoleCare/molecare-mcp/issues/3) · 2026-08-23 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/MoleCare/molecare-mcp/issues).
