Try the Hosted NCERT MCP
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http · sse counts 13 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
generate_explanation
-
generate_question
-
generate_question_paper
-
get_chapter
-
get_chapter_metadata
-
get_curriculum_map
-
get_learning_path
-
get_prerequisites
-
list_books
-
list_exam_types
-
list_topics
-
search_chapters
-
search_content
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 5f6d747 · analyzer v32 · 1h ago
danger signals4
- dynamic code execution eval() Jinansh230705-ncert-mcp-5f6d747/scripts/build_chapters_json.ts :27
const NCERT_TEXTBOOK_CHAPTERS = eval(`(${objectString})`); - dynamic code execution eval() Jinansh230705-ncert-mcp-5f6d747/scripts/extract_classic.ts :15
const NCERT_TEXTBOOK_CHAPTERS = eval(`(${objectString})`); - dynamic code execution eval() Jinansh230705-ncert-mcp-5f6d747/scripts/scrape_book_titles.ts :50
const NCERT_TEXTBOOK_CHAPTERS = eval(`(${objectString})`); - dynamic code execution eval() Jinansh230705-ncert-mcp-5f6d747/scripts/sync_codes.ts :23
NCERT_TEXTBOOK_CHAPTERS = eval(`(${objectString})`);
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 27
filesystem 8
- fs (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/apply_chapters_json.ts :4
import fs from 'fs'; - fs (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/build_chapters_json.ts :6
import fs from 'fs'; - fs (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/extract_classic.ts :3
import fs from 'fs'; - fs (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/generate_updates.ts :2
import * as fs from 'fs'; - fs (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/scrape_book_titles.ts :41
const fs = require('fs'); - fs (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/sync_codes.ts :1
import * as fs from 'fs'; - fs Jinansh230705-ncert-mcp-5f6d747/src/db-local.ts :3
import fs from 'fs'; - fs Jinansh230705-ncert-mcp-5f6d747/src/pipeline.ts :1
import fs from 'fs';
shell / exec 1
- shell (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/test.js :1
const { spawn } = require('child_process');
network 4
- net (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/build_chapters_json.ts :32
const res = await fetch(`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { - net (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/scrape_book_titles.ts :7
const res = await fetch("https://ncert.nic.in/textbook.php", { - net (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/sync_codes.ts :35
const res = await fetch(dataUrl); - net Jinansh230705-ncert-mcp-5f6d747/src/pipeline.ts :128
return await fetch(url, init);
secrets 8
- secrets (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/build_chapters_json.ts :12
apiKey: process.env.OPENAI_API_KEY || "dummy", - secrets (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/fix_clean_titles.ts :11
apiKey: process.env.OPENAI_API_KEY - secrets (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/fix_noisy_titles.ts :11
apiKey: process.env.OPENAI_API_KEY - secrets (weak) Jinansh230705-ncert-mcp-5f6d747/scripts/fix_titles.ts :11
apiKey: process.env.OPENAI_API_KEY || "dummy", - secrets Jinansh230705-ncert-mcp-5f6d747/src/index.ts :11
OPENAI_API_KEY: process.env.OPENAI_API_KEY, - secrets Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :20
OPENAI_API_KEY: process.env.OPENAI_API_KEY, - secrets Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :16
OPENAI_API_KEY: process.env.OPENAI_API_KEY, - secrets Jinansh230705-ncert-mcp-5f6d747/src/pipeline.ts :16
apiKey: process.env.OPENAI_API_KEY || "dummy",
database 1
- db Jinansh230705-ncert-mcp-5f6d747/src/db-local.ts :1
import Database from 'better-sqlite3';
tool registrations 39
- list_books Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :27
- list_topics Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :38
- list_exam_types Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :49
- get_chapter Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :57
- get_chapter_metadata Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :70
- get_curriculum_map Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :83
- search_chapters Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :96
- search_content Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :111
- generate_explanation Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :130
- generate_question Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :157
- generate_question_paper Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :190
- get_prerequisites Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :209
- get_learning_path Jinansh230705-ncert-mcp-5f6d747/src/mcp-express.ts :222
- list_books Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :28
- list_topics Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :39
- list_exam_types Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :50
- get_chapter Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :58
- get_chapter_metadata Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :71
- get_curriculum_map Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :84
- search_chapters Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :97
- search_content Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :112
- generate_explanation Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :131
- generate_question Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :158
- generate_question_paper Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :191
- get_prerequisites Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :210
- get_learning_path Jinansh230705-ncert-mcp-5f6d747/src/mcp.ts :223
- list_books Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :130
- list_topics Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :141
- list_exam_types Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :152
- get_chapter Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :160
- get_chapter_metadata Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :173
- get_curriculum_map Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :186
- search_chapters Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :199
- search_content Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :214
- generate_explanation Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :233
- generate_question Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :260
- generate_question_paper Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :293
- get_prerequisites Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :312
- get_learning_path Jinansh230705-ncert-mcp-5f6d747/src/worker.ts :325
declared dependencies 19
- @modelcontextprotocol/sdk@^1.29.0
- @hono/zod-openapi@^1.4.0
- @types/express@^5.0.6
- adm-zip@^0.5.17
- better-sqlite3@^12.11.1
- dotenv@^17.4.2
- express@^5.2.1
- hono@^4.12.27
- minisearch@^7.2.0
- openai@^6.44.0
- pdf-parse@^2.4.5
- zod@^4.4.3
- @cloudflare/workers-types@^5.20260705.1
- @types/adm-zip@^0.5.8
- @types/better-sqlite3@^7.6.13
- @types/bun@^1.3.14
- @types/node@^26.0.0
- @types/pdf-parse@^1.1.5
- typescript@^5