Narrarium MCP Server

narrarium-mcp-server npm v0.1.58 Source verified

Published by keyserdsoze — publish provenance cryptographically ties this package to that repository. That is proof of origin, not an official vendor package.

Local MCP server for Narrarium book repositories.

Trust grade
A
97/100
Last scanned get badge →
Trust
A · 97/100
Adoption risk for you: the threat score, then adjusted down for blast radius, publisher verification and how much the scan could see. Deterministic; every point is auditable.
Capability
Moderate
Blast radius if it went rogue — what the server’s tools could reach. Independent of trust.
Coverage
Source
How much the scan could actually inspect. Shallow coverage is stated, never hidden.
Share this Trust Score
𝕏 Share LinkedIn Reddit
A Why this grade threat 100 − adoption risk = 97/100

The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.

1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:

The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.

2. Client adoption risk — 100 − 3 = 97. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:

PointsAdoption-risk factor
−3 capability blast radius (moderate) — client exposure if the model is manipulated

Capability observations and info notes are shown under Findings but never scored. Open any row's finding below for the file, line and evidence behind a deduction.

Findings 1

medium Hardcoded egress to an external endpoint (dist/index.js)MTC-SRC-003

In the server's implementation (`dist/index.js:1992`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: const response = await fetch("https://api.openai.com/v1/images/generations", { method: "POST", headers:

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/index.js

Tools 80

Each tool and what it can reach — statically extracted from the published source.

  • wikipedia_pageingests untrusted input
  • apply_dialogue_action_beatsno sensitive capability
  • chapter_wizardno sensitive capability
  • chapter_writing_contextno sensitive capability
  • character_wizardno sensitive capability
  • create_asset_promptno sensitive capability
  • create_chapterno sensitive capability
  • create_chapter_draftno sensitive capability
  • create_chapter_from_draftno sensitive capability
  • create_characterno sensitive capability
Show 70 more tools ↓
  • create_entityno sensitive capability
  • create_factionno sensitive capability
  • create_itemno sensitive capability
  • create_locationno sensitive capability
  • create_paragraphno sensitive capability
  • create_paragraph_draftno sensitive capability
  • create_paragraph_from_draftno sensitive capability
  • create_personano sensitive capability
  • create_scriptno sensitive capability
  • create_secretno sensitive capability
  • create_timeline_eventno sensitive capability
  • evaluate_bookno sensitive capability
  • evaluate_chapterno sensitive capability
  • evaluate_paragraphno sensitive capability
  • export_epubno sensitive capability
  • faction_wizardno sensitive capability
  • generate_asset_imageno sensitive capability
  • init_book_repono sensitive capability
  • item_wizardno sensitive capability
  • list_personasno sensitive capability
  • list_related_canonno sensitive capability
  • location_wizardno sensitive capability
  • paragraph_to_scriptno sensitive capability
  • paragraph_wizardno sensitive capability
  • paragraph_writing_contextno sensitive capability
  • prepare_paragraph_evaluationno sensitive capability
  • promote_book_itemno sensitive capability
  • promote_chapter_itemno sensitive capability
  • query_canonno sensitive capability
  • read_scriptno sensitive capability
  • read_script_ledgerno sensitive capability
  • register_assetno sensitive capability
  • rename_chapterno sensitive capability
  • rename_entityno sensitive capability
  • rename_paragraphno sensitive capability
  • repository_specno sensitive capability
  • resume_book_contextno sensitive capability
  • review_chapter_with_personasno sensitive capability
  • review_dialogue_action_beatsno sensitive capability
  • revise_chapterno sensitive capability
  • revise_paragraphno sensitive capability
  • save_book_itemno sensitive capability
  • save_chapter_itemno sensitive capability
  • script_to_paragraphno sensitive capability
  • search_bookno sensitive capability
  • secret_wizardno sensitive capability
  • seed_default_personasno sensitive capability
  • setup_frameworkno sensitive capability
  • start_wizardno sensitive capability
  • sync_all_resumesno sensitive capability
  • sync_plotno sensitive capability
  • sync_resumeno sensitive capability
  • sync_script_ledgerno sensitive capability
  • sync_story_stateno sensitive capability
  • timeline_event_wizardno sensitive capability
  • update_book_notesno sensitive capability
  • update_chapterno sensitive capability
  • update_chapter_draftno sensitive capability
  • update_chapter_notesno sensitive capability
  • update_entityno sensitive capability
  • update_paragraphno sensitive capability
  • update_paragraph_draftno sensitive capability
  • update_scriptno sensitive capability
  • validate_bookno sensitive capability
  • wikipedia_searchno sensitive capability
  • wizard_answerno sensitive capability
  • wizard_cancelno sensitive capability
  • wizard_finalizeno sensitive capability
  • wizard_statusno sensitive capability
  • write_paragraph_evaluationno sensitive capability

What this scan could not see

Versions 4

Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.

VersionScoreFindingsEngineScanned
v0.1.58 latest A 97/100 1 1.13.0 2026-09-07
v0.1.57 A 97/100 1 1.13.0 2026-08-27
v0.1.56 A 97/100 1 1.13.0 2026-08-25
v0.1.55 A 97/100 1 1.12.1 2026-08-20

Embed this score

Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.

MCP Trust Score: A · 97/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/narrarium-mcp-server/badge.svg)](https://mcptrustchecker.com/registry/narrarium-mcp-server)
HTML
<a href="https://mcptrustchecker.com/registry/narrarium-mcp-server"><img src="https://mcptrustchecker.com/registry/narrarium-mcp-server/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/narrarium-mcp-server/badge.json via https://img.shields.io/endpoint?url=…

Verify this score yourself

The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.

npx mcptrustchecker scan narrarium-mcp-server --online

Use the free API → How scoring works

More in Learning & Documentation